Павел Бигель

Павел Бигель

Был в сети 20 апреля 2026, 18:00
Заказы не принимаю
Кстати да, хотелось бы такое решение из коробки замутить.
Но, я немного покритикую это тред:
@EVAL
$output = $modx->runSnippet('getCatOptions');
return $output;
EVAL — плохо. Даже разработчики MODX поняли что плохо и выпилили сие чудо в 3.0
Из этого следует что сниппет getCatOptions — в целом лишний, его можно заменить SQL запросом и вместо EVAL использовать SELECT.
Если же рассматривать сам сниппет, то
$options = $modx->getIterator('msOption');
я бы заменил на
$options = $modx->getIterator(msOption::class);
Опять же только с точки зрения того, чтобы не тратить время на это в момент выхода тройки.

Но в целом — спасибо за решение, кому-то однозначно пригодится.
Тоесть вы создаете php class Product, описывая в нем свойства товара?
Да
Вот это вообще не понял. Под моделью вы понимаете терминологию MODX? тоесть модель это файловое отображение таблицы в базе данных? Вы создаете таблицы в базе свои? Что значит промежуточное состояние?
Модель это класс. Промежуточное состояние может быть разным. В моем случае это json файлы.
Тоесть в директории products у вас на скрине что хранится? Файлы json где в каждом файле один товар?
А после этого вы запускаете какой-то свой скрипт, который считает json файлы и запускает процессор создания товара?
Да, все верно
Опять же, вебхуки — лучший вариант для решения таких задач. Правда, пока таких задач мне не поступало. Обычно обновление раз в 3-4 часа было.
Не нужно делать прямой коннект в базе. Это иррационально.
А зачем?
CommerceML выгружается двумя кнопками и дает вполне себе структурные данные. Если же рассматривать вариант что по той стороне 1С 8.3 и хороший 1С программист, можно попробовать поработать с вебхуками. Хороший 1сников я так и не нашел, поэтому работаем с файловыми обменами в основном :)