Following table lists features which are compatible with standard cart APIs. If you're using features that are not supported, we recommend that you do not enable the standard cart APIs.
| Feature / Capability | Compatibility with Standard Cart API |
|---|---|
| Asset-Based Ordering | Compatible |
| Manual Pricing Adjustments Changes in the Cart | Compatible |
| Promotions in the Cart | Compatible |
| Price Adjustments and Overrides | Compatible |
| Attribute-Based Pricing | Compatible |
| Multi-Site Quote and Order Capture | Compatible |
| Context Rules and Advanced Rules Frameworks | Compatible |
| Create Qualification Rule Sets | Compatible |
| Advanced Rules (Entity Filters, Evaluations) | Compatible |
| Offer Specification | Compatible |
| Product Versioning | Compatible |
| Discounts in Industries CPQ | Compatible |
| Change of Plans in Industries CPQ | Compatible for single-asset change of plan. Bulk Change of Plan is not compatible. |
| Bulk Change and Bulk Update | Not compatible. These operations fail when Standard Cart APIs are enabled. |
| Usage Pricing for Industries CPQ | Compatible |
| Functions for Context Rules | Compatible. See Working Example |
| Product Relationships | Compatible. See Working Example |
| Salesforce Pricing with CME | Compatible |
| Transformation of Multiplay Offers | Compatible with limitations. replaceOffers does not support complex multi-play transformations. See Known Limitations. |
| Multi-Edit Cart Items | Compatible |
| Incremental Caching | Compatible |
note: - To enable the Product Versioning feature, customers must contact their Account Executives (AEs). Starting with the Winter'26 release, any new customer attempting to enable this feature will receive an error message instructing them to contact their AE.
Usage Considerations
Review the following considerations before using the standard cart APIs.
-
Entity filters on the orders, assets, orderlineitems, Product, PriceBookentry, and ProductChildItem objects are supported. All advanced rules are supported.
-
Entity filters and advanced rules may not work as expected if the formula field is modified in the transaction. To rerun the advanced rules once the formula field is updated, execute getCartsItems API call with validate = true.
-
In the addToCart API, the
includeAttachmentinput parameter is not supported. Standard Cart APIs and LWC Cart (FlexCard-based and Enhanced) do not return or display product attachments on cart line items. Hybrid Cart continues to support attachments. If you require attachments, stay on Hybrid Cart or, for FlexCard Cart only, build a custom component that queriesContentDocumentLinkrecords. -
For better performance when you use this API to add a child bundle with a parent as a virtual line item, pass
rootLineItemIdin theitemsobject.Following is an example payload.
{
"methodName": "postCartsItems",
"items": [
{
"quantity": {Quantity of child product to add},
"parentId": {Parent cart item Id},
"rootLineItemId": {Pass in case of child add of virtual parent for better performance}
"parentHierarchyPath": {Hierarchy path of parent},
"itemId": {comma seperated pricebook entry ids of child products to add},
"parentRecord": {
"records": [
{Parent item record object}
]
}
}
],
"cartId": {cart_ID},
"price": true,
"validate": true,
"includeAttachment": true,
"pagesize": 10,
"lastRecordId": null,
"hierarchy": -1,
"query": null
}
- The
nameResultnode is not be present in response (like attributeCategories, productAttributes) for all the standard cart APIs. The data nodes are directly present. - The structure of response for all the standard cart APIs, when called using Apex Remote Service (CpqAppHandler), is as follows:
{
"CpqNext1b": true,
"result": response (String)
}
- Set
priceto false in getCartsItems if you don't need to run a pricing engine for the API call. This can improve performance. - For priceCart API, setting
limitScopeToPassedItemno longer required to be separately passed, just pass items in theitemsparameters. - The replaceOffers API does not support complex transformations. For example, Multi-play offers. Change of Plans is otherwise compatible for single-asset operations. See Known Limitations.
- Bulk Change and Bulk Update, including bulk disconnect of assets, are not compatible with Standard Cart APIs. Do not enable Standard Cart APIs if you use these features. This is separate from Multi-Edit Cart Items, which remains compatible.
- Using Field Settings to add custom fields to the cart response is supported only for
getCartsand GetCartsItems. For other Standard Cart APIs, pass any custom field with thefieldsparameter of the request URL or body. If you need many fields, add them in a PreInvoke hook instead of Field Settings. - The ProductSelector interface is not supported with Standard Cart APIs. Use the
sortByparameter ongetCartsProducts. - The following API parameters have Standard Cart API support starting in 258. Behavior can still differ from Classic:
noResponseNeededis supported for Add, Update, and Delete Standard Cart APIs. Multi-item add defaults tonoResponseNeeded=trueand does not return therecordsnode unless you passfalse.maintainAssetPriceis supported from 258.
- Starting in the Winter'27 release, the Classic
cloneItemsAPI supportsnoResponseNeeded. Whentrue, the API does not return therecordsnode.
For a full list of Classic-only APIs and remaining behavior differences, see Known Limitations.
AssetToOrder
-
There are two invocations that can be used upon calling AssetToOrder API. Upon calling OmniFDOWrapper, the classic flow is invoked. The standard flow is invoked upon calling REST API.
-
The following CPQConfiguration settings are not currently supported for AssetToOrder. While we offer the functionality, there is no specific configuration available to control the API behavior for these settings:
- UsingPromotions
- DeltaPrice
- IsCachingEnabledForAssetToOrder