Cart V2: Migration Mapping

This article provides a comprehensive field-by-field mapping between Cart V1, Checkout V1, and Cart V2, covering entities, API methods, line items, and events. Use it alongside the Migration Guide when migrating your app or integration.

API method mapping

Cart V1 to Cart V2

Cart V1 methodCart V2 methodNotes
Create CartCreate CartRequest field: cartInfocart, lineItemscatalogItems. Coupon and gift card are now separate inputs.
Get CartGet CartRequest field: idcartId.
Update CartUpdate CartRequest field: cartInfocart.
Add To CartAdd Line ItemsRequest field: idcartId, lineItemscatalogItems.
Remove Line ItemsRemove Line ItemsRequest field: idcartId.
Update Line Items QuantityUpdate Line ItemsRequest field: idcartId. Response shape differs. V2 uses LineItemUpdate with QuantityUpdate.
Remove CouponRemove CouponRequest field: idcartId. V2 also requires couponId.
Estimate TotalsEstimate CartRequest field: idcartId. Response: totals are in summary (CartSummary).
Delete CartDelete CartRequest field: idcartId.
Create Checkout From CartNoneNo V2 equivalent. In V1, this created a Checkout entity from a cart. In V2 there is no checkout step: prepare the cart with UpdateCart and SetDeliveryMethod, then call PlaceOrder directly.
NoneRefresh CartNew in V2. Re-evaluates prices, inventory, and discounts.
NoneCalculate CartNew in V2. Full calculation returning CartSummary.
NoneAdd CouponNew in V2. Dedicated method (was inline in create/update).
NoneAdd Gift CardNew in V2. Dedicated method.
NoneRemove Gift CardNew in V2.
NoneSet Delivery MethodNew in V2. Dedicated method.
NoneRemove Delivery MethodNew in V2.

Checkout V1 to Cart V2

Cart V2 unifies the cart and checkout models into a single Cart entity, so there is no separate Checkout V2 API. Each Checkout V1 method is replaced by a cart method that performs the same operation. For example, Create Checkout is replaced by Create Cart, because in V2 the cart itself carries the checkout information, such as billing, delivery, and payment details, all the way through placing the order. The checkout ID from Checkout V1 is the cart ID in V2, so you can pass IDs from existing checkouts directly to the V2 cart methods.

Checkout V1 methodCart V2 methodNotes
Create CheckoutCreate CartcheckoutInfocart, lineItemscatalogItems, channelTypecart.source.channelType, couponCodecoupons[0].code, giftCardCodegiftCards[0].code.
Get CheckoutGet CartThe checkout ID is the cart ID in V2. For calculated totals, call CalculateCart separately.
Get Checkout (with refresh)Refresh CartUse RefreshCart to re-evaluate prices, inventory, and discounts.
Update CheckoutUpdate Cartcheckoutcart. See the entity field mapping below for the changed field paths.
Add To CheckoutAdd Line ItemsidcartId, lineItemscatalogItems.
Remove Line ItemsRemove Line ItemsidcartId.
Update Line Items QuantityUpdate Line ItemsidcartId.
Remove CouponRemove CouponidcartId.
Remove Gift CardRemove Gift CardidcartId.
Create OrderPlace OrderidcartId.
Mark Checkout As CompletedMark Cart As CompletedidcartId.
Get Checkout URLGet Checkout URLidcartId.
Delete CheckoutDelete CartidcartId.

Cart entity field mapping

Cart V1 to Cart V2

