Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 125 комментариев

Олег Захаров
Олег Захаров
Кстати вопрос возник. Раздражало что для базовой локализации надо было делать версию ru — т.е. создавать дублирование информации из полей и доп.полей. Это приводило к путанице. Могли записать в Content или доп. поля базовые, а на сайте информация не обновлялась. И приходилось делать проверки и условия Fenom чтобы для ru версии брать содержимое из основных полей, а не из локализации ru — а ее нельзя было не создавать. Как в новой версии будет? Тоже дублировать в ru локализацию? Можно ли сделать режим выбора использовать ru локализацию (или ту которая по умолчанию в localizator3_default_language) или брать для базовой локализации информацию из базовых полей и доп.полей/опций? Вижу что есть getLocalizedField который «если перевода нет, вернёт default или значение из modResource.» Вот это прям огонь.
И еще вижу из описания что есть переводы полей, TV-полей (MIGX тоже может переводить?) и опций товаров — вот это прям огонь огонь!
Артур Шевченко
Артур Шевченко
Стоит подумать и добавить, так как 100% потребуется как-то модифицировать данные из 1С. Частый кейс это не соответствие категорий на сайте и категорий в 1С, через событие можно будет на лету менять родителя.
Mishiko
Mishiko
Почитал. У меня сейчас
XMLReader → SimpleXML-узел → немедленный save() в MODX
Попробую реализовать
XMLReader
   ↓
CommerceMlParser
   ↓
DTO: CategoryData, ProductData, OfferData
   ↓
Normalizer + Validator
   ↓
ImportService
   ↓
CategoryWriter / ProductWriter / OfferWriter
Mishiko
Mishiko
Нет, собственных событий CommerceBridge 1C сейчас нет,
  • отсутствуют вызовы $modx->invokeEvent();
  • transport-пакет не регистрирует modPlugin;
  • импорт выполняется прямыми сохранениями моделей;
  • смена статуса идёт через сервис miniShop3, поэтому там могут срабатывать штатные события miniShop3
Артур Шевченко
Артур Шевченко
Через процессоры как раз наоборот дольше, но есть события, что важно, так как на них может быть навешена какая-то кастомная логика. Кстати, как в пакете дела с событиями, они есть?
Mishiko
Mishiko
Нет. Сейчас категории и товары создаются напрямую через xPDO-модели:
— категории: newObject(msCategory::class)save();
— товары: newObject(msProduct::class)save();
— данные товара: msProductDatasave().

Через процессоры это быстрее для массового импорта, но часть процессорной валидации, событий и сторонних обработчиков может не сработать.

В планах сделать и синхронизацию через REST API там можно будет предусмотреть два режима direct и processor
Wassi Wassinen
Wassi Wassinen
И ещё такие ошибки:

[2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
[2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
По обоим случаям нейросеть пишет, что есть фиксы с правкой исходников. Но не хочется править, чтобы потом не поломать что-то и не затиралось при обновлении.
Если у вас есть возможность — дополните код.

Заранее благодарен.