UPD 1.3.4
— Добавлено: Автоопределение полей (добавлена кнопка при нажатии на которую произойдет автоопределение полей на основании названий данных взятых из первой строки файла импорта, автоопределение будет происходить только тех полей для которых в выпадающем списке стоит «Игнорировать» )
— Улучшено: Навигации по списку настроек полей
— Исправлено: Установка контекста (web) по умолчанию
<?php
/** @var modX $modx */
switch ($modx->event->name) {
case 'msieOnCompleteImportProduct':
// Получаем id всех импортированных товаров
$currentIDs = explode(",", $modx->event->params['data']);
// Получаем id ВСЕХ товаров в магазине
$q = $modx->newQuery('msProduct', array('class_key' => 'msProduct'));
$q->prepare();
$q->stmt->execute();
$oldIDs = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0);
// Вычисляем id товаров которые есть на сайте, но нет в файле импорта
$oldIDs = array_diff($oldIDs, $currentIDs);
if (!empty($oldIDs)) {
$oldIDs = implode(',', $oldIDs);
$sql = "UPDATE {$modx->getTableName('msProductData')} SET availability = 0 WHERE id IN ({$oldIDs});";
$modx->exec($sql);
}
break;
}
это
то что тебе нужно но у тебя 1 поле в БД а там откуда этот код 6 или phptype = json или array
— Добавлено: Автоопределение полей (добавлена кнопка при нажатии на которую произойдет автоопределение полей на основании названий данных взятых из первой строки файла импорта, автоопределение будет происходить только тех полей для которых в выпадающем списке стоит «Игнорировать» )
— Улучшено: Навигации по списку настроек полей
— Исправлено: Установка контекста (web) по умолчанию
ну в принципе думаю можно будет сделать, что бы автовыбор происходил на основании первой строки из файла импорта содержащей название полей
2) т/к availability (из инфы от автора вопроса) для товара добавлено через систему плагинов minishop2 которую также в удобной форме реализует дополнение msFieldsManager то код примет следующий вид
— Добавлено: Событие msieOnBeforePrepareImportProduct
— Добавлено: Очистка папки upload после импорта
— Улучшено: Импорт TV (не происходит обнуление не импортируемых tv)
— Исправлено: Error 42S02 executing statement: Table msie_cron doesn't exist