[Помогите] Товар из подкатегорий не показывались в основной категории

Тема в разделе "OpenCart", создана пользователем petrenckov, 4 дек 2016.

  1. petrenckov

    petrenckov

    Регистрация:
    4 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    Есть подкатегории товаров, например iPhone. Нужно что бы товар из подкатегорий не показывались в основной категории.Помогите сделать!
     
  2. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    900
    Симпатии:
    218
    Может ссылку и скрины дашь что ты хочешь? Шаманов тут нету.
     
  3. petrenckov

    petrenckov

    Регистрация:
    4 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    Последнее редактирование: 4 дек 2016
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Просто не ставьте галочки показа для главной категории.
    Товары из подкатегорий автоматом в главной не отображаются, а только, если вы выбрали их показ там!
     
  5. petrenckov

    petrenckov

    Регистрация:
    4 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    У меня 1000 товаров понимаете, не могу же я каждый товар редактировать, поэтому нужна другая альтернатива.
     
  6. ISomeInterface

    ISomeInterface

    Регистрация:
    4 окт 2016
    Сообщения:
    106
    Симпатии:
    76
    Это можно и запросом сделать:
    Код:
    DELETE p2c.*
    FROM oc_product_to_category AS p2c
    LEFT JOIN (
       SELECT p2c.product_id, p2c.category_id
       FROM oc_product_to_category AS p2c,
           oc_category_path AS cp,
           (SELECT p2c.product_id, MAX(cp.level) AS level
           FROM oc_product_to_category AS p2c, oc_category_path AS cp
           WHERE p2c.category_id = cp.category_id
               AND cp.category_id = cp.path_id
           GROUP BY p2c.product_id) AS l
        WHERE p2c.category_id = cp.category_id
            AND cp.category_id = cp.path_id
            AND p2c.product_id = l.product_id
            AND cp.level = l.level
    ) AS t ON p2c.product_id = t.product_id AND p2c.category_id = t.category_id
    WHERE t.product_id IS NULL
    
    Вместо "oc_" свой префикс.
    Запрос сработает корректно только если товар принадлежит только одному дереву (или ветке) категорий. Он оставит связь товара только с самой глубокой вложенной категорией к которой он принадлежит.
     
    Последнее редактирование: 6 дек 2016
  7. petrenckov

    petrenckov

    Регистрация:
    4 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    Спасибо. А где этот запрос нужно сделать?
     
  8. ISomeInterface

    ISomeInterface

    Регистрация:
    4 окт 2016
    Сообщения:
    106
    Симпатии:
    76
    Заходишь в phpMyAdmin, выбираешь базу данных, вкладка SQL, вставляешь запрос, нажимаешь "вперед"
     
  9. ISC-STC

    ISC-STC

    Регистрация:
    10 дек 2016
    Сообщения:
    10
    Симпатии:
    1
    Вопрос таков, кто у вас должно отображаться в соновной категории, потому что можно переопределить схему главной категории и радоваться жизни.
     
  10. xitagurade

    xitagurade

    Регистрация:
    12 дек 2016
    Сообщения:
    10
    Симпатии:
    2
    Есть модули массового редактирования, к примеру, Batch Editor. Логика Opencart заключается в том, что товар отображается только в тех разделах (категориях), которые выбрали. К примеру, товар размещаем в одежда-джинсы-мужские. Если хотим отображения во всех трех, то необходимо задать главную категорию "мужские" и добавить еще две "одежда", "джинсы"
     
  11. petrenckov

    petrenckov

    Регистрация:
    4 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    Например, есть главная категория называется Apple в этой категории есть общие подкатегории, например iPhone, iPad итд, так вот в главной категории и в общей подкатегорий и отображаются весь товар Apple, нужно что бы товар Apple не отображался в общей подкатегории и главной, а только в самих категорий, например в iPhone только телефоны, в iPad только планшеты