[modRetailCRM 2.5.0] Сниппет выгрузки товаров, нормальная поддержка msOptionsPrice2

Выпустил долгожданное (мной) обновление компонента.
Под капотом первый сниппет ICML, реализующий XML выгрузку товаров в базу RetailCRM
Также реализована полноценная поддержка модификаций товаров msOptionsPrice2

Ниже подробности.


Полноценная поддержка модификаций msOptionsPrice2


Впервые реализована более менее универсальная поддержка популярнейшего компонента. До этого использовались костыльные решения. Для начала необходимо сообщить компоненту modRetailCRM о том, что вы используете модификации. Для этого появилась новая системная настройка allow_msoptionsprice. Необходимо ее активировать (в случае, если используются модификации).

ICML


Одной из основных забот в техподдержке, по статистике, являлся вопрос о выгрузке товаров.
Как то раз, я собрав волю в кулак и оторвавшись от очередного сериала написал заметку об этом в документации. Но вопросов стало еще больше. Как оказалось, использовать шаблонизатор fenom не всем удобно. Да и решение не особо универсальное.

Решил сделать сниппет ICML, который сразу из коробки, без танцев с бубном сформирует нормальный XML документ реализующий выгрузку товаров. Причем сразу с поддержкой модификаций msOptionsPrice2.

Использование сниппета выстроено по той же логике, что и популярный сниппет pdoSitemap.
Создаем новую страницу, выставляем тип контента XML, и в поле content вызываем сниппет
[[!ICML?]]
Этого достаточно. По умолчанию сниппет сформирует всю необходимую разметку, включая модификации товаров, если они есть.

Сниппет принимает несколько параметров для кастомизации
shop — Наименование магазина. По умолчанию — наименование сайта
company — Наименование компании. По умолчанию — наименование сайта
parents — Перечень категорий товаров, которые необходимо выгружать. По умолчанию 0
outputWrapper — Шаблон обертки. Вряд ли кому то понадобится его менять. Так как он сделан согласно документации. Код по умолчанию всегда можно посмотреть в сниппете
categoryTpl — Шаблон вывода категории. Также согласно документации. Код по умолчанию всегда можно посмотреть в сниппете
offerTpl — Шаблон вывода товара или модификаии. Все по документации. Код по умолчанию всегда можно посмотреть в сниппете.

Все куски оформления можно конечно вынести в отдельные чанки, но я решил не плодить сущности. Это же не верстка. Если кому то понадобится — пишите, переделаем.

Что еще нужно знать про сниппет ICML

Если вы ранее уже использовали ICML выгрузку, сделав ее согласно документации — возможно, имеет смысл очистить базу товаров в RetailCRM и загрузить ее заново, используя новый ICML сниппет.

Для чего это нужно.
У каждого товара и тем более модификации сниппет формирует свой уникальный идентификатор.
Для товаров это просто id
Для модификаций это вот такая маска mod-{$id}-{$modification.id}
Плагин выгрузки заказов соотвественно передает эти же идентификаторы в заказ RetailCRM
Если у вас будет обновленный плагин, но при этом останутся какие то другие идентификаторы товаров — RetailCRM просто не сможет привязать товар из своей базы к заказу.

Как всегда — если возникнут какие то проблемы, а они всегда возможны с новым функционалом — пишите в техподдержку — все решим.

Традиционно уже хотел предложить промокоды со скидкой, но столкнулся с довольно неочевидной проблемой. Ими никто не пользуется. Все покупают компонент по полной цене. Кто бы мог подумать.
Традиционный ответ — я думал уже все разобрали. Нет не разобрали — в прошлой статье есть действующие промокоды на скидку 50%. Пользуйтесь на здоровье!
Николай Савин
16 апреля 2019, 16:53
modx.pro
367
+7
Поблагодарить автора Отправить деньги

Комментарии: 2

Эдвард Ерохин
17 апреля 2019, 13:21
0
Круто, теперь наверное есть смысл прикупить)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2