Product template
Product details, media, selectable variants and add-to-cart controls.
Output: page body inside the storefront layout.
Shared structures available in recorded contexts: shop, branding, theme, urls, page, navigation, breadcrumbs, languageSwitcher, currencySwitcher, headerActionContributions, labels, security, footer, cartPreview, accountHeader.
| Field | Type | Meaning | Availability |
|---|---|---|---|
viewModel.product |
object | Product data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.accessories |
object | Accessories data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.accessories.items |
array | Prepared items collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.accessories.items[].badges |
array | Prepared badges collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].badges[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].badges[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].badges[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].hasImage |
boolean | Whether image applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].manufacturerId |
number | manufacturer identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].manufacturerName |
string | Manufacturer name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].name |
string | Name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].productId |
number | product identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].shortDescription |
string | Short description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].sku |
string | Sku value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].tagline |
string | Tagline value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview |
object | Variant preview data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups |
array | Prepared groups collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items |
array | Prepared items collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].items[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].remainingCount |
number | Remaining count numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.groups[].variantGroupId |
number | variant group identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.hasVariants |
boolean | Whether variants applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items |
array | Prepared items collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.items[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.accessories.items[].variantPreview.remainingCount |
number | Remaining count numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.addToCart |
object | Add to cart data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.addToCart.isEnabled |
boolean | Whether enabled applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.addToCart.minimumOrderQuantity |
number | Minimum order quantity numeric value. | When the parent is provided; check optional fields. |
viewModel.product.addToCart.productId |
number | product identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.addToCart.productVariantId |
number | product variant identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.addToCart.url |
string | Prepared url URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.availability |
object | Availability data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.availability.alwaysAvailable |
boolean | Whether always available applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.availability.backorderAllowed |
boolean | Whether backorder allowed applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.availability.displayAsQuantity |
boolean | Whether display as quantity applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.availability.displayQuantity |
string | Display quantity value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.availability.isAvailable |
boolean | Whether available applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.availability.isVisible |
boolean | Whether visible applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.availability.label |
string | Label value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.availability.maxOrderQuantity |
number | Max order quantity numeric value. | When the parent is provided; check optional fields. |
viewModel.product.availability.quantityOnHand |
number | Quantity on hand numeric value. | When the parent is provided; check optional fields. |
viewModel.product.availability.status |
string | Status value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.badges |
array | Prepared badges collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.badges[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.badges[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.badges[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.canonicalUrl |
string | Prepared canonical URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.configurationContributions |
array | Prepared configuration contributions collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.deliveryTimeName |
string | Delivery time name value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.display |
object | Display data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.availability |
object | Availability data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.backorderAllowed |
boolean | Whether backorder allowed applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.displayQuantity |
string | Display quantity value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.isVisible |
boolean | Whether visible applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.label |
string | Label value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.maxOrderQuantity |
number | Max order quantity numeric value. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.quantityOnHand |
number | Quantity on hand numeric value. | When the parent is provided; check optional fields. |
viewModel.product.display.availability.status |
string | Status value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.display.customFields |
object | Custom fields data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.customFields.groups |
array | Prepared groups collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.display.customFields.groups[].description |
string | Description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows |
array | Prepared rows collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].description |
string | Description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].hasValue |
boolean | Whether value applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].media |
object | Media data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.customFields.groups[].rows[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.details |
object | Details data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.details.rows |
array | Prepared rows collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.display.details.rows[].hasValue |
boolean | Whether value applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.details.rows[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.details.rows[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.details.rows[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.fulfillment |
object | Fulfillment data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.fulfillment.isPickupOnly |
boolean | Whether pickup only applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.display.fulfillment.notice |
string | Notice value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.display.gallery |
object | Gallery data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.gallery.ariaLabel |
string | Prepared aria display text. | When the parent is provided; check optional fields. |
viewModel.product.display.gallery.filters |
array | Prepared filters collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.display.gallery.filters[].count |
number | Count numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.gallery.filters[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.gallery.filters[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.labels |
object | Labels data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.accessories |
string | Translated accessories text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.addToCart |
string | Translated add to cart text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.addToWishlist |
string | Translated add to wishlist text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.availability |
string | Translated availability text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.availabilityUnknown |
string | Translated availability unknown text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.backorder |
string | Translated backorder text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.chooseVariant |
string | Translated choose variant text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.close |
string | Translated close text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.decreaseQuantity |
string | Translated decrease quantity text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.details |
string | Translated details text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.downloadFile |
string | Translated download file text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.ean |
string | Translated ean text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.height |
string | Translated height text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.increaseQuantity |
string | Translated increase quantity text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.inStock |
string | Translated in stock text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.length |
string | Translated length text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.lowStock |
string | Translated low stock text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.manufacturer |
string | Translated manufacturer text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.manufacturerNumber |
string | Translated manufacturer number text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.mediaDocuments |
string | Translated media documents text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.mediaImages |
string | Translated media images text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.mediaVideos |
string | Translated media videos text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.minimumOrderQuantity |
string | Translated minimum order quantity text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.nextImage |
string | Translated next image text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.no |
string | Translated no text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.outOfStock |
string | Translated out of stock text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.packagingUnit |
string | Translated packaging unit text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.pickupOnlyNotice |
string | Translated pickup only notice text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.previousImage |
string | Translated previous image text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.priceTierMinQuantity |
string | Translated price tier min quantity text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.priceTierPrice |
string | Translated price tier price text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.priceTiers |
string | Translated price tiers text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.productDescription |
string | Translated product description text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.quantity |
string | Translated quantity text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.quantityAvailable |
string | Translated quantity available text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.reviews |
string | Translated reviews text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.salesUnit |
string | Translated sales unit text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.secureCheckout |
string | Translated secure checkout text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.serviceShippingNote |
string | Translated service shipping note text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.shippingReadyIn |
string | Translated shipping ready in text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.shippingService |
string | Translated shipping service text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.similarProducts |
string | Translated similar products text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.sku |
string | Translated sku text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.specifications |
string | Translated specifications text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.subtotal |
string | Translated subtotal text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.supportAvailable |
string | Translated support available text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.taxExcluded |
string | Translated tax excluded text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.taxIncluded |
string | Translated tax included text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.weight |
string | Translated weight text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.width |
string | Translated width text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.yes |
string | Translated yes text. | When the parent is provided; check optional fields. |
viewModel.product.display.labels.zoomImage |
string | Translated zoom image text. | When the parent is provided; check optional fields. |
viewModel.product.display.servicePoints |
array | Prepared service points collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.display.specifications |
object | Specifications data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.display.specifications.groups |
array | Prepared groups collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.display.specifications.groups[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.specifications.groups[].rows |
array | Prepared rows collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.specifications.groups[].rows[].hasValue |
boolean | Whether value applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.specifications.groups[].rows[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.specifications.groups[].rows[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.display.specifications.groups[].rows[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery |
object | Gallery data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.gallery.counts |
object | Counts data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.gallery.counts.documents |
number | Documents numeric value. | When the parent is provided; check optional fields. |
viewModel.product.gallery.counts.images |
number | Images numeric value. | When the parent is provided; check optional fields. |
viewModel.product.gallery.counts.videos |
number | Videos numeric value. | When the parent is provided; check optional fields. |
viewModel.product.gallery.defaultImage |
object | Default image data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.gallery.defaultImage.alt |
string | Alt value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.category |
string | Category value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.downloadUrl |
string | Prepared download URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.extension |
string | Extension value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.filename |
string | Filename value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.fileSizeLabel |
string | Prepared file size display text. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.hasUrl |
boolean | Prepared has URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.height |
number | Height numeric value. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.iconLabel |
string | Prepared icon display text. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.kind |
string | Kind value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.mediaAssetId |
number | media asset identifier; do not load data with it. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.mediaType |
string | Media type value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.mimeType |
string | Mime type value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.thumbUrl |
string | Prepared thumb URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.title |
string | Title value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.url |
string | Prepared url URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultImage.width |
number | Width numeric value. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia |
object | Default media data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.gallery.defaultMedia.alt |
string | Alt value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.category |
string | Category value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.downloadUrl |
string | Prepared download URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.extension |
string | Extension value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.filename |
string | Filename value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.fileSizeLabel |
string | Prepared file size display text. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.hasUrl |
boolean | Prepared has URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.height |
number | Height numeric value. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.iconLabel |
string | Prepared icon display text. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.kind |
string | Kind value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.mediaAssetId |
number | media asset identifier; do not load data with it. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.mediaType |
string | Media type value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.mimeType |
string | Mime type value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.thumbUrl |
string | Prepared thumb URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.title |
string | Title value supplied for this context. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.url |
string | Prepared url URL; use unchanged. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.defaultMedia.width |
number | Width numeric value. | Only when the corresponding media object is non-empty; an unavailable or inactive asset produces an empty object. |
viewModel.product.gallery.hasImages |
boolean | Whether images applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.gallery.hasMedia |
boolean | Whether media applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.gallery.items |
array | Prepared items collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.gallery.items[].externalMediaReferenceId |
number | external media reference identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].hasProductScope |
boolean | Whether product scope applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.alt |
string | Alt value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.category |
string | Category value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.downloadUrl |
string | Prepared download URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.extension |
string | Extension value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.filename |
string | Filename value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.fileSizeLabel |
string | Prepared file size display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.hasUrl |
boolean | Prepared has URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.height |
number | Height numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.iconLabel |
string | Prepared icon display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.kind |
string | Kind value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.mediaAssetId |
number | media asset identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.mediaType |
string | Media type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.mimeType |
string | Mime type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.thumbUrl |
string | Prepared thumb URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.title |
string | Title value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].image.width |
number | Width numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media |
object | Media data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.alt |
string | Alt value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.category |
string | Category value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.downloadUrl |
string | Prepared download URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.extension |
string | Extension value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.filename |
string | Filename value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.fileSizeLabel |
string | Prepared file size display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.hasUrl |
boolean | Prepared has URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.height |
number | Height numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.iconLabel |
string | Prepared icon display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.kind |
string | Kind value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.mediaAssetId |
number | media asset identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.mediaType |
string | Media type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.mimeType |
string | Mime type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.thumbUrl |
string | Prepared thumb URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.title |
string | Title value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].media.width |
number | Width numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].mediaAssetId |
number | media asset identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].mediaType |
string | Media type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].variantId |
number | variant identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.gallery.items[].variantIds |
number[] | Prepared variant identifiers/value identifiers used to select gallery media. | For existing gallery items; arrays may be empty. |
viewModel.product.gallery.items[].variantValueIds |
number[] | Prepared variant identifiers/value identifiers used to select gallery media. | For existing gallery items; arrays may be empty. |
viewModel.product.gallery.variantImages |
object | Variant images data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.gallery.variantImages.[id] |
object | [id] data; check child fields before use. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].alt |
string | Alt value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].category |
string | Category value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].downloadUrl |
string | Prepared download URL; use unchanged. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].extension |
string | Extension value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].filename |
string | Filename value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].fileSizeLabel |
string | Prepared file size display text. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].hasUrl |
boolean | Prepared has URL; use unchanged. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].height |
number | Height numeric value. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].iconLabel |
string | Prepared icon display text. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].kind |
string | Kind value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].mediaAssetId |
number | media asset identifier; do not load data with it. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].mediaType |
string | Media type value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].mimeType |
string | Mime type value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].thumbUrl |
string | Prepared thumb URL; use unchanged. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].title |
string | Title value supplied for this context. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].url |
string | Prepared url URL; use unchanged. | When an entry exists for the identifier. |
viewModel.product.gallery.variantImages.[id].width |
number | Width numeric value. | When an entry exists for the identifier. |
viewModel.product.price |
object | Price data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.price.amount |
number | Amount numeric value. | When the parent is provided; check optional fields. |
viewModel.product.price.amountType |
string | Amount type value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.price.basePriceLabel |
string | Prepared base price display text. | When the parent is provided; check optional fields. |
viewModel.product.price.comparePriceLabel |
string | Prepared compare price display text. | When the parent is provided; check optional fields. |
viewModel.product.price.currencyId |
number | currency identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.price.currencyIsoCode |
string | Currency iso code value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.price.hasPrice |
boolean | Whether price applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.price.hasPriceTiers |
boolean | Whether price tiers applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.price.isDiscounted |
boolean | Whether discounted applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.price.moneyFormat |
object | Money format data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.price.moneyFormat.currencyToken |
string | Currency token value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.price.moneyFormat.decimalPlaces |
number | Decimal places numeric value. | When the parent is provided; check optional fields. |
viewModel.product.price.moneyFormat.localeCode |
string | Locale code value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.price.priceLabel |
string | Prepared price display text. | When the parent is provided; check optional fields. |
viewModel.product.price.priceTiers |
array | Prepared price tiers collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.price.priceTiers[].amount |
number | Amount numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].amountType |
string | Amount type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].currencyId |
number | currency identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].currencyIsoCode |
string | Currency iso code value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].hasComparePrice |
boolean | Whether compare price applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].minQuantity |
number | Min quantity numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.priceTiers[].priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.price.subtotalLabel |
string | Prepared subtotal display text. | When the parent is provided; check optional fields. |
viewModel.product.priceNotice |
string | Price notice value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product |
object | Product data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.product.customFields |
array | Prepared custom fields collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.product.deliveryTimeName |
string | Delivery time name value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.description |
string | Description value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.ean |
string | Ean value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.fulfillmentMode |
string | Fulfillment mode value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.heightMm |
string | Height mm value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image |
object | Image data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.product.image.alt |
string | Alt value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.category |
string | Category value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.downloadUrl |
string | Prepared download URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.image.extension |
string | Extension value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.filename |
string | Filename value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.fileSizeLabel |
string | Prepared file size display text. | When the parent is provided; check optional fields. |
viewModel.product.product.image.hasUrl |
boolean | Prepared has URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.image.height |
number | Height numeric value. | When the parent is provided; check optional fields. |
viewModel.product.product.image.iconLabel |
string | Prepared icon display text. | When the parent is provided; check optional fields. |
viewModel.product.product.image.kind |
string | Kind value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.mediaAssetId |
number | media asset identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.product.image.mediaType |
string | Media type value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.mimeType |
string | Mime type value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.image.thumbUrl |
string | Prepared thumb URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.image.title |
string | Title value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.image.url |
string | Prepared url URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.image.width |
number | Width numeric value. | When the parent is provided; check optional fields. |
viewModel.product.product.isPickupOnly |
boolean | Whether pickup only applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.product.lengthMm |
string | Length mm value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.manufacturerId |
number | manufacturer identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.product.manufacturerName |
string | Manufacturer name value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.manufacturerNumber |
string | Manufacturer number value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.measurementUnitId |
number | measurement unit identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.product.measurementUnitSymbol |
string | Measurement unit symbol value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.minimumOrderQuantity |
number | Minimum order quantity numeric value. | When the parent is provided; check optional fields. |
viewModel.product.product.name |
string | Name value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.packagingUnit |
string | Packaging unit value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.primaryImageMediaAssetId |
number | primary image media asset identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.product.productId |
number | product identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.product.salesUnit |
string | Sales unit value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.shortDescription |
string | Short description value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.shortName |
string | Short name value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.sku |
string | Sku value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.url |
string | Prepared url URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.product.weightKg |
string | Weight kg value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.product.widthMm |
string | Width mm value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.productPrice |
object | Product price data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.amount |
number | Amount numeric value. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.amountType |
string | Amount type value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.basePriceLabel |
string | Prepared base price display text. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.comparePriceLabel |
string | Prepared compare price display text. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.currencyId |
number | currency identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.currencyIsoCode |
string | Currency iso code value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.hasPrice |
boolean | Whether price applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.hasPriceTiers |
boolean | Whether price tiers applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.isDiscounted |
boolean | Whether discounted applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.moneyFormat |
object | Money format data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.moneyFormat.currencyToken |
string | Currency token value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.moneyFormat.decimalPlaces |
number | Decimal places numeric value. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.moneyFormat.localeCode |
string | Locale code value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.priceLabel |
string | Prepared price display text. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.priceTiers |
array | Prepared price tiers collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.productPrice.priceTiers[].amount |
number | Amount numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].amountType |
string | Amount type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].currencyId |
number | currency identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].currencyIsoCode |
string | Currency iso code value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].hasComparePrice |
boolean | Whether compare price applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].minQuantity |
number | Min quantity numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.priceTiers[].priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.productPrice.subtotalLabel |
string | Prepared subtotal display text. | When the parent is provided; check optional fields. |
viewModel.product.returnLink |
object | Return link data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.returnLink.hasUrl |
boolean | Prepared has URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.returnLink.label |
string | Label value supplied for this context. | When the parent is provided; check optional fields. |
viewModel.product.returnLink.url |
string | Prepared url URL; use unchanged. | When the parent is provided; check optional fields. |
viewModel.product.similar |
object | Similar data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.similar.items |
array | Prepared items collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.similar.items[].badges |
array | Prepared badges collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].badges[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].badges[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].badges[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].hasImage |
boolean | Whether image applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].manufacturerId |
number | manufacturer identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].manufacturerName |
string | Manufacturer name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].name |
string | Name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].productId |
number | product identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].shortDescription |
string | Short description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].sku |
string | Sku value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].tagline |
string | Tagline value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview |
object | Variant preview data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups |
array | Prepared groups collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items |
array | Prepared items collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].items[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].remainingCount |
number | Remaining count numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.groups[].variantGroupId |
number | variant group identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.hasVariants |
boolean | Whether variants applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items |
array | Prepared items collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.items[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.similar.items[].variantPreview.remainingCount |
number | Remaining count numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection |
object | Variant selection data; check child fields before use. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.defaultVariantId |
number | default variant identifier; do not load data with it. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.groups |
array | Prepared groups collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.groups[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values |
array | Prepared values collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values[].color |
string | Color value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values[].isSelected |
boolean | Whether selected applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values[].type |
string | Type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].values[].variantGroupValueId |
number | variant group value identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.groups[].variantGroupId |
number | variant group identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.hasVariants |
boolean | Whether variants applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.requiresSelection |
boolean | Whether requires selection applies; use for display only. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.variants |
array | Prepared variants collection; may be empty. | When the parent is provided; check optional fields. |
viewModel.product.variantSelection.variants[].availability |
object | Availability data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.alwaysAvailable |
boolean | Whether always available applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.backorderAllowed |
boolean | Whether backorder allowed applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.displayAsQuantity |
boolean | Whether display as quantity applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.displayQuantity |
string | Display quantity value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.isAvailable |
boolean | Whether available applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.isVisible |
boolean | Whether visible applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.maxOrderQuantity |
number | Max order quantity numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.quantityOnHand |
number | Quantity on hand numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].availability.status |
string | Status value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].customFieldGroups |
array | Prepared custom field groups collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].customFields |
array | Prepared custom fields collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].deliveryTimeName |
string | Delivery time name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].description |
string | Description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].details |
array | Prepared details collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].details[].hasValue |
boolean | Whether value applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].details[].key |
string | Key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].details[].label |
string | Label value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].details[].value |
string | Value value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].ean |
string | Ean value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image |
object | Image data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.alt |
string | Alt value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.category |
string | Category value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.downloadUrl |
string | Prepared download URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.extension |
string | Extension value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.filename |
string | Filename value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.fileSizeLabel |
string | Prepared file size display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.hasUrl |
boolean | Prepared has URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.height |
number | Height numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.iconLabel |
string | Prepared icon display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.kind |
string | Kind value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.mediaAssetId |
number | media asset identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.mediaType |
string | Media type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.mimeType |
string | Mime type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.thumbImageUrl |
string | Prepared thumb image URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.thumbUrl |
string | Prepared thumb URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.title |
string | Title value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.url |
string | Prepared url URL; use unchanged. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].image.width |
number | Width numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].isBuyable |
boolean | Whether buyable applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].isDefault |
boolean | Whether default applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].manufacturerNumber |
string | Manufacturer number value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].minimumOrderQuantity |
number | Minimum order quantity numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].name |
string | Name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].optionKey |
string | Option key value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].optionValueIds |
array | Prepared option value ids collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price |
object | Price data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.amount |
number | Amount numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.amountType |
string | Amount type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.basePriceLabel |
string | Prepared base price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.currencyId |
number | currency identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.currencyIsoCode |
string | Currency iso code value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.hasPrice |
boolean | Whether price applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.hasPriceTiers |
boolean | Whether price tiers applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.moneyFormat |
object | Money format data; check child fields before use. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.moneyFormat.currencyToken |
string | Currency token value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.moneyFormat.decimalPlaces |
number | Decimal places numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.moneyFormat.localeCode |
string | Locale code value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers |
array | Prepared price tiers collection; may be empty. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].amount |
number | Amount numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].amountType |
string | Amount type value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].comparePriceLabel |
string | Prepared compare price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].currencyId |
number | currency identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].currencyIsoCode |
string | Currency iso code value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].hasComparePrice |
boolean | Whether compare price applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].isDiscounted |
boolean | Whether discounted applies; use for display only. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].minQuantity |
number | Min quantity numeric value. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.priceTiers[].priceLabel |
string | Prepared price display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].price.subtotalLabel |
string | Prepared subtotal display text. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].productName |
string | Product name value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].productVariantId |
number | product variant identifier; do not load data with it. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].shortDescription |
string | Short description value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variants[].sku |
string | Sku value supplied for this context. | For each existing item; optional child fields depend on item type. |
viewModel.product.variantSelection.variantsJson |
string | Prepared JSON text; do not rebuild from domain objects. | 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. |
Included templates
Section titled “Included templates”Assets
Section titled “Assets”The reference package uses its bundled theme CSS, Bootstrap and theme JavaScript. Account and checkout controls use the bundled checkout script. Additional page scripts: /theme/reference/product-detail-js. Partials use their caller’s resolved assets.
Example
Section titled “Example”<cfset viewModel = routeConfig.viewModel><cfoutput><h1>#encodeForHtml(viewModel.page.title)#</h1></cfoutput>Use the page-specific structures above for the remaining content.
Behaviour
Section titled “Behaviour”Use prepared URLs and labels. Encode plain text and HTML attributes; preserve only explicitly prepared HTML.