Cart V1 fieldCart V2 fieldNotes
idid
createdDatecreatedDate
updatedDateupdatedDate
revisionrevision
lineItemslineItemsStructure differs. See the line item mapping below.
buyerNotenote
buyerInfo.id (visitor/member/user)customerInfo.id (visitorId/memberId/userId)Same oneof pattern.
buyerInfo.emailcustomerInfo.email
buyerInfo.contactIdcustomerInfo.contactId
contactInfo.contactDetails.firstNamecustomerInfo.firstNameFlattened from nested AddressWithContact.
contactInfo.contactDetails.lastNamecustomerInfo.lastNameFlattened.
contactInfo.contactDetails.phonecustomerInfo.phoneFlattened.
contactInfo.contactDetails.companycustomerInfo.companyFlattened.
contactInfo.contactDetails.vatIdcustomerInfo.vatIdFlattened.
contactInfo.addressdeliveryInfo.addressMoved to delivery info. Also mapped to paymentInfo.billingAddress (see the note below).
currencybusinessInfo.currencyCodeMoved into a sub-message.
conversionCurrencycustomerInfo.currencyCodeMoved into a sub-message.
paymentCurrencypaymentInfo.currencyCodeMoved into a sub-message.
buyerLanguagecustomerInfo.languageCodeMoved into a sub-message.
siteLanguagebusinessInfo.languageCodeMoved into a sub-message.
businessLocationIdbusinessInfo.locationIdMoved into a sub-message.
taxIncludedInPricestaxInfo.pricesIncludeTaxMoved into a sub-message.
weightUnitdeliveryInfo.weightUnitMoved into a sub-message.
checkoutIdNoneNo separate checkout. The cart ID is the checkout ID.
appliedDiscountscoupons (for coupon discounts)Coupons are stored on the cart entity. Automatic discounts are on lineItems[].discounts. The full discount breakdown is in CartSummary.discounts.
selectedShippingOptiondeliveryInfo.methodType changed. Use SetDeliveryMethod to set.
overrideCheckoutUrlcustomCheckoutUrlRenamed.
purchaseFlowIdpurchaseFlowId
extendedFieldsextendedFields

Note: In Cart V1, contactInfo.address is a single address used for both delivery and billing. In Cart V2, the address is mapped to deliveryInfo.address for shippable carts and paymentInfo.billingAddress for non-shippable carts.

Checkout V1 to Cart V2

Checkout V1 fieldCart V2 fieldNotes
ididThe checkout ID is the cart ID in V2.
createdDatecreatedDate
updatedDateupdatedDate
lineItemslineItemsSee the line item mapping below.
buyerNotenote
buyerInfo.idcustomerInfo.id
buyerInfo.emailcustomerInfo.email
billingInfo.addresspaymentInfo.billingAddress
billingInfo.contactDetailspaymentInfo.billingContact
shippingInfo.shippingDestination.addressdeliveryInfo.address
shippingInfo.shippingDestination.contactDetails.firstNamecustomerInfo.firstNameFlattened.
shippingInfo.shippingDestination.contactDetails.lastNamecustomerInfo.lastNameFlattened.
shippingInfo.shippingDestination.contactDetails.phonecustomerInfo.phoneFlattened.
shippingInfo.shippingDestination.contactDetails.companycustomerInfo.companyFlattened.
shippingInfo.shippingDestination.contactDetails.vatIdcustomerInfo.vatIdFlattened.
shippingInfo.selectedCarrierServiceOptiondeliveryInfo.methodUse SetDeliveryMethod.
channelTypesource.channelTypeMoved into a sub-message.
currencybusinessInfo.currencyCodeMoved into a sub-message.
conversionCurrencycustomerInfo.currencyCodeMoved into a sub-message.
paymentCurrencypaymentInfo.currencyCodeMoved into a sub-message.
buyerLanguagecustomerInfo.languageCodeMoved into a sub-message.
siteLanguagebusinessInfo.languageCodeMoved into a sub-message.
businessLocationIdbusinessInfo.locationIdMoved into a sub-message.
taxIncludedInPricetaxInfo.pricesIncludeTaxMoved into a sub-message.
taxExemptGroupIdtaxInfo.taxExemptGroupIdMoved into a sub-message.
weightUnitdeliveryInfo.weightUnitMoved into a sub-message.
completedorderPlacedRenamed.
orderIdorderId
purchaseFlowIdpurchaseFlowId
customSettingssettingsRenamed. disabledPolicyAgreementCheckboxpolicyAgreementCheckboxDisabled, disabledManualPaymentmanualPaymentDisabled.
customFieldsNoneNo public V2 equivalent.
externalReferencesource.externalReferencesMoved to cart source. Singular in V1, repeated in V2.
customContentReferencesource.customContentReferenceMoved to cart source.
extendedFieldsextendedFields
priceSummaryNoneNot stored on the cart. Call CalculateCartsummary.priceSummary.
taxSummaryNoneNot stored. Call CalculateCartsummary.taxSummary.
payNowNoneNot stored. Call CalculateCartsummary.paymentSummary.
payLaterNoneNot stored. Call CalculateCartsummary.paymentSummary.
giftCardpaymentInfo.giftCardsUse AddGiftCard / RemoveGiftCard.
appliedDiscountsNoneNot stored. Call CalculateCartsummary.discounts. Item-level discounts are on lineItems[].discounts.
additionalFeesNoneNot stored. Call CalculateCartsummary.additionalFees.
calculationErrorsNoneNot stored. Call CalculateCartsummary.violations. V2 reports calculation errors as violations.
violationsNoneNot stored. Call CalculateCartsummary.violations.
membershipOptions.selectedMembershipslineItems[].paymentConfig.selectedMembershipMoved to the line item level. Deprecated in V2. Memberships charged with the order are in CalculateCartsummary.paymentSummary.memberships.
cartIdNoneNo separate entity. The cart is the checkout.
createdBysource.createdByMoved to cart source.

