Ucommerce
  • Ucommerce Next Gen
    • Getting Started
      • Prerequisites
      • Licensing
      • Ucommerce Templates
      • Headless Template
      • MVC Template
    • Headless
      • Postman Collection
      • Headless API Authentication
        • Token endpoint - Authorization Header
        • Authorization Scopes
        • Refreshing the Access Token
      • Reference
        • Cart
        • Cart / Order Line Items
        • Shipment
        • Billing
        • Promotion Codes
        • Price Groups
        • Payment Methods
        • Countries
        • Shipping Methods
        • Catalogs
        • Cart Custom Properties
        • Line Item Custom Properties
        • Orders
        • Views for Cart modifying operations
      • Custom Headless APIs
      • Error Handling
      • Pagination
      • Deprecation
    • Backoffice Authentication
      • Microsoft Entra ID Example
      • Auth0 Authentication Example
    • Definitions
      • What is a Definition
    • Search and indexing
      • Configuration
      • Indexing
        • Index Definitions
        • Facets
        • Indexing Prices
        • Suggestions
        • Custom Data
      • Searching
    • Payment Providers
      • Stripe Provider Integration
      • Implementing a custom payment provider
    • Data Import
    • Miscellaneous
      • Media
      • Price Group Inheritance
      • Price Group Criteria
      • Soft Deletion Of Entities
      • Logging
      • OpenTelemetry
    • Extensions
      • Extending Pipelines
        • Order Processing Pipelines
        • Checkout Pipelines
      • Changing Service Behavior
        • Images
        • Content
      • Custom Headless APIs
      • Extend the Backoffice
        • Custom UI Components
      • Custom Editor UI
      • Custom Promotion Criteria
      • Custom Price Group Criteria
    • How-To
      • Migrate from Classic
        • Common database issues
      • Entities from code
        • Bootstrapping data on startup
        • Product Definitions & Fields
      • Discover pipelines and their tasks
      • Executing a pipeline
    • Integrations
      • Umbraco Media Delivery API
      • App Slices
        • Product Picker
  • Release Notes
  • Contact Us
Powered by GitBook
On this page
  • Prerequisites
  • Add Line Item to a Cart
  • Parameters
  • Optional Parameters
  • Request
  • Custom Price
  • Delete Line Item from a Cart
  • Parameters
  • Optional Parameters
  • Request
  • Update Line Item on a Cart
  • Parameters
  • Optional Parameters
  • Error Handling
  • Related Articles

Was this helpful?

  1. Ucommerce Next Gen
  2. Headless
  3. Reference

Cart / Order Line Items

PreviousCartNextShipment

Last updated 1 year ago

Was this helpful?

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 Authentication

  • cartId from

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

Error
Description

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 Handling
Create a Cart