Stores to eCommerce Order Object Conversion

To help with migration to the eCommerce Orders API, refer to the table below for field changes between the Stores order object and the eCommerce order object.

Note that some fields are accessible via other eCommerce APIs like Order Transactions or Order Fulfillments. In these cases, the way to access the info is described in the third column.

The address object used in the eCommerce APIs is slightly different to the one used in the Stores APIs. For more details, refer to the address object conversion table.

The eCommerce Order Updated event fires when a Stores order and/or an eCommerce order is updated. For more details on webhooks, refer to the Webhook Conversion Table below.

Fields marked with an asterisk (*) signify little to no change in semantics or access.

Order Object Conversion Table

Stores Order ObjecteCommerce Order ObjectNotes
id*id
number*number
dateCreatedcreatedDate
buyerInfo.idbuyerInfo.contactId & buyerInfo.memberId
buyerInfo.id and buyerInfo.identityType: "MEMBER"buyerInfo.memberId
buyerInfo.id and buyerInfo.identityType: "CONTACT"buyerInfo.contactId
buyerInfo.firstNamebillingInfo.contactDetails.firstName
buyerInfo.lastNamebillingInfo.contactDetails.lastName
buyerInfo.phonebillingInfo.contactDetails.phone
buyerInfo.email*buyerInfo.email
currency*currency
weightUnit*weightUnit
totals.subtotalpriceSummary.subtotal.amount
totals.shippingpriceSummary.shipping.amount
totals.taxpriceSummary.tax.amount
totals.discountpriceSummary.discount.amount
totals.totalpriceSummary.total.amount
totals.weightAn order's total weight is equal to (lineItems[0].physicalProperties.weight X lineItems[0].quantity) + (lineItems[1].physicalProperties.weight X lineItems[1].quantity) and so on.
totals.quantityAn order's total line item quantity is equal to lineItems[0].quantity + lineItems[1].quantity + lineItems[2].quantity and so on.
totals.refundbalanceSummary.refunded.amount
totals.giftCardorderTransactions.payments[i].amount when orderTransactions.payments[i].giftcardPaymentDetails has value. Available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.paymentMethodorderTransactions.payments[i].regularPaymentDetails.paymentMethod, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.paymentProviderTransactionIdorderTransactions.payments[i].regularPaymentDetails.providerTransactionId, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.paymentGatewayTransactionIdorderTransactions.payments[i].regularPaymentDetails.gatewayTransactionId, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.paidDateorderTransactions.payments[i].createdDate, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.refundableByPaymentProvider = trueorderTransactions.payments[i].refundDisabled = false, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.
billingInfo.address*billingInfo.addressAddress object conversion table.
shippingInfo.code*shippingInfo.code
shippingInfo.deliverByDateshippingInfo.logistics.deliverByDate
shippingInfo.deliveryOptionshippingInfo.title
shippingInfo.shippingRegionshippingInfo.region.name
shippingInfo.shippingDetails.addressshippingInfo.logistics.shippingDestination.addressAddress object conversion table.
shippingInfo.shipmentDetails.discountshippingInfo.cost.discount.amount
shippingInfo.shipmentDetails.taxshippingInfo.cost.taxDetails.totalTax.amount
shippingInfo.shipmentDetails.priceData.taxIncludedInPricetaxIncludedInPrices
shippingInfo.shipmentDetails.priceData.priceshippingInfo.cost.totalPriceAfterTax.amount
shippingInfo.pickupDetails.pickupAddressshippingInfo.logistics.pickupDetails.addressAddress object conversion table.
shippingInfo.pickupDetails.pickupInstructionsshippingInfo.logistics.instructions
shippingInfo.estimatedDeliveryTimeshippingInfo.logistics.deliveryTime
buyerNote*buyerNote
archived*archived
paymentStatus*paymentStatus
paymentStatus: PENDINGstatus: INITIALIZED
fulfillmentStatus*fulfillmentStatusFor more info, pass an order ID to the List Fulfillments For Single Order endpoint.
fulfillmentStatus: CANCELEDstatus: CANCELED
lineItems[i].indexlineItems[i].idWhile the lineItems[i].index in Stores Orders was an int32 type, the eCommerce Order's lineItems[i].id field is of type GUID.
lineItems[i].quantity*lineItems[i].quantity
lineItems[i].namelineItems[i].productName.original
lineItems[i].translatedNamelineItems[i].productName.translated
lineItems[i].productIdlineItems[i].catalogReference.catalogItemIdThe catalogReference object links between eCommerce APIs and catalogs like Wix Stores. Learn more about eCommerce integration for Wix Stores.
lineItems[i].lineItemType: "PHYSICAL"lineItems[i].itemType.preset: "PHYSICAL"
lineItems[i].lineItemType: "DIGITAL"lineItems[i].itemType.preset: "DIGITAL"
lineItems[i].lineItemType: "CUSTOM_AMOUNT_ITEM"lineItems[i].itemType.custom and lineItems[i].catalogReference is empty.
lineItems[i].optionslineItems[i].descriptionLines
lineItems[i].customTextFieldslineItems[i].catalogReference.optionsWithin the catalogReference.options look for the customTextFields key.
lineItems[i].weightlineItems[i].physicalProperties.weight
lineItems[i].mediaItem.urllineItems[i].image.url
lineItems[i].mediaItem.heightlineItems[i].image.height
lineItems[i].mediaItem.widthlineItems[i].image.width
lineItems[i].mediaItem.idlineItems[i].image.id
lineItems[i].mediaItem.altTextlineItems[i].image.altText
lineItems[i].skulineItems[i].physicalProperties.sku
lineItems[i].noteslineItems[i].descriptionLines[i].plainText.original
lineItems[i].variantIdlineItems[i].catalogReference.optionsThe catalogReference object links between eCommerce APIs and catalogs like Wix Stores. Learn more about eCommerce integration for Wix Stores.
lineItems[i].fulfillerId*lineItems[i].fulfillerId
lineItems[i].discountlineItems[i].totalDiscount.amount
lineItems[i].taxlineItems[i].taxDetails.totalTax.amount
lineItems[i].priceData.taxIncludedInPricetaxIncludedInPrices
lineItems[i].priceData.pricelineItems[i].price.amount
lineItems[i].priceData.totalPricelineItems[i].totalPriceAfterTax.amount
activities[i].type*activities[i].type
activities[i].TRACKING_LINK_WAS_SETactivities[i].TRACKING_LINK_SET
activities[i].INVOICE_WAS_SETactivities[i].INVOICE_ADDED
activities[i].INVOICE_WAS_SENTactivities[i].INVOICE_SENT
activities[i].authoractivities[i].authorEmail
activities[i].messageactivities[i].merchantComment.messageIf activities.type = "MERCHANT_COMMENT"
activities[i].timestampactivities[i].createdDate
invoiceInfoNot available in eCommerce order object.Currently, this information is held in the Stores order object.
fulfillmentsNot available in eCommerce order object.For more info, pass an order ID to the List Fulfillments For Single Order endpoint.
discount.appliedCoupon.couponIdappliedDiscounts[i].coupon.idSearch the appliedDiscounts array for the coupon field; couponId is coupon.id
discount.appliedCoupon.nameappliedDiscounts[i].coupon.nameSearch the appliedDiscounts array for the coupon field; name is coupon.name
discount.appliedCoupon.codeappliedDiscounts[i].coupon.codeSearch the appliedDiscounts array for the coupon field; code is coupon.code
customField.valuecustomFields[i].value.stringValueNote: customFields is an array
customField.titlecustomFields[i].title
customField.translatedTitlecustomFields[i].translatedTitle
cartIdNot returned in the eCommerce order object.Replaced by checkoutId
buyerLanguage*buyerLanguage
channelInfo.type*channelInfo.type
channelInfo.externalOrderId*channelInfo.externalOrderId
channelInfo.externalOrderUrl*channelInfo.externalOrderUrl
enteredBy.id and enteredBy.identityType: "MEMBER"createdBy.memberId
enteredBy.id and enteredBy.identityType: "USER"createdBy.userId
enteredBy.id and enteredBy.identityType: "APP"createdBy.appId
enteredBy.id and enteredBy.identityType: "CONTACT"createdBy.visitorIdPreviously, for a buyer that is not logged in, CONTACT type and ID were returned. in the eCommerce API, visitorId is returned. Note: the ID itself will also be different.
lastUpdatedupdatedDate
numericId-Removed due to added cursor paging functionality
refundsorderTransactions.refunds, available via Order Transactions.Pass the order ID to the List Transactions For Single Order endpoint to retrieve this info.

*Fields marked with an asterisk signify little to no change in semantics or access.

Webhook Conversion Table

The following table shows Stores Orders webhooks and their equivalents in the eCommerce Orders API that are triggered at the same time:

Stores Orders APIeCommerce Orders API
Order Paid WebhookPayment Status Updated Webhook sent with order.paymentStatus = PAID
Order Created WebhookOrder Approved Webhook
Order Canceled WebhookOrder Canceled Webhook
Order Refunded WebhookOrder Transactions Updated Webhook

We've also updated the structure of the webhook/event payload. The event's order ID is now provided both at the top level as entityId and as order.id within the payload itself. The table below describes where to find the order ID or order entity in the new webhook payloads:

Stores WebhookseCommerce Webhooks
Order ID - order.id / orderIdAll order webhook payloads - entityId
Order Created - the payload itself is the orderOrder Approved - actionEvent.body.order
Order Paid/Canceled/Refunded - orderOrder Canceled/Approved - actionEvent.body.order
-Order Updated - updatedEvent.currentEntity
Did this help?