我正在研究Magento2[v2.4]产品集成用例
我正在使用REST API[邮递员]创建产品,并观察到产品价格、颜色属性存在于请求JSON中,但从Magento收到的响应中缺少这些属性。
POST http://localhost/magento2/rest/V1/products
Request:
{
"product": {
"id": "2007",
"sku": "20210004",
"name": "Iphone 4",
"price": "400",
"status": 1,
"extension_attributes": {
"stock_item": {
"qty": 4,
"is_in_stock": "true"
}
},
"custom_attributes": [
{
"attribute_code": "color",
"value": 4
}
]
}
}
Response:
{
"id": 2007,
"sku": "20210004",
"name": "Iphone 4",
"attribute_set_id": 4,
"status": 1,
"visibility": 4,
"extension_attributes": {
"stock_item": {
"item_id": 18,
"product_id": 2007,
"stock_id": 1,
"qty": 4,
"is_in_stock": true,
"is_qty_decimal": false
}
},
"custom_attributes": [
{
"attribute_code": "options_container",
"value": "container2"
},
{
"attribute_code": "url_key",
"value": "iphone-4"
}
]
}
如果你查看请求和响应负载,你会发现请求中有Price和Color,但不知何故,Magento没有遵守这些要求,在响应中错过了。
若我想让这个工作,我必须再次发送相同的有效载荷。然后我可以看到价格和颜色的回应
你能告诉我这里出了什么问题吗?
这是由于Magento中的一个错误(https://github.com/magento/magento2/issues/13639)。
在撰写本文时,应在2.4.3中对此进行修正。对于2.4.2及更低版本,您可以在有效载荷中添加以下内容:
"type_id": "simple"