[msYmarket 0.1.0] Поддержка любых ИМ и любых полей
В новой версии компонент научился работать с любыми полями ресурсов и подставлять их в любые необходимые тэги. Помимо этого, компонент стал универсальным — он теперь работает с любыми видами интернет-магазинов, если товары являются простыми ресурсами. Исключение здесь одно — пока не поддерживаются MIGX параметры.
Полное описание в документации, здесь же рассмотрим лишь основные моменты.
Данные настройки хорошо дополняют выборку и при использовании MS2.
В целях совместимости с первой версией, по умолчанию списки шаблонов пусты, а использование MS2 включено.
Поскольку формат YML позволяет, кроме обычных тэгов, использовать дополнительные вида
Список полей по умолчанию повторяет те поля и тэги, которые были жестко зашиты в коде первой версии.
========
Если вдруг что-то упущено в данной версии — пишите в поддержку, оперативно поправим.
Обновление уже доступно в магазине.
С 2018 года поддержкой компонента занимается Евгений Шеронов @Евгений Шеронов.
Полное описание в документации, здесь же рассмотрим лишь основные моменты.
Любые интернет-магазины
Если выставить настройку ms2ym_ms2_use в «Нет», при выборке ресурсов не будут подставляться ограничения по class_key (msProduct, msCategory). В выборку попадут все ресурсы (и в категории, и в товары). Чтобы этого не произошло, обязательно необходимо задать в настройках ms2ym_cat_tpls и ms2ym_good_tpls список шаблонов для категорий и товаров.Данные настройки хорошо дополняют выборку и при использовании MS2.
В целях совместимости с первой версией, по умолчанию списки шаблонов пусты, а использование MS2 включено.
Произвольные поля и тэги
К изначально реализованному способу ввода соответствия TV-полей и YML-тэгов добавлена возможность указать в таком же формате список соответствия основных полей ресурса и YML-тэгов.Поскольку формат YML позволяет, кроме обычных тэгов, использовать дополнительные вида
<param name="Вес" unit="кг" type="Брутто">5.00</param>
, формат списка соответствий был расширен. Приведенная выше запись будет иметь следующий вид в списке:weight=>param.Вес:unit="кг":type="Брутто"
Получилось сложно. Возможно, в будущих версиях будет введен более простой способ. Список полей по умолчанию повторяет те поля и тэги, которые были жестко зашиты в коде первой версии.
Чего нет при отсутствии MS2
Если MS2 не установлен, список категорий в админке для выборочной выгрузки недоступен, а так же не имеют смысла фильтры по производителю, тэгам, цвету. Выгрузка в таком случае ограничивается только списками шаблонов.========
Если вдруг что-то упущено в данной версии — пишите в поддержку, оперативно поправим.
Обновление уже доступно в магазине.
Обновлено.
С 2018 года поддержкой компонента занимается Евгений Шеронов @Евгений Шеронов.
Комментарии: 60
А как вывести галерею MS2 в goods.yml ????
Можно вывести только первую картинку, галерею целиком — нет. Насколько это важно?
Оч важно. ЗАказчик заказал. ЗАшёл в тупик…
Напишите в поддержке, обсудим подробнее.
Сниппет покупал заказчик со своего аккаунта. В моём аккаунте к сожалению нет раздела поддержки с этим сниппетом… Это очень не удобно кстати…
Опишите в деталях, что требуется.
Требуется вывести картинки из галереи MS2 в файл m-jolie.ru/core/goods.yml Щаз выводится тока первая картинка, а в магазине у товаров есть несколько картинок.
Должно быть несколько тэгов picture?
ЗЫ: нажимайте «Ответить» под комментарием.
ЗЫ: нажимайте «Ответить» под комментарием.
Да должно быть несколько. Тегов picture
На следующей неделе добавлю, обновление будет доступно в магазине.
Ок спасибо! :)
Ещё вопрос. В листе yml в тег description мне нужно вывести content из modx. Пишу так в настройках content=>description. Но ни чего не выводит почему то. Как его вывести тогда ???
content не выбирается из БД. В обновлении добавлю в выборку.
Большое спасибо за выпущенное обновление…
Есть небольшая недоработка… Адреса на дополнительные картинки выводятся с относительным путём…
Для яндкс маркета нужны абсолюдные…
Есть небольшая недоработка… Адреса на дополнительные картинки выводятся с относительным путём…
Для яндкс маркета нужны абсолюдные…
Обновите компонент.
А что если категории на сайте не совпадают с категориями на яндекс маркете. Хочется с помощью дополнительных категорий товаров (таблица modx_ms2_product_categories) создать ещё один каталог на сайте, который будет предназначен исключительно для целей выгрузки на яндекс-маркет. Но в таком случае выгрузка товаров не происходит. Выгружаются только товары, категории которых являются их parents. А дополнительные категории не учитываются… Надеюсь понятно, что я написал
Понятно. Доработка возможна и поставлена в очередь, но выполнена будет не в скором времени.
Будем ждать… в любом случае полезная опция, ещё не раз пригодится. Второй раз уже сталкиваюсь с этим.
Здравствуйте.
Скажите, пожалуйста, доработка ещё не готова?
И ещё вопрос. У меня используется компонент msOptionsPrice2. Как с ним будет работать выгрузка?
Скажите, пожалуйста, доработка ещё не готова?
И ещё вопрос. У меня используется компонент msOptionsPrice2. Как с ним будет работать выгрузка?
Не готова.
С msOptionsPrice2 не взаимодействует. Если требуется, опишите в поддержке, каким образом должны подхватываться модификации товаров. Посмотрю, возможно ли добавить.
С msOptionsPrice2 не взаимодействует. Если требуется, опишите в поддержке, каким образом должны подхватываться модификации товаров. Посмотрю, возможно ли добавить.
Ну каждая модификация может представлять из себя отдельный товар. Это, видимо, индивидуально. Так как если у модификации есть свой цвет, то это другой товар, а если нет, то тот же самый. Если модификация включена и остаток больше 0, то товар в наличии. Только не знаю, как использовать остальные картинки у товара, ведь они все общие для всех модификаций. Возможно просто не добавлять их к товару в маркете.
Он будет работать если товары на ресурсах?
Да, должен. В настройках отключите использование ms2. Если ещё будут вопросы — пишите в поддержку. Хоть работа без ms2 и сделана давно, ещё не было таких обращений.
Благодарю. Тогда скоро преобрету.ю
Получилось?
Пока еще не делал.
Приобрел и установил, но при запуске пишет что требуется установка минишоп2
Отправьте в поддержку доступ в админку.
сделал
Выпущено обновление, теперь MS2 не требуется для работы раздела в админке.
Но, поскольку настройки полей по умолчанию заточены под ms2, внимательно настройте соответствия полей тэгам.
Но, поскольку настройки полей по умолчанию заточены под ms2, внимательно настройте соответствия полей тэгам.
Добрый день! Яндекс-маркет скоро перестанет принимать одежду без размера. А несколько размеров для одного товара надо как-то объединять по инструкции. Для информации:
Если существует несколько товарных предложений, которые являются цвето-размерными вариациями одной модели, то в YML-файле необходимо создавать описание каждого варианта в отдельном элементе — в одном размере и в одном цвете.
Для корректного соотнесения всех вариантов с одной моделью необходимо в описании каждого товарного предложения использовать атрибут group_id. Значение атрибута должно быть целым числом, максимум 9 разрядов. Для всех предложений, которые необходимо отнести к одной модели, должно быть указано одинаковое значение атрибута group_id. При этом недопустимо указывать такое же значение для предложений, не относящихся к этой модели. Например, если продаваемое вами платье доступно в 3 различных цветах и каждый цвет при этом доступен в 4 размерах, то вы должны составить описания 12 товарных предложений, указывая в каждом из них одинаковый group_id.
https://yandex.ru/support/partnermarket/guides/clothes.html#h4
Если существует несколько товарных предложений, которые являются цвето-размерными вариациями одной модели, то в YML-файле необходимо создавать описание каждого варианта в отдельном элементе — в одном размере и в одном цвете.
Для корректного соотнесения всех вариантов с одной моделью необходимо в описании каждого товарного предложения использовать атрибут group_id. Значение атрибута должно быть целым числом, максимум 9 разрядов. Для всех предложений, которые необходимо отнести к одной модели, должно быть указано одинаковое значение атрибута group_id. При этом недопустимо указывать такое же значение для предложений, не относящихся к этой модели. Например, если продаваемое вами платье доступно в 3 различных цветах и каждый цвет при этом доступен в 4 размерах, то вы должны составить описания 12 товарных предложений, указывая в каждом из них одинаковый group_id.
https://yandex.ru/support/partnermarket/guides/clothes.html#h4
Подскажите, для покупки платных модулей ключ создавать для dev.site.ru или для site.ru? В ХЭЛПе это как-то двояко озвучено.
В соседнем топике Вам уже ответили.
Пара вопросов перед покупкой:
Подскажите, в настройках есть поле «самовывоз»? В моем случае принципиально всем товарам прописать «нет» в доставке и прописать всем самовывоз.
И еще вопрос — есть ли возможность выгружать только товары, у которых отмечен чекбокс availability (в наличии). Вроде как яндекс требует, чтобы все выгружаемые товары были в наличии.
Подскажите, в настройках есть поле «самовывоз»? В моем случае принципиально всем товарам прописать «нет» в доставке и прописать всем самовывоз.
И еще вопрос — есть ли возможность выгружать только товары, у которых отмечен чекбокс availability (в наличии). Вроде как яндекс требует, чтобы все выгружаемые товары были в наличии.
Добрый день. Подскажите пожалуйста, в каком файле изменить код… чтобы в YML файл наличие отдавалось «True» если значение поля [[+availability]] больше нуля?
… и соотв. «False» если значение 0.
В настройках «ms2ym_availability_field» я указал свое поле «availability», у меня в нем остатки товаров, целые числа от 0 до 1000… Если «0» — нет в наличии.
… и соотв. «False» если значение 0.
В настройках «ms2ym_availability_field» я указал свое поле «availability», у меня в нем остатки товаров, целые числа от 0 до 1000… Если «0» — нет в наличии.
ошибка
В компоненте есть настройка ms2ym_snippets, во-первых нет документации для нее, но это ладно. Во-вторых в коде есть кусок для обработки этой настройки:
Как получить третий параметр $v в сниппете, ведь runSnippet принимает только 2 параметра?
Пока что поправил исходник так
foreach ($this->ymlConfig->snippets as $snippet => $params) {
$yml .= $this->runSnippet($snippet, $params, $v) . "\n";
}
Как получить третий параметр $v в сниппете, ведь runSnippet принимает только 2 параметра?
Пока что поправил исходник так
foreach ($this->ymlConfig->snippets as $snippet => $params) {
$params = array_merge($params, $v);
$yml .= $this->runSnippet($snippet, $params, $v) . "\n";
}
Здравствуйте. Тоже столкнулся с отсутствием документации на этот параметр. Подскажите, если разобрались, что нужно писать в параметр, чтобы обработать нужное поле сниппетом перед передачей его в файл экспорта.
Там вроде бы массив или json надо указывать, где ключ это название сниппета, а его значение это параметры. Я уже точно не помню. Я тогда просто свое решение написал для экспорта.
Т.е. как то так?
{ "mySnippet": ["param1": "1111", "param2": "2222"]}И в сниппете mySnippet будут доступны переменные param1 и param2? Как это проверить? Как указать какую переменную редактируем перед выдачей в файл экспорта? Может третий параметр в JSON должен быть? Не въеду никак (((
Здравствуйте!
Да, Андрей выше правильно написал, что нужно подправить исходники (если не править исходники, то значения товара в параметры не попадут).
И правильнее написать json так:
В общем эта настройка не prepareSnippet, а просто для добавления каких-то новых данных, повлиять или изменить через сниппет другие значения не выйдет, даже поправив исходники методом выше.
Да, Андрей выше правильно написал, что нужно подправить исходники (если не править исходники, то значения товара в параметры не попадут).
И правильнее написать json так:
{"mySnippet": {"param1": "1111", "param2": "2222"}}
И этим массивом нужно вернуть xml строку:<param name="Параметр">Значение</param>
Или любую другую валидную сущность для xml)В общем эта настройка не prepareSnippet, а просто для добавления каких-то новых данных, повлиять или изменить через сниппет другие значения не выйдет, даже поправив исходники методом выше.
Два вопроса перед покупкой:
- На сайте 15 000 товаров MS2, бодрый shared-хостинг, но все же не выделенный сервер. Компонент справится с выгрузкой 15К товаров за раз?
- Есть ли возможность запуска по расписанию (Cron)
Скрипт для cron есть. По остальным вопросам ответит @webrush.
Как вывести все картинки из галереи товара ms2? Вывожу
image=>picture;
выводится только первое фото. Отметка «Добавлять все изображения в выборку» стоит.
Вообще, после активации настройки ms2ym_include_all_images при следующей генерации файла изображения должны были подтянуться.
Если этого не произошло — напишите в поддержку с указанием доступов.
А для галереи товара случаем не ms2Gallery используете?
Если этого не произошло — напишите в поддержку с указанием доступов.
А для галереи товара случаем не ms2Gallery используете?
Прошу прощения за неверный ответ. Использую msGallery.
Тогда должно всё работать.
Когда-то Василий анонсировал поддержку галереи ms2Gallery вместо стандартной msGallery — вот с ней бы вряд-ли работало.
Поддержку можно продлить и написать уже там доступы.
Когда-то Василий анонсировал поддержку галереи ms2Gallery вместо стандартной msGallery — вот с ней бы вряд-ли работало.
Поддержку можно продлить и написать уже там доступы.
Подскажите как продлить?
Купить ещё раз дополнение на этот ключ
modstore.pro/faq#help/3/9
modstore.pro/faq#help/3/9
Спасибо. Через поиск искал, не нашел.
Да. ms2Gallery. Тех.поддержка кончилась.
Можно ли настроить автообновление?
Да, поставьте на крон файл core/components/yandexmarket/cron/cron.yandexmarket.php
Спасибо. А еще такой момент. Можно ли выгрузить не одну а несколько фото товара?
Несколькими сообщениями выше обсуждаем))
Включите настройку ms2ym_include_all_images и перегенерируйте файл.
Включите настройку ms2ym_include_all_images и перегенерируйте файл.
Что же за напасть такая с невнимательностью)) Спасибо)))
Добрый день. Вопрос по content=>description. В контенте стоят дополнительные поля такие как [[+article]] и [[*pagetitle]]. Как заставить их обрабатываться? На данный момент выводится так: (Вы можете купить у нас [[*pagetitle]] [[+article]])
Здравствуйте, Вы вроде уже писали мне?
Здесь только через prepareSnippet сможете сделать замену нужных Вам тегов.
Также, если есть какие-то теги или стили у html-тегов, то их нужно подчистить.
Для этого должен быть установлен Jevix.
Вот пример сниппета prepareMarketDescription, который сделает то, что нужно.
Добавьте его и укажите название в настройку ms2ym_prepare_snippet.
Здесь только через prepareSnippet сможете сделать замену нужных Вам тегов.
Также, если есть какие-то теги или стили у html-тегов, то их нужно подчистить.
Для этого должен быть установлен Jevix.
Вот пример сниппета prepareMarketDescription, который сделает то, что нужно.
Добавьте его и укажите название в настройку ms2ym_prepare_snippet.
<?php
if(!empty($fields['description'])) {
//масссив для замен
$replaces = [
'[[*pagetitle]]' => $product['pagetitle'],
'[[+article]]' => $product['article']
];
// все доступные поля можно посмотреть в логе расскоментировав две строки ниже:
// $modx->log(1,'Поля в XML: '.print_r($fields,1));
// $modx->log(1,'Поля товара: '.print_r($product,1));
$fields['description'] = $modx->runSnippet('Jevix',[
'input'=> str_replace(array_keys($replaces), array_values($replaces), $fields['description']),
'cfgAllowTags'=>'h3,ul,ol,li,p,br',
'cfgSetAutoLinkMode'=>0,
'cfgAllowTagParams'=>'{}',
'cfgSetTagNoAutoBr' => 'ul,ol',
'cfgSetTagChilds' => '[["ul",["li"],false,true],["ol",["li"],false,true]]',
'cfgSetTagParamDefault' => '[]',
'cfgSetTagParamsRequired' => '{}',
'cfgSetTagNoTypography' => '',
'cfgSetTagPreformatted' => '',
'cfgSetTagShort' => 'br'
]);
}
return $fields;
Приветствую. Благодарю за ответ. Нет это не я писал, я впервые столкнулся с модулем msYmarket.
А подскажите пожалуйста как нужно правильно прописать в настройках компонента, чтобы доставка была
Пробовал по-разному:delivery=>delivery_tv, [[+delivery_tv]] и просто — delivery_tv. Результат один — все равно выдает как по умолчанию —
<delivery>false</delivery>
?Пробовал по-разному:delivery=>delivery_tv, [[+delivery_tv]] и просто — delivery_tv. Результат один — все равно выдает как по умолчанию —
<delivery>true</delivery>
.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.