Массовое Добавление Доп.категорий К Товарам Из Категории

Пытаюсь найти простое и элегантное решение.

Есть множество категорий с товарами. Часто возникает необходимость для всех товаров из определенной категории задать массово дополнительную категорию - одинаковую для всех.

Вручную делать это для сотен товаров - адский труд, особенно если эту дополнительную категорию долго нужно для каждого товара выбирать через многоуровневое дерево категорий каждый раз заново.

Штатных средств для массового изменения доп.категорий и отдельных модулей не нашел.

Есть мысль использовать средства импорта-экспорта в CSV:

Например вывести на экспорт все товары из нужной категории, при этом экспортировать только поля с id товара и категориями. Потом во внешнем текстовом редакторе тупо по маске прям в значения полей с категориями добавить нужную доп.категорию. И импортировать это заново, получив исправленный список категорий для каждого товара.

Взлетит? Товары при импорте с одинаковыми айди что сделают? Проапдейтятся или создадуться заново?

Актуально для версии 3 и для версии 4, магазинов несколько.

А с подкатегориями или без?

если интересно, у меня где-то скриптик в десяток строк, который почти то же самое делает, кинуть в запароленную директорию и запускать когда надо

Да можно и без подкатегорий в принципе.

Было бы очень интересно, спасибо заранее ;)

И все же - при импорте с совпадающими айдишниками товаров обновятся только категории или остальные характеристики обнулятся?

Да можно и без подкатегорий в принципе.

Было бы очень интересно, спасибо заранее ;)

И все же - при импорте с совпадающими айдишниками товаров обновятся только категории или остальные характеристики обнулятся?

Сегодня чуть подправлю и передам. При импорте обновляются только переданные поля. То есть если для товара передаете product code, language, secondary categories - то при совпадении артикула и языка обновятся только дополнительные категории, остальное останется как было

Да можно и без подкатегорий в принципе.

Было бы очень интересно, спасибо заранее ;)

И все же - при импорте с совпадающими айдишниками товаров обновятся только категории или остальные характеристики обнулятся?

Ну вот максимально упрощенно
И обязательно в запароленную папку, или закачать, выполнить и удалить, потому как админ доступ
<?php
// если магазин лежит в папке относительно корня сайта, как в config.local.php
$path_to_shop = '';
// id категории, ИЗ которой берутся товары
$id_old_dir = 12;
// id категории, В которую они должны поместиться как в дополнительную
$id_new_dir = 315;

// Configure CS-Cart -----------------------------------------------------------
define(‘AREA’, ‘A’);
define(‘ACCOUNT_TYPE’, ‘admin’);

define(‘MY_DIR_ROOT’, $_SERVER[‘DOCUMENT_ROOT’].$path_to_shop);
require(MY_DIR_ROOT . ‘/init.php’);

$list_products = db_get_fields(“SELECT product_id FROM ?:products_categories WHERE category_id = ?i”, $id_old_dir);

foreach ($list_products as $product) {

db_query("REPLACE ?:products_categories SET product_id = ?i, category_id = ?i, link_type = 'A'", $product_id, $id_new_dir);
echo $product_id." - ".$id_new_dir."<br>";

}

// обновляем количество товаров в категории
$product_count = db_get_field(“SELECT COUNT(*) FROM ?:products_categories WHERE category_id = ?i”, $id_new_dir);
db_query(“UPDATE ?:categories SET product_count = ?i WHERE category_id = ?i”, $product_count, $id_new_dir);

?>

PS - поправил, пропустил лишнюю кавычку!
1 лайк