mSync удаление старых картинок товаров

Доброго времени суток!
При выгрузке товаров на сайт из 1С через mSync новые картинки товаров загружаются в галерею, создаются превьюшки, но старые не удаляются. Видимо, так сделано на тот случай, если старые картинки нужны. Клиент же хочет, чтобы при наличии новых картинок для товара в выгрузке старые удалялись.

Написала плагин на событие mSyncOnPrepareProduct:
$eventName = $modx->event->name;

if ($eventName == 'mSyncOnPrepareProduct') {
    
    if (!empty($data['images'])) {
        $id = $properties['id'];
        
        $images = $modx->getCollection('msProductFile', ['product_id' => $id]);
        
        if (!empty($images)) {
            foreach($images as $image) {
                $image->remove();
            }
        }
    }
}
В таблице событий mSync у этого события есть $data — новые полученные данные, и $properties — как я поняла, свойства товара, имеющиеся в данный момент. Но плагин не работает(. Похоже, что-то все-таки я делаю не так.

Решал ли кто-нибудь подобную задачу? Может ли кто-нибудь подсказать, где я ошиблась, и правильно ли вообще решать эту проблему таким путем?

Автор дополнения в отпуске, спросить у него не могу.
Svetlana S
13 июля 2020, 14:01
modx.pro
231
0

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

Максим
13 июля 2020, 15:14
0
Добрый день. Ну вродь как все правильно. Нужно только проверить, что данное событие у этого плагина включено и дебажить. Я бы для начала посмотрел что из себя представляет $properties
    Svetlana S
    13 июля 2020, 16:14
    0
    Событие, конечно же, включено. Плагин срабатывает — из-за этого выгрузка обрывается, и все. Картинки не обновляются, в логах никаких ошибок нет. Видимо, просто что-то не правильно в плагине. В документации к mSync написано, что $properties — это свойства товара. Как поточнее посмотреть — понятия не имею( Код mSync довольно сложный, разбитый на множество файлов, так и не нашла в них, где это событие вызывается
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2