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

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

Олег Захаров
Олег Захаров
Класс! Часто непонятно как искать причины поломок или откуда берутся сообщения. Это прям мучение. Посмотрим как работает новый компонент. Делаю у себя ИИ для корпоративного применения. И тут почерпнул для себя как надо реализовать логирование для ИИ-решений.
Вообще бы уже надо заранее думать о том как тот или иной компонент будет работать с ИИ-решениями
Олег Захаров
Олег Захаров
Кстати вопрос возник. Раздражало что для базовой локализации надо было делать версию 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