Skip to content

Account order detail template

Order summary, lines, addresses, payment and fulfillment state.

Output: page body inside the storefront layout.

Shared structures available in recorded contexts: shop, branding, theme, urls, page, navigation, languageSwitcher, currencySwitcher, headerActionContributions, labels, security, footer, cartPreview, accountHeader.

viewModel.account.labels uses the account-label structure.

Field Type Meaning Availability
viewModel.account object Account data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.company object Company data; check child fields before use. Use child fields only when account.hasCompany is true. Otherwise the company object can be empty.
viewModel.account.customer object Customer data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.customer.addresscustomfields array Prepared addresscustomfields collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.customer.addresses array Prepared addresses collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.customer.addresses[].addressLine2 string Address line2 value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].addressType string Address type value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].city string City value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].company string Company value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].countryId number country identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].countryIsoCode string Country iso code value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].createdAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.addresses[].customerAddressId number customer address identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].customerId number customer identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].customerShopId number customer shop identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].customFields array Prepared custom fields collection; may be empty. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].email string Email value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].firstName string First name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].isActive boolean Whether active applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].isDefaultBilling boolean Whether default billing applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].isDefaultShipping boolean Whether default shipping applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].lastName string Last name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].mobile string Mobile value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].phone string Phone value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].postcode string Postcode value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].salutation string Salutation value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].salutationId number salutation identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].state string State value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].street string Street value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].streetNumber string Street number value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].title string Title value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].titleId number title identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.addresses[].updatedAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.assignedShopCount number Assigned shop count numeric value. When the parent is provided; check optional fields.
viewModel.account.customer.assignments array Prepared assignments collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.customer.assignments[].addressCount number Address count numeric value. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].cartCount number Cart count numeric value. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].companyMembershipCount number Company membership count numeric value. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].currencyId number currency identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].customerGroupId number customer group identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].customerId number customer identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].customerShopId number customer shop identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].hasDependentData boolean Whether dependent data applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].isPrimary number Is primary numeric value. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].key string Key value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].languageId number language identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].name string Name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].orderCount number Order count numeric value. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].shopId number shop identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.customer.assignments[].status string Status value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.customer.companies array Prepared companies collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.customer.createdAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.currencyId number currency identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.customerGroupAmountType string Customer group amount type value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.customerGroupId number customer group identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.customerGroupName string Customer group name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.customerGroupPriceListId number customer group price list identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.customerGroupPriceListName string Customer group price list name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.customerId number customer identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.customerNumber string Customer number value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.customerShopId number customer shop identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.customFields array Prepared custom fields collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.customer.displayName string Display name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.email string Email value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.firstName string First name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.isActive boolean Whether active applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.customer.isGuest boolean Whether guest applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.customer.languageId number language identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.lastLoginAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.lastName string Last name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.letterSalutation string Letter salutation value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.passwordHash string Password hash value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.salutation string Salutation value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.salutationId number salutation identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.shopId number shop identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.shopLinkedAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.shopUpdatedAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.customer.status string Status value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.title string Title value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.customer.titleId number title identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.customer.updatedAt date or empty string Database timestamp when available. This is not a localized display label. Within an existing customer/company object; empty when no timestamp is available.
viewModel.account.errors array Prepared errors collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.formOptions object Form options data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.formOptions.countries array Prepared countries collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.formOptions.countries[].countryId number country identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.countries[].isoCode string Iso code value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.countries[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.countries[].name string Name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.salutations array Prepared salutations collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.formOptions.salutations[].key string Key value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.salutations[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.salutations[].salutationId number salutation identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.titles array Prepared titles collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.formOptions.titles[].key string Key value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.titles[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.formOptions.titles[].titleId number title identifier; do not load data with it. For each existing item; optional child fields depend on item type.
viewModel.account.hasCompany boolean Whether company applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.hasErrors boolean Whether errors applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.labels object Labels data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.logoutLabel string Prepared logout display text. When the parent is provided; check optional fields.
viewModel.account.logoutUrl string Prepared logout URL; use unchanged. When the parent is provided; check optional fields.
viewModel.account.navigation array Prepared navigation collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.navigation[].isActive boolean Whether active applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.navigation[].key string Key value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.navigation[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.navigation[].url string Prepared url URL; use unchanged. For each existing item; optional child fields depend on item type.
viewModel.account.notice object Notice data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail object Order detail data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail.billingAddress object Billing address data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail.billingAddress.customFieldGroups array Prepared custom field groups collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.billingAddress.isEmpty boolean Whether empty applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.orderDetail.billingAddress.lines array Prepared lines collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.customerNote string Customer note value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.customerReference string Customer reference value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.customFields array Prepared custom fields collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.documents array Prepared documents collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.fulfillmentStatus string Fulfillment status value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.fulfillmentStatusLabel string Prepared fulfillment status display text. When the parent is provided; check optional fields.
viewModel.account.orderDetail.fulfillmentStatusTone string Fulfillment status tone value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.hasdocuments boolean Whether hasdocuments applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable object Item table data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns object Columns data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns.lineTotal string Line total value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns.name string Name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns.quantity string Quantity value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns.tax string Tax value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.columns.unitPrice string Unit price value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.emptyMessage string Empty message value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.items array Prepared items collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.items[].configurationDisplayGroups array Prepared configuration display groups collection; may be empty. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].description string Description value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].displayName string Display name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].displayVariantName string Display variant name value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].hasPersonalizationSurcharge boolean Whether personalization surcharge applies; use for display only. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].lineTotalDisplay string Line total display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].personalizationSurchargeAmount number personalization surcharge amount; use the corresponding prepared label for display. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].personalizationSurchargeDisplay string Personalization surcharge display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].positionDisplay string Position display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].productUrl string Prepared product URL; use unchanged. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].quantityDisplay string Quantity display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].sku string Sku value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].taxDisplay string Tax display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].unitPriceBaseDisplay string Unit price base display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.items[].unitPriceDisplay string Unit price display value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.showSummaryFooter boolean Whether summary footer applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.summaryRows array Prepared summary rows collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.itemTable.summaryRows[].kind string Kind value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.summaryRows[].label string Label value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.itemTable.summaryRows[].value string Value value supplied for this context. For each existing item; optional child fields depend on item type.
viewModel.account.orderDetail.listUrl string Prepared list URL; use unchanged. When the parent is provided; check optional fields.
viewModel.account.orderDetail.orderId number order identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.account.orderDetail.orderNumber string Order number value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.orderStatus string Order status value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.orderStatusLabel string Prepared order status display text. When the parent is provided; check optional fields.
viewModel.account.orderDetail.orderStatusTone string Order status tone value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.paymentMethodName string Payment method name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.paymentStatus string Payment status value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.paymentStatusLabel string Prepared payment status display text. When the parent is provided; check optional fields.
viewModel.account.orderDetail.paymentStatusTone string Payment status tone value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.placedAtDisplay string Placed at display value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.reorderUrl string Prepared reorder URL; use unchanged. When the parent is provided; check optional fields.
viewModel.account.orderDetail.shippingAddress object Shipping address data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.orderDetail.shippingAddress.customFieldGroups array Prepared custom field groups collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.shippingAddress.isEmpty boolean Whether empty applies; use for display only. When the parent is provided; check optional fields.
viewModel.account.orderDetail.shippingAddress.lines array Prepared lines collection; may be empty. When the parent is provided; check optional fields.
viewModel.account.orderDetail.shippingMethodName string Shipping method name value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.orderDetail.totalDisplay string Total display value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls object Urls data; check child fields before use. When the parent is provided; check optional fields.
viewModel.account.urls.addresses string Addresses value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.addressNew string Address new value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.addressSave string Address save value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.company string Company value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.companyAddresses string Company addresses value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.companyAddressNew string Company address new value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.companyAddressSave string Company address save value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.dashboard string Dashboard value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.orders string Orders value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.passwordReset string Password reset value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.profile string Profile value supplied for this context. When the parent is provided; check optional fields.
viewModel.account.urls.wishlist string Wishlist value supplied for this context. When the parent is provided; check optional fields.
viewModel.search object Search data; check child fields before use. When the parent is provided; check optional fields.
viewModel.search.isEnabled boolean Whether enabled applies; use for display only. When the parent is provided; check optional fields.
viewModel.wishlist object Wishlist data; check child fields before use. When the parent is provided; check optional fields.
viewModel.wishlist.isEmpty boolean Whether empty applies; use for display only. When the parent is provided; check optional fields.
viewModel.wishlist.itemCount number Item count numeric value. When the parent is provided; check optional fields.
viewModel.wishlist.items array Prepared items collection; may be empty. When the parent is provided; check optional fields.
viewModel.wishlist.productIdMap object Product id map data; check child fields before use. When the parent is provided; check optional fields.
viewModel.wishlist.productIds array Prepared product ids collection; may be empty. When the parent is provided; check optional fields.
viewModel.wishlist.wishlistId number wishlist identifier; do not load data with it. When the parent is provided; check optional fields.
viewModel.wishlist.wishlistKey string Wishlist key value supplied for this context. When the parent is provided; check optional fields.

The reference package uses its bundled theme CSS, Bootstrap and theme JavaScript. Account and checkout controls use the bundled checkout script. Partials use their caller’s resolved assets.

<cfset viewModel = routeConfig.viewModel>
<cfoutput><h1>#encodeForHtml(viewModel.page.title)#</h1></cfoutput>

Use the page-specific structures above for the remaining content.

Use prepared form actions, field names and CSRF inputs from the reference implementation. Access checks, validation and commerce decisions remain outside the theme.