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.

APIs that remain on the Classic path 

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.

OperationRemote methodClassic usage example
Validate CartrunCartValidationValidate Cart Action
Clone Line ItemscloneItemsClone Line Items in Cart
Cancel Order / Submit CancelcancelCart / submitCancelOrderCancel Order, Submit a Cancel Order Request
Get Product Details / Get Products by IDgetCartsProductDetails / getCartsProductsByIdGet Details of Product, Get Products by ID
Get Catalog InformationgetCatalogsGet Catalog Information
Get Price Lists for CartgetCartsPriceListsGet Price Lists for Cart
Update Item AttributesputCartsItemsAttributesUpdate Item Attributes
Get / Add PromotionsgetCartsPromotions / postCartsPromotionsGet Cart Promotions, Add Promotion to Cart
Get Price WaterfallgetCartsItemPricesGet Price Waterfall for Price
Delete AdjustmentdeleteAdjustmentDelete Adjustment
Get All AssetsgetAllAssetsGet 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.

Feature and API behavior differences 

AreaClassic Cart APIsStandard Cart APIs
Transformation of multi-play offersSupportedChange of Plans is compatible, but replaceOffers does not support complex multi-play transformations
ProductSelector interfaceSupportedNot supported. Use the sortBy parameter on getCartsProducts
Field Settings / CPQV2 field settingsSupported for cart responsesSupported for getCarts and GetCartsItems only. For other Standard Cart APIs, pass custom fields in the fields parameter
noResponseNeededSupportedSupported for Add, Update, and Delete Standard Cart APIs from 258. Multi-item add defaults to noResponseNeeded=true unless you pass false
maintainAssetPriceSupportedSupported from 258
includeAttachmentSupportedIgnored on addToCart
Custom Expression mode in RuleSetsSupportedNot supported
Context mappings with Initialization Type Type In and Scope SObjectSupportedNot supported
nameResult node (attributeCategories, productAttributes)PresentNot present. Data nodes are returned directly
actions nodePopulates both remote and restPopulates only the protocol you invoked
Cart document / line items in custom codeFull line-item sObject listCpqCartDocument contains only items affected by the current operation. GetCartsItems is the full-cart read
Currency and pricing field typesInteger values are often acceptedDouble is required (for example, 0 must be 0.0)
AssetToOrder invocationOmniFDOWrapper uses the Classic flowREST /v2/carts uses the Standard flow
AssetToOrder CPQ settingsUsingPromotions, DeltaPrice, and IsCachingEnabledForAssetToOrder applyFunctionality exists, but those settings do not control Standard AssetToOrder

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.

Note