[mSync / mSklad] Деактивация товаров при выгрузке
Здравствуйте.
Подскажите, пожалуйста, mSync по умолчанию снимает с публикации товары, которые есть на сайте, но которые не пришли в выгруке import.xml из 1С?
Если нет, как можно реализовать такой функционал?
Если да, почему товар мог не сняться с публикации, если в выгрузке его нет?
Спасибо за помощь
Подскажите, пожалуйста, mSync по умолчанию снимает с публикации товары, которые есть на сайте, но которые не пришли в выгруке import.xml из 1С?
Если нет, как можно реализовать такой функционал?
Если да, почему товар мог не сняться с публикации, если в выгрузке его нет?
Спасибо за помощь
Комментарии: 5
mSync Не снимает товары с публикации перед выгрузкой. Нужно написать плагин на событие mSyncOnBeforeImport, который это делает. Как-то так:
<?php
if ($modx->event->name == 'mSyncOnBeforeImport' && $mode == 'catalog') {
$query = $modx->newQuery('modResource');
$query->command('update');
$query->where(array('class_key' => 'msProduct', 'published' => 1));
$query->set(array(
'published' => 0
));
$query->prepare();
$query->stmt->execute();
}
У меня есть только событие mskladOnProductImport На него можно повесить? Или оно срабатывает на каждом ресурсе, а не до выгрузки?
joxi.ru/5mdEGK0IJ49952
joxi.ru/5mdEGK0IJ49952
C mSklad не работал, не могу подсказать. Но если проводить аналогию с mSync, то да: mskladOnProductImport — это должно быть событие на обработку одного товара(а mskladOnProductOffers — обработка товарного предложения). В общем, не годится. Если других событий нет и нет соответствующих настроек, то, полагаю, нужно лезть в класс компонента и дописывать свой код.
Я в классе уже дописал, но как говорится, есть нюанс. Получается, что у нас в начале выгрузки все товары с сайта пропадут, и будут появляться по мере работы выгрузки? Как-то это не очень хорошее решение. Может как-то можно сверять массивы ID товаров на сайте и в выгрузке и потом, положим, по тем ID, что нет в выгрузке пробегаться, и отключать эти товары?
В mSync после проведения импорта возвращается массив id товаров — обновлённых и созданных. И можно через плагин отловить эти товары и опубликовать одним запросом. А здесь нужно смотреть, но подозреваю, что нет такой фичи.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.