Magento产品类别

PHP*_*PHP 7 mysql magento

我必须列出其类别或类别的产品,我只有产品'SKU由它我需要找到它属于哪个类别,所以我想知道在哪个magento表这个信息留下来.

即:对于sku 52429,它分为3类.该报告将显示所有3个类别树:

Bl>护发>造型产品

Bl>天然有机>护发>定型产品

Bl>我们的品牌> Pureology> Stylers

谢谢!Richa

Jos*_*tey 8

Magento类别存储在catalog_category_entity(pk is entity_id)中.要查找产品和类别之间的关系,请使用catalog_category_product.它的结构很简单:

+-------------+------------+----------+
| category_id | product_id | position |
+-------------+------------+----------+
|           3 |          5 |        1 |
|           3 |          6 |        1 |
|           3 |          7 |        1 |
+-------------+------------+----------+
Run Code Online (Sandbox Code Playgroud)

因此,要获得产品的所有类别:

select cc.* from catalog_category_entity cc
   join catalog_category_product cp on cc.entity_id = cp.category_id
   where cp.product_id = {{your product id}};
Run Code Online (Sandbox Code Playgroud)

编辑注意您要查找的信息(显示类别树)在类别表中.列的摘录(一些省略):

+-----------+-----------+-------+----------+-------+----------------+
| entity_id | parent_id | path  | position | level | children_count |
+-----------+-----------+-------+----------+-------+----------------+
|         1 |         0 | 1     |        0 |     0 |             65 |
|         2 |         1 | 1/2   |        1 |     1 |             64 |
|         3 |         2 | 1/2/3 |        1 |     2 |              9 |
|         4 |         2 | 1/2/4 |        2 |     2 |             18 |
|         5 |         2 | 1/2/5 |        3 |     2 |              9 |
+-----------+-----------+-------+----------+-------+----------------+
Run Code Online (Sandbox Code Playgroud)

您可以使用该path列上的拆分来获取路径中所有类别的类别ID,并为报告加载其名称.


Pet*_*ist 7

首先加载产品型号

要么是ID

$product = Mage::getModel('catalog/product')->load($id);
Run Code Online (Sandbox Code Playgroud)

或按属性(SKU)

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', '52429');
Run Code Online (Sandbox Code Playgroud)

现在您可以加载类别ID

$categoryIds = $product->getCategoryIds();
Run Code Online (Sandbox Code Playgroud)

然后获取完整的类别对象

foreach($categoryIds as $categoryId) { 
  $categories[] = Mage::getModel(’catalog/category’) 
    ->setStoreId(Mage::app()->getStore()->getId()) 
    ->load($categoryId);
}
Run Code Online (Sandbox Code Playgroud)

现在获取每个类别的父级

foreach($categories as $category) {
  $category->getParentCategory();
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要的一切.