Known Limitations for Standard Cart APIs
Standard Cart APIs retain the same API names, inputs, and response formats as Cart APIs (Classic) unless a topic calls out a difference. This topic lists behaviors that still differ from Classic, and Cart APIs that continue to run on the Classic Apex path.
Before you enable Standard Cart APIs, review Check Feature Compatibility and the API list in Standard Cart APIs.
You can enable only the APIs listed in Standard Cart APIs. Other Cart APIs continue to run using Apex libraries.
The following operations have Classic usage examples and are not on the Standard Cart APIs list. Treat them as Classic unless a later release adds them to that list.
| Operation | Remote method | Classic usage example |
|---|---|---|
| Validate Cart | runCartValidation | Validate Cart Action |
| Clone Line Items | cloneItems | Clone Line Items in Cart |
| Cancel Order / Submit Cancel | cancelCart / submitCancelOrder | Cancel Order, Submit a Cancel Order Request |
| Get Product Details / Get Products by ID | getCartsProductDetails / getCartsProductsById | Get Details of Product, Get Products by ID |
| Get Catalog Information | getCatalogs | Get Catalog Information |
| Get Price Lists for Cart | getCartsPriceLists | Get Price Lists for Cart |
| Update Item Attributes | putCartsItemsAttributes | Update Item Attributes |
| Get / Add Promotions | getCartsPromotions / postCartsPromotions | Get Cart Promotions, Add Promotion to Cart |
| Get Price Waterfall | getCartsItemPrices | Get Price Waterfall for Price |
| Delete Adjustment | deleteAdjustment | Delete Adjustment |
| Get All Assets | getAllAssets | Get Assets for Account |
For validation and pricing on the Standard path, use Run Pricing for Items to Cart. Dedicated runCartValidation remains a Classic Cart API.
| Area | Classic Cart APIs | Standard Cart APIs |
|---|---|---|
| Transformation of multi-play offers | Supported | Change of Plans is compatible for single-asset operations, but replaceOffers does not support complex multi-play transformations |
| Bulk Change and Bulk Update | Supported | Not compatible. Bulk Change, Bulk Update, and bulk disconnect fail when Standard Cart APIs are enabled |
| ProductSelector interface | Supported | Not supported. Use the sortBy parameter on getCartsProducts |
| Field Settings / CPQV2 field settings | Supported for cart responses | Supported for getCarts and GetCartsItems only. For other Standard Cart APIs, pass custom fields in the fields parameter |
noResponseNeeded | Supported. cloneItems supports noResponseNeeded from the Winter’27 release | Supported for Add, Update, and Delete Standard Cart APIs from 258. Multi-item add defaults to noResponseNeeded=true unless you pass false |
maintainAssetPrice | Supported | Supported from 258 |
includeAttachment | Supported | Ignored on addToCart. Product attachments are not returned or displayed in LWC Cart (FlexCard-based or Enhanced) |
| Custom Expression mode in RuleSets | Supported | Not supported |
Context mappings with Initialization Type Type In and Scope SObject | Supported | Not supported |
nameResult node (attributeCategories, productAttributes) | Present | Not present. Data nodes are returned directly |
actions node | Populates both remote and rest | Populates only the protocol you invoked |
| Cart document / line items in custom code | Full line-item sObject list | CpqCartDocument contains only items affected by the current operation. GetCartsItems is the full-cart read |
| Duplicate pricebook entry IDs in one add-to-cart call | Collapsed into a single cart line item | Each items array entry creates a distinct line item, even when itemId is the same |
Date fields in fieldsToUpdate | Locale-based Date.parse() (for example, dd/mm/yyyy for day-first locales) | ISO only (yyyy-MM-dd). Org and user locale are ignored |
| Currency and pricing field types | Integer values are often accepted | Double is required (for example, 0 must be 0.0) |
| AssetToOrder invocation | OmniFDOWrapper uses the Classic flow | REST /v2/carts uses the Standard flow |
| AssetToOrder CPQ settings | UsingPromotions, DeltaPrice, and IsCachingEnabledForAssetToOrder apply | Functionality exists, but those settings do not control Standard AssetToOrder |
| PCP rule execution | Runs twice on add-to-cart: before validation and pricing, then in the post-execute hook after pricing | Runs once, before validation and pricing. See PCP Execution Order |
Because not all APIs have migrated to the Standard Cart framework, custom implementations must accommodate both Classic and Standard Cart flows and switch dynamically based on context. See Use CpqCartDocument.