epic

epic

Был в сети 03 июня 2026, 14:14
Заказы принимаю
Дмитрий Кондаков
Дмитрий Кондаков
Создаете плагин на событие msieOnCompleteImportProduct:
<?php
/** @var modX $modx */
switch ($modx->event->name) {
	case 'msieOnCompleteImportProduct':

		// Получаем id всех импортированных товаров
		$currentIDs = explode(",", $modx->event->params['data']);

		// Получаем id ВСЕХ товаров в магазине
		$q = $modx->newQuery('msProduct', array('parent' => 7, 'template' => 8)); // тут свои условия
		$q->prepare();
		$q->stmt->execute();
		$oldIDs = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0);

		// Вычисляем id товаров которые есть на сайте, но нет в файле импорта
		$oldIDs = array_diff($oldIDs, $currentIDs);

		if ($toRemoveIDs) {
		  foreach ($toRemoveIDs as $cur) {
		    // и тут делаем с ними что угодно
		  }
		}
	break;
}
PS. на всякий случай сделайте бэкап БД перед тестированием плагина
Андрей
Андрей
$response = $modx->runProcessor('resource/create', array(
  'class_key' => 'msProduct',
  'pagetitle' => 'Товар',
  'parent' => 55,
  'template' => 11,
  'show_in_tree' => 1,

  //Данные
  'price' => 100,
  'old_price' => 0,
  'favorite' => 0,
  'popular' => 0,

  //стандартные опции товара
  'color' => array('Синий', 'Красный'),
  'size' => array('S', 'M'),
  'tags' => array('Тег1', 'Тег2'),

  //свои опции созданные в настройках
  'options-КЛЮЧ_ОПЦИИ' => array('значение1', 'значение2'),

  //TV - 10 это id TV
  'tv10' => 'Значение'
));