如何在 Magento2 上通过 API 添加项目到 quote/cart

How to add an Item to a quote/cart via API on Magento2

我试过用正确的承载呼叫 [POST] /carts/mine/items、headers 和 body:

{
    "cart_item": 1,
    "sku": "MY_SKU",
    "qty": 1
}

我得到以下响应:

{
   "message": "Invalid value of \"%value\" provided for the %fieldName field.",
   "parameters": {
      "fieldName": "qty",
      "value": null
   }
}

两件事,我不明白要在 cart_item 中放什么(但这是必需的)而且我不明白为什么它一直告诉我数量为空?

首先应该使用带有空主体的请求创建空购物车:

[POST] {base URL}/rest/V1/carts/mine

作为回应,您将获得报价的 ID。

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

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

作为响应,您应该得到您的购物车商品数据:

{
  "item_id": 1,
  "sku": "product_sku",
  "qty": 10,
  "name": "Simple Product",
  "price": 123,
  "product_type": "simple",
  "quote_id": "1"
}

请注意,如果多次执行相同的请求,您可能会不小心用 POST 请求更新现有的购物车商品数量。

这是对@Alex Palirush 回答的补充,感谢您解释清楚。

报价 ID 必须是整数,否则将通过错误未知字段 cartId。

{
  "message": "No such entity with %fieldName = %fieldValue",
  "parameters": {
    "fieldName": "cartId",
    "fieldValue": "0"
  }
}