Главная категория у товара играет очень важную роль, на основе неё формируется постояный урл, очень желательно сразу указывать её корректно, так как смена урлов не всегда проходит удачно в глазах поисковых систем, не смотря на правильный 301 редирект на prestashop.
Так случилось, что после импорта большинство товаров имели не самую глубокую главную категорию, к примеру у нас есть дерево категорий «Одежда > Шорты > Для пляжа», у товара «Шорты для пляжа» главной категорий была категория «Одежда» вместо «Для пляжа», чтобы решить эту проблему, был написан не сложный скрипт.
require_once "./config/config.inc.php"; require_once "./init.php"; set_time_limit(0); $start = ($_GET['start'] ? $_GET['start'] : 0); $limit = ($_GET['limit'] ? $_GET['limit'] : 10000); $products = Db::getInstance()->ExecuteS('SELECT id_product,id_category_default FROM ps_product WHERE 1'); $i=0; foreach($products as $product){ $cats = Db::getInstance()->ExecuteS('SELECT c.*, cp.* FROM ps_category c, ps_category_product cp WHERE cp.id_category = c.id_category AND cp.id_product = '.$product['id_product']); //print_r($cats); $max = 0; $id_max = 0; foreach($cats as $cat){ if($cat['level_depth']>$max){ $max = $cat['level_depth']; $id_max = $cat['id_category']; } } if($id_max && $product['id_category_default'] != $id_max){ Db::getInstance()->Execute('UPDATE ps_product SET id_category_default = '.(int)$id_max.' WHERE id_product='.$product['id_product']); $i++; } } echo $i; |
Скрипт сохраняется в файл и кладется в корень сайта. После запускается. Хочу отметить, что проверен только на prestashop 1.4. Удачи в разработке!
А если категории вобще не нужны, и я создал их только лишь для возможности сортировки? Есть ли возможность создавать товары вобще без категории может так моя задача решится?
Вобщем задача следующая, нужно прописать отдельный css для категорий, то есть чтобы в карточки товара этот стиль не отображался. Вся проблема в том что все стили прописываются через главный шаблон, как прописать отдельный css для категорий не знаю. Нужно это для того чтобы настроить стили для цены в категориях, для карточки товара та же цена должна иметь немного другой вид. Если кто то может подсказать способ или предложить свой, буду признателен.