Обновление Impex и Impex3

Всем привет.
Вышли версии 1.0.4 обоих пакетов с новыми полезными функциями. 
  • Добавлена возможность копирования существующей конфигурации.
  • Добавлена возможность удаления файлов по отдельности (конфигураций, файлов импорта/экспорта, бэкапов).
  • Добавлено системное событие OnImpexBeforeSetParentProduct, вызываемое перед обработкой родительской категории.
  • Добавлено системное событие OnImpexBeforeFieldImport, вызываемое перед импортом конкретного поля.
  • Во все события плагинов добавлена переменная $config_name — имя файла конфигурации.
  • Добавлен плагин Impex с примерами.
  • В конфигурации добавлен параметр category_id_field для указания поля категории, содержащее её уникальный идентификатор.
  • В конфигурации добавлен параметр skip_new, для пропуска при импорте отсутствующих на сайте позиций (только обновление существующих).
  • В плагине на событие OnImpexAfterResourceImport (после импорта ресурса) теперь доступен массив $data со всеми загруженными данными.
  • Исправлены небольшие ошибки + добавилась проверка версии PHP и MODX при установке.

Копирование существующей конфигурации
Теперь на обеих вкладках можно выбрать конфиг и скопировать его, нажав кнопку + (будет предложено ввести новое имя).

Удаление файлов
Раньше можно было удалить только всё сразу, теперь просто выбираем ненужный файл и жмём .


OnImpexBeforeSetParentProduct
Теперь можно, получив данные из файла, преобразовать их как заблагорассудится и вернуть новую цепочку категорий для конкретной позиции.

OnImpexBeforeResourceImport
Теперь событие вызывается перед импортом всего ресурса. Можно поймать все входные данные и что-то добавить/заменить на уровне всего массива полей (например добавить товарам по какому-то условию дополнительное поле/значение, которого нет в исходном импортном файле).

OnImpexBeforeFieldImport
Событие принимает те же переменные, что раньше OnImpexBeforeResourceImport и заменяет его (если использовали просто переназначьте плагину).

Во все события плагинов добавлена переменная $config_name — имя файла конфигурации.
Соответственно, можно выполнять какую-то логику в зависимости от конфигурации.

Параметр category_id_field
Теперь можно указывать не цепочку категорий, а уникальный идентификатор. То есть если у вас, к примеру, в longtitle у категорий хранится какой ID (например из 1С) можно в файле в колонке «Категории» у ресурса не прописывать всю цепочку, а просто поставить ID родителя, а в конфиге прописать так:
$impex_config['category_id_field'] = 'longtitle';


Параметр skip_new
Удобно при обновлении цен, остатков и т. д. Просто пропишите true и скрипт будет пропускать новые ресурсы.

Документация тут и тут обновлена.

UPD: Перезалил версию для MODX Revolution (исправил ошибку в пакете при добавлении плагина и сниппета)

Павел Романов
13 марта 2025, 09:40
modx.pro
298
+3

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

Дима Касаткин
13 марта 2025, 22:11
0
Привет! Очень круто, что продолжение идей CatalogFill воплощается в обновленном виде, с поддержкой нового минишопа и другими расширенными возможностями, вроде поддержки MIGX полей и др. Обязательно воспользуюcь при случае!

Пара моментов:
• Для impex3 в документации проверь префиксы таблиц, точно они ms2_?
• А почему выбрал CronManager вместо «нативного» в экосистеме с MiniShop компонента Scheduler и планируется ли поддержка последнего в будущем?
    Павел Романов
    14 марта 2025, 10:32
    0
    Здравствуйте

    префиксы таблиц, точно они ms2_
    Поправил, спасибо за уточнение ).

    А почему выбрал CronManager
    Просто обычно работаю с CronManager, но ничего не мешает запускать тот же самый сниппет через Scheduler.

    Добавляем задание:



    Настраиваем параметры:



    Результат:

    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2