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

Add Line Item to a Cart

Parameters

  • catalogId from Catalogs

  • priceGroupId 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 alongside sku to identify a product variant. (string)

  • customProperties a list of key (string) and value (string) pairs

  • price 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 Groups

  • cultureCode, e.g. en-US (string)

  • sku (string) or lineId (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

Note: When modifying the price or the tax rate, your access_token needs the scope transactions:custom:price. If you modify the price and tax rate, Ucommerce will not edit those values in the future.

Parameters

  • lineId (string)

  • priceGroupId Price Groups

  • cultureCode, 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

ErrorDescription

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"
        }
    ]
}
Error Handling

Last updated