我正在尝试获取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时是否包含详细属性?
答案 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秒的时间。 。 。
您得到图片了! :)
祝你好运!