Line item field mapping

Cart V1 LineItem to Cart V2 LineItem

Cart V1 / Checkout V1 fieldCart V2 fieldNotes
idid
productNamenameType changed: ProductNameTranslatableString.
quantityquantityInfo.confirmedQuantityMoved into a sub-message.
NonequantityInfo.requestedQuantityNew in V2.
NonequantityInfo.availableQuantityNew in V2.
fixedQuantityquantityInfo.fixedQuantityMoved into a sub-message.
catalogReferencesource.catalogReferenceMoved into a sub-message.
catalogOverrideFieldssource.catalogOverrideFieldsMoved into a sub-message.
rootCatalogItemIdsource.rootCatalogItemIdMoved into a sub-message.
inventoryAppIdsource.inventoryAppIdMoved into a sub-message.
price (unit price after discounts)pricing.unitPriceMoved into a sub-message. Type changed: MultiCurrencyPriceConvertedMoney.
fullPricepricing.breakdown.fullPriceMoved into a sub-message.
priceBeforeDiscountspricing.breakdown.salePriceRenamed and moved.
lineItemPricepricing.totalPriceMoved into a sub-message.
priceDescriptionpricing.priceDescriptionMoved into a sub-message.
priceUndeterminedpricing.priceUndeterminedMoved into a sub-message.
modifiersTotalPricepricing.breakdown.totalModifiersPriceMoved into a sub-message.
descriptionLinesattributes.descriptionLinesMoved into a sub-message.
imageattributes.imageMoved into a sub-message.
urlattributes.urlMoved into a sub-message.
policiesattributes.policiesMoved into a sub-message.
itemTypeattributes.itemTypeMoved into a sub-message.
physicalPropertiesattributes.physicalPropertiesMoved into a sub-message.
subscriptionOptionInfoattributes.subscriptionInfoRenamed and moved.
servicePropertiesattributes.servicePropertiesMoved into a sub-message.
membersOnlyattributes.membersOnlyMoved into a sub-message.
deliveryProfileIddeliveryConfig.deliveryProfileIdMoved into a sub-message.
NonedeliveryConfig.fulfillerIdNew in V2.
taxGroupIdtaxConfig.taxGroupIdMoved into a sub-message.
taxableAddresstaxConfig.taxableAddressMoved into a sub-message.
paymentOptionpaymentConfig.paymentOptionMoved into a sub-message.
savePaymentMethodpaymentConfig.savePaymentMethodMoved into a sub-message.
consentRequiredPaymentPolicypaymentConfig.consentRequiredPaymentPolicyMoved into a sub-message.
depositAmountpaymentConfig.depositAmountMoved into a sub-message.
selectedMembershippaymentConfig.selectedMembershipMoved into a sub-message. Deprecated in V2.
availability.statusstatusPromoted to a top-level enum. Values: AVAILABLEIN_STOCK, PARTIALLY_AVAILABLEPARTIALLY_IN_STOCK, NOT_AVAILABLEOUT_OF_STOCK, NOT_FOUNDREMOVED_FROM_CATALOG.
availability.quantityAvailablequantityInfo.availableQuantityMoved.
customLineItemcustomLineItem
modifierGroupsmodifierGroups
extendedFieldsextendedFields
shippingGroupIdNoneNo V2 equivalent.

Event mapping

Cart V1 eventCheckout V1 eventCart V2 event
CartUpdatedNoneCartUpdated
NoneCheckoutCreatedCartCreated
NoneCheckoutUpdatedCartUpdated
NoneCheckoutDeletedCartDeleted
NoneCheckoutMarkedAsCompletedCartUpdated (with orderPlaced = true)
NoneNoneCartCalculated

The CartCalculated event is new in V2. It's emitted after Calculate Cart and Estimate Cart, and its payload is a CartSummary.

See also

Last updated: 5 August 2026

Did this help?