Олег

Олег

Был в сети 09 января 2022, 15:35
Заказы не принимаю
Насчет content-type я бы глянул в типах содержимого, вдруг он там указан другой для xml.
Вот такой должен быть (сделано точно также)
prntscr.com/lqnf17

По пробелу к сожалению не могу подсказать, но я бы глянул на content-type.
Я попробовал в своем файле добавить пробел, это не помешало распознанию файла.
Список фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.
Соответственно если нужно спользовать лайк нужно делать строку

set $tvFilters = 'committees==%' ~ $_modx->resource.id~'%'
Попробуй так
set $tvFilters = 'committees==' ~ $_modx->resource.id
Посмотри, что в этой переменной, попробуй ее значение руками подставить.

Если несколько вариантов, то можно так:
{set $tvFilters = ''}
{foreach '52||53||54' | split : '||' as $id}
{$tvFilters += ',committees=='~$id'}
{/foreach}
На php и феноме давно не писал, примерная реализация
По времени понятно — я потратил полчаса на создание экспорта по всем правилам авито, но теперь надо писать инструкцию как этим файлом пользоваться, если надо что-то поменять. Я бы скорее купил готовое, чтобы не тратить время.
Жаль, что msImportExport не умеет так из коробки (как с яндексом)

P.S. код занял ровно 40 строк, забавно =)

<?xml version="1.0" encoding="UTF-8"?>
<Ads formatVersion="3" target="Avito.ru">
    {'pdoResources' | snippet : [
        'parents' => 8,
        'tpl' => 'avitoXML',
        'limit' => 0,
        'where' => '{"class_key":"msProduct"}'
    ]}
</Ads>
avitoXML
<Ad>
    <Id>{$id}</Id>
    <Category>Запчасти и аксессуары</Category>
    <TypeId>10-046</TypeId> 
	<AdType>Товар приобретен на продажу</AdType>
    <ContactPhone>+7 -55-22</ContactPhone>
    <ManagerName>Сергей</ManagerName>
    <Region>Москва</Region>
    <Subway>Белорусская</Subway>
    <Title>{$pagetitle}</Title>
    <Description>{$content}
    </Description>
    <Price>{$price}</Price>
    <DateBegin>{$pub_date | date_format:"%Y-%m-%d"}</DateBegin>
    <DateEnd>{$unpub_date | date_format:"%Y-%m-%d"}</DateEnd>
    <RimDiameter></RimDiameter>
    <TireSectionWidth></TireSectionWidth>
    <TireAspectRatio></TireAspectRatio>
    <RimType>Литые</RimType>
    <Images>
        {'!msGallery' | snippet : [
            'tpl' => '@CODE
                {foreach $files as $file}
                    <Image url="{$file.url}"/>
                {/foreach}
            ',
            'product' => $id,
            'limit' => 0
        ]}
    </Images>
</Ad>
Хочу готовое решение, как требующее меньше временных затрат, оптимизированное и с интерфейсом, чтобы мог пользоваться кто-то кроме меня.
Чтобы можно было создавать разные настраиваемые шаблоны экспорта и менятьих не зная пыхи.
На самом деле элементарное требование, но последнее время modx все больше расстраивает.
В том числе тем, что ответа на простейший вопрос в сообществе приходится ждать сутки и тот абсолютно не по существу.
Ну проблема очевидно с правами, нужно проверить права на папки, владельцев и группу папки.
Как вариант заглянуть в .htaccess

Лучший вариант вынести сайт и через chown, chmod поиграться с правами и локализовать причину, после чего на бою сделать точную правку.
Благодарю за ответ!
А есть какое-то автоматизированное решение для синхронизации?
К сожалению не сталкивался.

Можно, конечно, написать php/shell скрипты, по крону дергать все товары с одинаковым class_key и из одной базы заливать во все остальные, но возникнет проблема с id-шниками, которые разные у разных страниц на всем сайте