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

时间:2015-11-13 20:22:22

标签: api rest magento2

我试过调用[POST] /carts/mine/items,标题包含正确的持票人和正文:

{
    "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中(但这是必需的)而且我不知道为什么它一直告诉我qty是null?

2 个答案:

答案 0 :(得分:11)

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

[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请求更新现有的购物车项目数量。

答案 1 :(得分:0)

这是@Alex Palirush答案的补充,这要归功于它的清楚解释。

引用ID必须为整数,否则将通过错误未知字段cartId。

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