2015-11-13 15 views
7

Ho provato a chiamare [POST] /carts/mine/items, intestazioni con corretta portatore, e il corpo:Come aggiungere un elemento ad un preventivo/carrello tramite API su Magento2

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

e ottengo la risposta folowing:

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

Due cose, non capisco cosa mettere in cart_item (ma è obbligatorio) e non so perché continua a dirmi che qty è nullo?

risposta

9

Prima di tutto vuota il carrello deve essere creato utilizzando richiesta con corpo vuoto:

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

In risposta si otterrà ID del tuo carrello/preventivo.

Ora è possibile aggiungere articoli al carrello utilizzando:

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

In risposta si dovrebbe ottenere i dati della spesa articolo:

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

Fare attenzione in quanto si può aggiornare per sbaglio la quantità della spesa elemento esistente con Richiesta POST, se si esegue la stessa richiesta più volte.

+0

Come passare più oggetto con una chiamata API? –

0

È un'aggiunta alla risposta di @Alex Palirush grazie a spiegarlo chiaramente.

L'id preventivo deve essere un numero intero altrimenti avverrà attraverso un errore cartIdio di campo sconosciuto.

{ "messaggio": "No tale entità con% fieldName =% fieldValue", "parametri": { "fieldName": "CARTID", "fieldValue": "0"}}

+0

Ok, modificherò la risposta di Alex per esprimere questo! – awavi