MySQL - категории Magento экспортируются правильно - разделение пути категории нижнего уровня и поиск значения идентификатора категории - PullRequest
0 голосов
/ 02 мая 2020

После некоторого исследования я обнаружил, что лучше всего подойти к нему так:

  1. найти категорию нижнего уровня для каждого продукта и вернуть его путь
  2. разделить путь на отдельные категории. Это дает вам идентификаторы отдельных категорий
  3. найти значения для каждой категории
  4. в одной ячейке

Предпочитаемый метод, поскольку он может быть проще

ИЛИ

  1. найдите категорию нижнего уровня для каждого продукта и верните его путь
  2. найдите родителя этой категории, затем найдите следующего родителя и так далее, пока не достигнете категории верхнего уровня. Это дает вам идентификаторы отдельных категорий
  3. найти значения для каждой категории
  4. в одной ячейке

также хороший метод, но может быть излишне длинным.

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

Итак, в данный момент я застрял на шагах два и 3.

  • Я не знаю, как разделить путь категории с помощью разделитель.
  • Я не знаю, как искать значения по уже полученным результатам.

Мой текущий запрос выглядит так:

SELECT 
    ccp.product_id,
    -- pe.sku,
    -- pe.type_id,
    cce.path,
    ccp.category_id,
    ccev.value,
    cce.parent_id
FROM
    mage_catalog_category_product AS ccp
        JOIN
    mage_catalog_category_entity AS cce ON ccp.category_id = cce.entity_id
        JOIN
    mage_catalog_category_entity_varchar AS ccev ON ccev.entity_id = cce.entity_id
        JOIN
    mage_catalog_product_entity AS pe ON pe.entity_id = ccp.product_id
WHERE
    cce.children_count = '0'
        AND cce.path LIKE '1/14%'
        AND cce.path NOT LIKE '1/14/207%'
        AND ccev.attribute_id = '33'
        AND ccev.store_id = '0'
ORDER BY pe.sku

вывод выглядит this

output looks like this

Цель состоит в том, чтобы мой путь содержал имена категорий, а не идентификаторы. так что похоже на mydomain.com/books/kids/, а не на 1/2/3.

Как мне теперь найти родителя родителя?

ИЛИ

Как разделить пути на идентификаторы отдельных категорий и найти их значения, а не значение моей категории нижнего уровня?

Тогда как мне объединить результаты в одну ячейку?

...