如何通过Magento2上的API将项添加到报价/购物车

awa*_*avi 9 api rest magento2

我试过调用[POST] /carts/mine/items,带有正确承载的标题和正文:

{
    "cart_item": 1,
    "sku": "MY_SKU",
    "qty": 1
}
Run Code Online (Sandbox Code Playgroud)

我收到了以下回复:

{
   "message": "Invalid value of \"%value\" provided for the %fieldName field.",
   "parameters": {
      "fieldName": "qty",
      "value": null
   }
}
Run Code Online (Sandbox Code Playgroud)

有两件事,我不明白要放在cart_item中的内容(但这是必需的)而且我不知道为什么它一直告诉我qty为null?

小智 11

首先应使用空体请求创建空车:

[POST] {base URL}/rest/V1/carts/mine
Run Code Online (Sandbox Code Playgroud)

作为回应,您将获得购物车/报价的ID.

现在您可以使用以下方法将商品添加到购物车

[POST] {base URL}/rest/V1/carts/mine/items
{
  "cart_item": {
    "quote_id": <cart ID received from previous call>,
    "sku": "product_sku",
    "qty": 10
  }
}
Run Code Online (Sandbox Code Playgroud)

作为回应,您应该获得您的购物车项目数据:

{
  "item_id": 1,
  "sku": "product_sku",
  "qty": 10,
  "name": "Simple Product",
  "price": 123,
  "product_type": "simple",
  "quote_id": "1"
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您多次执行相同的请求,可能会意外地使用POST请求更新现有购物车项目数量.