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

awavi picture awavi · Nov 13, 2015 · Viewed 8.8k times · Source

I have tried calling [POST] /carts/mine/items, headers with correct bearer, and body:

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

and I get the folowing response:

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

Two things, I do not understand what to put in cart_item (but it is required) and I do not why it keeps telling me qty is null?

Answer

Alex Paliarush picture Alex Paliarush · Nov 16, 2015

First of all empty cart should be created using request with empty body:

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

In response you will get ID of your cart/quote.

Now you can add items to your cart using:

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

In response you should get your cart item data:

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

Be careful since you may accidentally update existing cart item quantity with POST request, if execute the same request several times.