Cart / Order Line Items
You can enable a mini cart view in the following requests to show changes to the cart immediately. Find out more in the Views for Cart modifying operations
Prerequisites
access_token
from Headless API AuthenticationcartId
from Create a Cart
Add Line Item to a Cart
Parameters
catalogId
from CatalogspriceGroupId
from Price Groups (string)cultureCode
, e.g.en-US
(string)sku
(string)quantity
(integer)
Optional Parameters
addToExistingOrderline
(default:true
).If
false
, a new order line will be added even if the SKU is already in the Cart. (boolean)
variantSku
used alongsidesku
to identify a product variant. (string)customProperties
a list ofkey
(string) andvalue
(string) pairsprice
custom unit price for the line item (decimal)
Request
curl -D- -X POST <base_url>/api/v1/carts/<cartId>/lines \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
-H 'Content-Type: application/json' \
-d '{
"quantity": <quantity>,
"sku": <sku>,
"variantSku": <variantSku>,
"priceGroupId": <priceGroupId>,
"catalogId": <productCatalogId>,
"cultureCode": <cultureCode>,
"price" : <price>
"customProperties": [
{
"key" : <propKey>,
"value": <propValue>
}
]
}'
Custom Price
By default, Ucommerce calculates the price of the order line based on the product's price. To use a custom price instead, this can be specified in the price
parameter.
Note: Due to risks associated with explicitly setting a product price, we recommend not to use custom price operations in publicly available applications and/or endpoints. Additionally, if the client can access price setters, you are potentially open to price interception. We recommend not to use the transactions:custom:price
scope outside of internal applications.
Delete Line Item from a Cart
A Line Item can be removed by either ID or SKU (and Variant SKU in case of a variant).
Parameters
priceGroupId
from the Cart or from Price GroupscultureCode
, e.g.en-US
(string)sku
(string) orlineId
(string)
Optional Parameters
variantSku
, if the product being removed is a variant (string)
Request
curl -D- -X DELETE <base_url>/api/v1/carts/<cartId>/lines/<lineId> \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
-H 'Content-Type: application/json' \
-d '{
"PriceGroupId": <priceGroupId>,
"CultureCode": <cultureCode>
}'
Update Line Item on a Cart
The following properties can be updated on a Line Item during checkout:
Quantity
Price
TaxRate
Parameters
lineId
(string)priceGroupId
Price GroupscultureCode
, e.g.en-US
(string)
Optional Parameters
quantity
(integer)price
(decimal)taxRate
(decimal)
curl -D- -X PATCH <base_url>/api/v1/carts/<cartId>/lines/<lineId>?PriceGroupId=<id>&CultureCode=<culture> \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
-H 'Content-Type: application/json' \
-d '{
"Quantity": <quantity>,
"Price": <price>,
"TaxRate": <taxRate>
}'
Error Handling
BadRequest (400)
The product does not exist; Price Group does not exist; Order Line does not exist; Mismatch between Cart and Price Group's currency; pipeline execution fails.
Unauthorized (401)
The token is expired.
Forbidden (403)
The token does not have access to this endpoint.
NotFound (404)
Cart does not exist.
Error Response Example
{
"errors":
[
{
"error-description": "Cart does not exist..",
"error": "NotFound"
}
]
}
Related Articles
Error HandlingLast updated
Was this helpful?