ocdev | Сложный перенос товаров в другие категории Opencart
709
post-template-default,single,single-post,postid-709,single-format-standard,qode-core-1.0,ajax_fade,page_not_loaded,,pitch-ver-1.4.1, vertical_menu_with_scroll,smooth_scroll,grid_1300,blog_installed,wpb-js-composer js-comp-ver-5.0,vc_responsive

Сложный перенос товаров в другие категории Opencart

Как известно переносить товары в Opencart можно заходя либо в каждый товар по отдельности, либо массово с помощью различных модулей например Batch Editor, но иногда возникают и более сложные ситуации. На днях столкнулся с подобной. Предыстория данной проблемы была следующая — был произведен парсинг сайта с последующей заливкой через CSV Price Pro, причем при заливке создались категории типа «обои для кухни/обои для холла/обои для кабинета» и необходимо было отловить все такие товары и растащить одновременно в три категории «обои для кухни», «обои для холла», «обои для кабинета». Лучший вариант для решения подобной задачи — воспользоваться прямым доступом к базе данных MySQL.

Предположим, что id категории «обои для кухни/обои для холла/обои для кабинета» — 6699

id категории «обои для кухни» — 3937

id категории «обои для холла» — 4599

id категории «обои для кабинета» — 3914

(ID категорий можно определить либо из базы данных из таблицы oc_category_discription либо более простой вариант такой

Заходим в PhpMyAdmin и выполняем несколько MySQL скриптов такого содержания.

находим все товары из необходимой категории и копируем в необходимые категории

INSERT IGNORE INTO oc_product_to_category( product_id, category_id ) SELECT product_id, 3937
FROM oc_product_to_category WHERE `category_id` = ‘6699’;

INSERT IGNORE INTO oc_product_to_category( product_id, category_id ) SELECT product_id, 4599
FROM oc_product_to_category WHERE `category_id` = ‘6699’;

INSERT IGNORE INTO oc_product_to_category( product_id, category_id ) SELECT product_id, 3914
FROM oc_product_to_category WHERE `category_id` = ‘6699’;

удаляем данные из базы данных о категории, из которой копировали товар

DELETE FROM `имя-базы`.`oc_category` WHERE `oc_category`.`category_id` = ‘6699’;

DELETE FROM `имя-базы`.`oc_category_description` WHERE `oc_category_description`.`category_id` = 6699;

естественно если при создании базы данных бы использовали префикс «ос_», иначе используете со своим префиксом.

Таким образом можно упростить процедуру присваивания товару других категорий.

 

sadykovs

Похожие записи:

Комментариев:
  • Леонид
    Ответить

    подскажите, пожалуйста, как массово перенести товары из одной категории в другую ? Я так понимаю без сторонних модулей никак? 1.5.6.1 opencart

    09.07.2016 at 14:36

Оставьте ваш комментарий: