Скопировать категории Magento для родителей - PullRequest
3 голосов
/ 09 сентября 2010

Сценарий: Новый пустой Magento с категорией товаров и импорта клиентов с некоторыми исправлениями.

Структура категории:

Root
 L..Category_parent1 (0 products)
    L..Category_child1 (22)
    L..Category_child2 (34)
 L..Category_parent2 (0)
    L..Category_child1 (22)
    L..Category_child2 (34)
 L..Category_parent3 (0)
    L..Category_child1 (22)
    L..Category_child2 (0)
       L..Category_child2_child1 (22)
       L..Category_child2_child2 (34)
    L..Category_child3 (10)

Я хочу скопировать все продукты из дочерней категории в ее родителя с помощью SQL-запроса или сценария php. (Я не знаю, возможно ли это сделать через администратора Magento).

Желаемый результат:

Root
 L..Category_parent1 (22 + 34 products)
    L..Category_child1 (22)
    L..Category_child2 (34)
 L..Category_parent2 (22 + 34)
    L..Category_child1 (22)
    L..Category_child2 (34)
 L..Category_parent3 (22 + 22 + 34 + 10)
    L..Category_child1 (22)
    L..Category_child2 (22 + 34)
       L..Category_child2_child1 (22)
       L..Category_child2_child2 (34)
    L..Category_child3 (10)

UPDATE! Есть ли способ сделать это только на шоу-продуктах? Посмотрите продукты таким образом, поддерживая связь со своими категориями (просто сделайте это в представлении макета в списке ...)?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010

Как частичное решение:

insert into catalog_category_product_index (
    select cat.parent_id, prod.product_id, 1 
      from catalog_category_product_index prod, catalog_category_entity cat
      where prod.category_id = cat.entity_id and cat.level >= 1
);

Это должно выбрать все и повысить уровень (пока мы не доберемся до корня).Отдельный запрос поможет столбцу позиции (в настоящее время жестко запрограммирован в 1).Однако большая проблема заключается в том, что желаемый результат фактически затрагивает элементы более чем на один уровень, тогда как этот запрос выполняет только один уровень.Чтобы правильно обобщить, возможно, поместите этот запрос в некоторый код и повторите его, начиная с самой низкой глубины, и двигайтесь вверх.

Надеюсь, это поможет!

Спасибо, Джо

1 голос
/ 09 сентября 2010

Кажется, что установка is_anchor для всех категорий решает мою проблему, но ответ, предоставленный Джозефом, отвечает на вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...