如何在不包括祖父母的情况下获得产品所属的类别?

时间:2018-01-19 15:11:16

标签: rest magento magento2

我正在尝试获取Magento 2 REST API中所有产品的列表以及产品所在的类别(我想在另一个应用程序中构建树视图)。

我可以查询所有SKU然后逐个浏览SKU,但这需要很长时间,我宁愿进行1次API调用并一次性获得所有产品/类别关系。

如果我一次查询所有SKU,我不会得到category_ids属性,该属性显示该项目所属的类别。

GET: http://someurl/rest/V1/products?searchCriteria=

// e.g. this is missing when querying for multiple SKUs
{
    "attribute_code": "category_ids",
    "value": [
        "557"
    ]
},

如果我使用类别API,它会为我提供属于当前类别下的子类别的产品,这是我不想要的。

GET: http://someurl/rest/V1/categories/555/products

// e.g. the below aren't leaf-level on category 555, they live in a subcategory
[
    {
        "sku": "BC000018",
        "position": 1,
        "category_id": "555"
    },
    {
        "sku": "BC000022",
        "position": 1,
        "category_id": "555"
    },
    {
        "sku": "BC000023",
        "position": 1,
        "category_id": "555"
    },
// and so on

在检查类别时是否有任何方法只查询叶级项目,或者在使用产品API时是否包含详细属性?

1 个答案:

答案 0 :(得分:0)

要实现您想要的目标-您将需要构建自定义的“产品搜索” /“产品详细信息” API,该API返回一个JSON结果集,其中包含所有感兴趣的相关数据点(例如:分配产品的所有类别的列表)到)

我的2美分:

您可能要考虑在“产品详细信息API响应”中添加其他数据,而不是在“产品搜索” API的“产品节点”中添加其他数据。

这是为什么?

可能需要其他SQL查询来获取您想要添加到产品JSON的额外信息。

例如:category - product映射存储在catalog_category_product表中,将需要至少1个额外的SQL查询。

根据您的目录大小和/或类别定义,此附加查询可能需要处理的每一行增加(最佳情况)0.01秒-0.5秒(对于复杂/未优化的表连接)。

如果您有100种产品的目录-这意味着执行产品搜索API需要额外的1-5秒。 。 。 。 如果您有1000种产品的目录,则意味着需要10到50秒的时间来执行产品搜索API。 。 。 。 如果您有10,000种产品的目录,则意味着执行Product Search API需要额外的100-500秒的时间。 。 。

您得到图片了! :)

祝你好运!