> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Schemas

Stencil theme object schemas describe the data available to Handlebars templates on BigCommerce storefronts. The context any template can render is the **union of two sets**:

1. **Global objects** — available on every page, regardless of route.
2. **Page-specific objects** — extra objects passed to a particular `templates/pages/*.html` file.

If an object is not listed in either set below, it is not in context on that page.

> **Inspect context at runtime**
>
> When running [`stencil start`](/developer/docs/storefront/stencil/cli/development-server) locally, append [`?debug=context`](/developer/docs/storefront/stencil/cli/development-server#debugging-your-theme) to any storefront URL to dump the full context object as JSON. Use `?debug=bar` to see the rendered page and the JSON side-by-side. This is the fastest way to confirm what's actually in scope for any given route — including whether `{{customer}}` is present.

## Global objects

Available on every Handlebars template. No frontmatter declaration required.

| Object                                              | Description                                                           |
| :-------------------------------------------------- | :-------------------------------------------------------------------- |
| [`{{banners}}`](#banners)                           | Marketing banners at the top and bottom of the page                   |
| [`{{blog}}`](#blog)                                 | Recent blog posts (global form: `recent_posts`, `name`, `url`)        |
| [`{{breadcrumbs}}`](#breadcrumbs)                   | Breadcrumb trail for the current page                                 |
| [`{{cart_id}}`](#cart_id)                           | Current session cart ID                                               |
| [`{{categories}}`](#categories)                     | All storefront categories                                             |
| [`{{currency_selector}}`](#currency_selector)       | Supported currencies and the currently active currency                |
| [`{{customer_group_id}}`](#customer_group_id-1)     | ID of the current customer's group                                    |
| [`{{customer_group_name}}`](#customer_group_name-1) | Name of the current customer's group                                  |
| [`{{faceted_search}}`](#faceted_search)             | Available and selected search facets for category and brand filtering |
| [`{{footer}}`](#footer)                             | Footer scripts and sitemap URL                                        |
| [`{{head}}`](#head)                                 | HTML `<head>` data (title, scripts, stylesheets, favicon)             |
| [`{{is_ajax}}`](#is_ajax)                           | `true` if the current request is an AJAX request                      |
| [`{{language_selector}}`](#language_selector)       | Configured languages and the currently active language                |
| [`{{pages}}`](#pages)                               | Storefront content pages                                              |
| [`{{page_type}}`](#page_type)                       | String identifier for the current page type                           |
| [`{{remote_api_scripts}}`](#remote_api_scripts)     | Remote API scripts                                                    |
| [`{{settings}}`](#settings)                         | Store-wide settings (currency, date formats, feature flags)           |
| [`{{shop_by_brand}}`](#shop_by_brand)               | Top 10 brands by product count                                        |
| [`{{social_media}}`](#social_media)                 | Social media links configured for the storefront                      |
| [`{{template_file}}`](#template_file)               | Path to the current template file                                     |
| [`{{theme_settings}}`](#theme_settings)             | Theme configuration values from the active theme's `config.json`      |
| [`{{urls}}`](#urls)                                 | URLs for all storefront pages                                         |

## Page-specific context

In addition to the globals above, each `templates/pages/*.html` file in the table below receives the listed page-specific objects.

> **Pages not listed here**
>
> Routes that are not in the table — for example `templates/pages/auth/login.html`, `templates/pages/errors.html`, `templates/pages/account/orders.html` — have no documented page-specific context beyond the globals above. Some account-related templates also receive `{{customer}}`; see the callout under the table for the documented surface, and use `?debug=context` to confirm for any specific route.

| Route                                           | Page-specific objects                                                                                                                                                                                             |
| :---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `templates/pages/home.html`                     | [`{{carousel}}`](#carousel), [`{{products}}`](#products), [`{{shipping_messages}}`](#shipping_messages-1)                                                                                                         |
| `templates/pages/product.html`                  | [`{{product}}`](#product)                                                                                                                                                                                         |
| `templates/pages/category.html`                 | [`{{category}}`](#category), [`{{pagination}}`](#pagination)                                                                                                                                                      |
| `templates/pages/brand.html`                    | [`{{brand}}`](#brand)                                                                                                                                                                                             |
| `templates/pages/brands.html`                   | [`{{brands}}`](#brands), [`{{pagination}}`](#pagination)                                                                                                                                                          |
| `templates/pages/cart.html`                     | [`{{cart}}`](#cart)                                                                                                                                                                                               |
| `templates/pages/checkout.html`                 | *Renders the Optimized Checkout app; no Handlebars context.*                                                                                                                                                      |
| `templates/pages/order-confirmation.html`       | [`{{checkout}}`](#checkout)                                                                                                                                                                                       |
| `templates/pages/compare.html`                  | [`{{comparisons}}`](#comparisons)                                                                                                                                                                                 |
| `templates/pages/search.html`                   | [`{{product_results}}`](#product_results), [`{{brand_results}}`](#brand_results), [`{{category_results}}`](#category_results), [`{{content_results}}`](#content_results), [`{{faceted_search}}`](#faceted_search) |
| `templates/pages/blog.html`                     | [`{{blog}}`](#blog), [`{{pagination}}`](#pagination)                                                                                                                                                              |
| `templates/pages/blog-post.html`                | [`{{blog}}`](#blog)                                                                                                                                                                                               |
| `templates/pages/page.html`                     | [`{{page}}`](#page)                                                                                                                                                                                               |
| `templates/pages/page-contact-form.html`        | [`{{page}}`](#page), [`{{forms.contact}}`](#forms_contact)                                                                                                                                                        |
| `templates/pages/sitemap.html`                  | [`{{sitemap}}`](#sitemap)                                                                                                                                                                                         |
| `templates/pages/account/download-item.html`    | [`{{downloads}}`](#downloads), [`{{customer}}`](#customer)                                                                                                                                                        |
| `templates/pages/account/orders/details.html`   | [`{{order}}`](#order), [`{{shipments}}`](#shipments), [`{{customer}}`](#customer)                                                                                                                                 |
| `templates/pages/account/payment-methods.html`  | [`{{countries}}`](#countries), [`{{vault}}`](#vault), [`{{customer}}`](#customer)                                                                                                                                 |
| `templates/pages/account/wishlist-details.html` | [`{{wishlist}}`](#wishlist), [`{{customer}}`](#customer)                                                                                                                                                          |
| `templates/pages/auth/create-account.html`      | [`{{forms.create_account}}`](#create_account)                                                                                                                                                                     |

> **\`\{\{customer}}\` on account-related templates**
>
> [`{{customer}}`](#customer) is documented as available to templates and components with customer context, including contact-form pages and partials under `account/` (for example `account/address-list.html`, `account/messages-form.html`, `account/wishlist-list.html`) and `common/subscription-form.html`. Coverage for other `templates/pages/account/*` routes is not formally documented — use `?debug=context` (above) to confirm `{{customer}}` is present on the specific route you're working on, and access nested data via `{{customer.orders}}`, `{{customer.addresses}}`, etc.

## banners

Elements of marketing banners at the page's top and bottom.

**Scope:** global

**Handlebars expressions:**

* `{{banners}}`
* `{{{banners}}}`

**Handlebars formatting exception:** where a banner contains HTML, the banner helper must be placed in triple braces (`{{{banners}}}`). Double braces would escape the HTML.

> **Limits**
>
> `{{banners}}` returns only the first 50 banners on each page.

**Properties:**

**`bottom`** `array`

Array of HTML content/strings, for custom bottom-banner content; banners are populated from the BigCommerce control panel

---

**`top`** `array`

Array of HTML content/strings, for custom top-banner content; banners are populated from the BigCommerce control panel

---

## blog

Blog-specific properties for the blog feature within BigCommerce storefronts. Called on the default `templates/components/blog/post.html` partial.

**Scope:** global and template

**Handlebars expression:** `{{blog}}`

### Template blog object

Available to blog and blog-post templates and components.

**Properties:**

**`description`** `string`

Blog description.

---

**`name`** `string`

Blog name.

---

**`posts`** `object (external ref)`

---

**`tag`** `null`

The blog's tag.

---

**`url`** `string`

URL to the blog page.

---

### Global blog object

Available on every page.

**Properties:**

**`name`** `string`

Blog name.

---

**`recent_posts`** `object (external ref)`

---

**`url`** `string`

URL to the blog page.

---

## brand

The brand object for the page calling the object.

**Available on:** `templates/pages/brand.html`

**Handlebars expression:** `{{brand}}`

**Properties:**

**`config`** `array`

---

**`faceted_search_enabled`** `boolean`

Boolean that defines whether product-filtering search is enabled for the store.

---

**`facets`** `array`

A list of all possible search filters for this brand.

---

**`image`** `object (external ref)`

---

**`meta`** `array`

---

**`name`** `string`

Name of the brand

---

**`products`** `array`

An array of product card models.

---

**`search_error`** `boolean`

---

**`selected`** `object`

An array of selected facets.

---

#### selected properties

**`items`** `array`

---

**`remove_all_url`** `string`

---

**`show_compare`** `boolean`

Boolean corresponding to merchant’s control panel selection whether or not to enable product comparisons.

---

**`state`** `array`

---

**`url`** `string`

URL of the brand page. Only letters, numbers, dots (.), dashes (-), underscores (\_), and forward slashes (/) are allowed. Must be 1-1024 characters, consisting of segments divided by "/". Each segment must be 1-256 characters.

---

## brand\_results

Search result items for brand matches.

**Available on:** `templates/pages/search.html`

**Handlebars expression:** `{{brand_results}}`

**Properties:**

**`url`** `string`

---

**`name`** `string`

---

## brands

All brands available on the storefront.

**Available on:** `templates/pages/brands.html`

**Handlebars expression:** `{{brands}}`

## breadcrumbs

Breadcrumb trail for the current page. Available on virtually all pages that have a breadcrumb trail.

**Scope:** global

**Handlebars expression:** `{{breadcrumbs}}`

**Properties:**

**`name`** `string`

Display label for the breadcrumb, such as `Home` or `Your Orders`.

---

**`url`** `string`

Link target for the breadcrumb. On the order details (`account_order`) and order status (`account_orderstatus`) pages, every item in the trail is an absolute URL that includes the storefront scheme and domain. Beginning September 26, 2026, wishlist details and public wishlist share pages also return absolute URLs. Other pages, including the remaining account tabs such as Addresses, return a storefront-relative path. Render the value as-is; do not prepend a domain or base path in your theme.

---

**`{{breadcrumbs}} on the order details page`**

```json title="{{breadcrumbs}} on the order details page" showLineNumbers={false}
[
  { "url": "https://www.example.com/", "name": "Home" },
  { "url": "https://www.example.com/account.php", "name": "Your Account" },
  { "url": "https://www.example.com/account.php?action=order_status", "name": "Your Orders" },
  { "url": "https://www.example.com/account.php?action=view_order&order_id=1000000", "name": "Order #1000000" }
]
```

## carousel

A list of images, text, and style assets for a storefront's image slideshow.

**Available on:** `templates/pages/home.html`

**Handlebars expression:** `{{carousel}}`

**Properties:**

**`slides`** `array`

Object containing properties for each slide in the slideshow.

---

#### slides items

**`alt_text`** `string`

Alt text for the image.

---

**`button_text`** `string`

Text displayed on a call-to-action button defined by the merchant.

---

**`button_text_color`** `string`

Color of the button.

---

**`heading`** `string`

Heading message defined by the merchant.

---

**`heading_color`** `string`

Color of the heading text.

---

**`image`** `string`

Path to the image file used on this slide.

---

**`image_height`** `string`

---

**`image_width`** `string`

---

**`stencil_image`** `object`

---

#### stencil\_image properties

**`alt`** `string`

---

**`data`** `string`

---

**`height`** `integer`

---

**`width`** `integer`

---

**`text`** `string`

Subheading defined by the merchant.

---

**`text_color`** `string`

Color of the subheading text

---

**`url`** `string`

URL to which the image will link.

---

**`swap_frequency`** `integer`

Indicates how often (in seconds) the slides will change; the value must be between 1 and 90,000 seconds.

---

## cart

Cart-specific properties for the current session. Contains `cart_id` if one exists.

**Available on:** `templates/pages/cart.html`

**Handlebars expression:** `{{cart}}`

**Properties:**

**`additional_checkout_buttons`** `array`

Generates checkout buttons for third-party payments (PayPal, Google Checkout, etc.)

---

**`coupons`** `array`

List of coupons applied to the cart; default sorting is by coupon ID, from lowest to highest.

---

#### coupons items

**`id`** `number`

---

**`code`** `string`

---

**`displayName`** `string`

---

**`couponType`** `string`

---

**`discountedAmount`** `number`

---

**`discount`** `object`

Discount being applied to the cart in the current session.

---

#### discount properties

**`formatted`** `string`

---

**`value`** `integer`

---

**`gift_certificates`** `array`

List of gift certificates applied to the cart.

---

#### gift\_certificates items

**`id`** `string`

---

**`name`** `string`

---

**`theme`** `string`

---

**`amount`** `number`

---

**`taxable`** `boolean`

---

**`sender`** `array`

---

#### sender items

**`name`** `string`

---

**`email`** `string`

---

**`recipient`** `array`

---

#### recipient items

**`name`** `string`

---

**`email`** `string`

---

**`message`** `string`

---

**`gift_wrapping_cost`** `object`

Price object that defines the cost associated with adding gift wrapping to the items in the cart.

---

#### gift\_wrapping\_cost properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`grand_total`** `object`

Price object that defines the total cost of all the items in the cart. Incorporates estimated shipping, discounts, taxes, and gift wrapping.

---

#### grand\_total properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`items`** `array`

---

#### items items

**`availability`** `string`

---

**`base_price`** `object`

---

#### base\_price properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`brand`** `object`

---

#### brand properties

**`name`** `string`

---

**`can_modify`** `boolean`

---

**`category_names`** `array`

---

**`configurable_fields`** `array`

---

**`custom_fields`** `array`

---

#### custom\_fields items

**`id`** `integer`

---

**`name`** `string`

---

**`value`** `string`

---

**`id`** `string`

Unique ID of the coupon.

---

**`image`** `object`

---

#### image properties

**`alt`** `string`

Corresponding text to display for missing images, accessible screen readers, etc.

---

**`data`** `string`

Internal URL to the image.

---

**`max_purchase_quantity`** `integer`

---

**`min_purchase_quantity`** `integer`

---

**`name`** `string`

---

**`options`** `array`

---

#### options items

**`id`** `string`

---

**`name`** `string`

---

**`value`** `string`

---

**`is_file`** `boolean`

---

**`price`** `object`

---

#### price properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`price_discounted`** `object`

---

#### price\_discounted properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`product_id`** `integer`

---

**`quantity`** `integer`

Total number of items in the cart.

---

**`release_date`** `string`

---

**`remove_url`** `string`

URL to remove gift certificate from the cart.

---

**`rrp`** `object`

Price object that defines the cart item's list price (MSRP); can be used to display struck-out list prices.

---

#### rrp properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`sale_price`** `object`

---

#### sale\_price properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`show_gift_wrapping`** `boolean`

Boolean indicating whether the wrapping options are shown.

---

**`sku`** `string`

---

**`total`** `object`

---

#### total properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`total_discounted`** `object`

---

#### total\_discounted properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`type`** `string`

---

**`url`** `string`

---

**`variant_id`** `integer`

---

**`quantity`** `integer`

---

**`shipping_handling`** `object`

Current configuration of the shipping estimator for this session’s current cart; will be null/undefined if the cart contains no physical products.

---

#### shipping\_handling properties

**`countries`** `array`

Countries available to ship to.

---

#### countries items

**`currency`** `object`

---

#### currency properties

**`code`** `string`

---

**`name`** `string`

---

**`symbol`** `string`

---

**`id`** `integer`

---

**`iso2`** `string`

---

**`iso3`** `string`

---

**`name`** `string`

---

**`selected`** `boolean`

---

**`selected_city`** `string`

The city/town that the customer selected for the shipping estimate.

---

**`selected_country`** `string`

---

**`selected_state`** `string`

The state/province/region that the customer selected for the shipping estimate.

---

**`selected_zip`** `string`

The ZIP/postal code that the customer selected for the shipping estimate.

---

**`show_estimator`** `boolean`

Boolean indicating whether the merchant wants to show the shipping estimator to customers.

---

**`states`** `array`

List of states/provinces/regions for the country.

---

#### states items

**`id`** `string`

---

**`name`** `string`

---

**`show_multiple_address_shipping`** `boolean`

Boolean: If > 1 physical items are in the cart, and checkout button is displayed: whether to also display the "Ship to multiple addresses" / "Multiple Shipping Addresses" user option.

---

**`show_primary_checkout_button`** `boolean`

Boolean that determines whether to show a checkout button.

---

**`status_messages`** `array`

---

#### status\_messages items

**`message`** `string`

---

**`type`** `number`

---

**`sub_total`** `object`

Price object that defines the total cost of all the items in the cart. Might or might not include tax, based on the tax display settings the merchant has configured. Excludes shipping, discounts, and gift wrapping.

---

#### sub\_total properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`taxes`** `array`

List of all applicable taxes for the cart.

---

#### taxes items

**`cost`** `object`

Price object that defines the cost of the applied tax.

---

#### cost properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`included`** `boolean`

Boolean that indicates whether taxes are included in the total price for the cart’s contents.

---

**`name`** `string`

---

## cart\_id

Returns the cart ID if one exists. To return more cart information, use the [Storefront Cart API](/developer/api-reference/rest/storefront/carts).

**Scope:** global

**Handlebars expression:** `{{cart_id}}`

## categories

All categories shown in the current page context. Default sorting is by category ID, from lowest to highest.

**Scope:** global

**Handlebars expression:** `{{categories}}`

## category

The category object for the page calling the object. When retrieving a collection of categories, default sorting is by category ID, from lowest to highest.

**Available on:** `templates/pages/category.html`, plus several partials in `<theme-name>/templates/components/`: `category/shop-by-price.html` and `category/sidebar.html`.

**Handlebars expression:** `{{category}}`

**Properties:**

**`config`** `array`

---

**`description`** `string`

Merchant-defined description of the category.

---

**`detail_messages`** `array`

Message displayed when a product is out of stock, and inventory settings are configured to redirect to a category: "Sorry, the product you tried to view is currently out of stock, here are some similar products we have available." (This phrasing is set by the BigCommerce App.)

---

**`faceted_search_enabled`** `boolean`

Boolean that defines whether product-filtering search is enabled for the store.

---

**`facets`** `array`

Available search facets.

---

**`id`** `integer`

Unique ID for the category.

---

**`image`** `object (external ref)`

---

**`meta`** `array`

---

**`name`** `string`

Merchant-defined category name.

---

**`products`** `array`

---

**`selected`** `array`

Selected search facets.

---

**`shop_by_price`** `array`

Exposes price- and currency-related properties in both raw numeric, and formatted string, formats. It will return empty for stores with faceted search enabled who are not explicitly requesting this information in their front matter.

---

#### shop\_by\_price items

**`high`** `object`

Price object that defines the maximum price boundary.

---

#### high properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`low`** `object`

Price object that defines the minimum price boundary

---

#### low properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`selected`** `boolean`

Price object that defines the currently selected price range.

---

**`url`** `string`

URL of price-filtered product results for this category.

---

**`show_compare`** `integer`

Boolean that defines whether to show controls for product comparison

---

**`state`** `array`

---

**`subcategories`** `array`

List of any child categories.

---

#### subcategories items

**`description`** `string`

Merchant-defined description of the subcategory.

---

**`id`** `integer`

Unique ID for the subcategory.

---

**`image`** `null`

Image representing this subcategory, in Stencil image format.

---

**`name`** `string`

Name of the subcategory

---

**`product_count`** `integer`

Number of products in the subcategory. (Counts at the current level only – not recursive to deeper levels.)

---

**`url`** `string`

URL to the subcategory.

---

**`total_products`** `integer`

Count of the number of products in the category.

---

**`url`** `string`

---

## category\_results

Search result items for category matches.

**Available on:** `templates/pages/search.html`

**Handlebars expression:** `{{category_results}}`

**Properties:**

**`url`** `string`

---

**`name`** `string`

---

## checkout

Used to access checkout content and data on `templates/pages/order-confirmation.html`. Available to checkout and order-confirmation templates and components.

**Handlebars expression:** `{{checkout.*}}`

**Properties:**

**`order_confirmation_content`** `string`

Default content from checkout template.

---

**`checkout_head`** `string`

Default content from checkout `<head>`.

---

**`order`** `object`

`{{checkout.order}}` object available to order confirmation templates and components.

---

#### order properties

**`id`** `number`

The `id` of the order. To access `checkout.order.id` from `order-confirmation.html`, use Script Manager or the Stencil themeʼs page context to assign the value of `checkout.order.id` to a variable. For more information, see the example in [Using the Fetch API](/developer/docs/admin/checkout-and-cart/custom-checkouts/rest-management#using-the-fetch-api).

---

**`header_image`** `string`

The image `src` of the header.

---

**`id`** `string`

the cart and checkout `id`

---

## comparisons

Property to display an array of products on product comparison pages.

**Available on:** `<theme-name>/templates/pages/compare.html`

**Handlebars expression:** `{{comparisons}}`

## content\_results

Search result items for content (page) matches.

**Available on:** `templates/pages/search.html`

**Handlebars expression:** `{{content_results}}`

## countries

List of countries used in country and state dropdowns when submitting the add payment form.

**Available on:** `templates/pages/account/payment-methods.html`

**Handlebars expression:** `{{countries}}`

## create\_account

Object to enable the current customer to create a store account.

**Available on:** `<theme-name>/templates/pages/auth/create-account.html`

**Handlebars expression:** `{{forms.create_account}}`

**Properties:**

**`continue_url`** `string`

---

## currency\_selector

A list of all supported currencies, and the currency currently active in the storefront.

**Scope:** global

**Handlebars expression:** `{{currency_selector}}`

**Properties:**

**`active_currency_id`** `string`

ID of the currency actively in use in the storefront.

---

**`active_currency_flag`** `string`

Country flag used to represent the active currency.

---

**`active_currency_name`** `string`

Name of the active currency.

---

**`active_currency_code`** `string`

Code for the active currency.

---

**`currencies`** `array`

List of all the currencies supported for this storefront.

---

#### currencies items

**`is_active`** `boolean`

Boolean that indicates whether this currency is active for use in the storefront

---

**`switch_url`** `string`

The URL to invoke a switch to this currency.

---

**`id`** `string`

ID of the currency.

---

**`name`** `string`

Name of the currency.

---

**`flag`** `string`

Country flag used to visually represent the currency.

---

## customer

Customer information for the active session.

**Available on:** templates and components with customer context, including `page/contact-us-form.html`, `common/subscription-form.html`, `account/address-list.html`, `account/messages-form.html`, and `account/wishlist-list.html`.

**Handlebars expression:** `{{customer}}`

**Properties:**

**`addresses`** `object (external ref)`

---

**`customer_group_id`** `number`

ID of this customer's group.

---

**`customer_group_name`** `string`

Name of this customer's group.

---

**`edit_stored_instrument`** `string`

---

**`email`** `string`

Customer’s email address.

---

**`id`** `integer`

Customer's ID.

---

**`name`** `string`

Customer's name.

---

**`num_new_messages`** `integer`

Number of unread messages for this customer.

---

**`num_wishlists`** `string`

Number of wishlists for this customer.

---

**`orders`** `object (external ref)`

---

**`payment_methods`** `object (external ref)`

---

**`phone`** `string`

Customer's phone number.

---

**`recently_viewed_products`** `array`

---

**`returns`** `object (external ref)`

---

**`shipping_address`** `object`

Shipping address used for the order.

---

#### shipping\_address properties

**`address1`** `string`

Customer's shipping address, first line.

---

**`address2`** `string`

Customer's shipping address, second line.

---

**`city`** `string`

Customer's shipping city.

---

**`company`** `string`

Customer's shipping company name.

---

**`country`** `string`

Customer's shipping country.

---

**`country_id`** `string`

ID for customer's shipping country.

---

**`destination`** `string`

Type of delivery destination: residential or business/commercial.

---

**`first_name`** `string`

Customer's shipping (first) name.

---

**`form_session_id`** `string`

Used for custom shipping forms.

---

**`id`** `string`

Unique, system-generated ID.

---

**`last_name`** `string`

Customer's shipping (last) name.

---

**`last_used`** `string`

Timestamp when this address was last used as a shipping address.

---

**`phone`** `string`

Customer's shipping phone number.

---

**`state`** `string`

Customer's shipping state.

---

**`state_id`** `string`

ID for customer's shipping state/province/region.

---

**`zip`** `string`

Customer's shipping postal code.

---

**`shipping_addresses`** `object (external ref)`

---

**`store_credit`** `object`

Customer's store credit.

---

#### store\_credit properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`wishlists`** `object (external ref)`

---

## customer\_group\_id

ID of the current customer's group.

**Scope:** global

**Handlebars expression:** `{{customer_group_id}}`

## customer\_group\_name

Name of the current customer's group.

**Scope:** global

**Handlebars expression:** `{{customer_group_name}}`

## downloads

Property for digital (non-physical) products.

**Available on:** `<theme-name>/templates/pages/account/download-item.html`

**Handlebars expression:** `{{downloads}}`

## faceted\_search

Data for searching by category or brand.

**Scope:** global

**Handlebars expression:** `{{faceted_search}}`

**Properties:**

**`facets`** `string`

List of all search facets available.

---

**`selected`** `array`

Container for the selected search facets (selected facets contain properties below)

---

#### selected items

**`remove_all_url`** `string`

URL to remove all selected search restrictions.

---

**`items`** `string`

Currently enabled search facets

---

## footer

Footer content for each storefront page.

**Scope:** global

**Handlebars expression:** `{{footer}}`

**Properties:**

**`sitemap_url`** `string`

The URL to the sitemap, based on store’s SEO setting.

---

**`scripts`** `string`

Scripts to be loaded after the HTML has loaded; includes performance metrics.

---

## forms

Form-related context available on pages and components that include forms.

**Handlebars expression:** `{{forms.edit_account}}`

## forms\_contact

Contact form fields and configuration.

**Handlebars expression:** `{{forms.contact}}`

**Properties:**

**`captcha_url`** `string`

---

**`company`** `boolean`

---

**`name`** `boolean`

---

**`order`** `boolean`

---

**`page_id`** `string`

---

**`phone`** `boolean`

---

**`recaptcha`** `array`

---

#### recaptcha items

**`enabled`** `number`

---

**`markup`** `string`

---

**`public_key`** `string`

---

**`rma`** `boolean`

---

**`text`** `string`

---

## head

Data configured for the HTML `<head>` element.

**Scope:** global

**Handlebars expression:** `{{head}}`

**Properties:**

**`favicon`** `string`

The store's favicon.

---

**`meta_tags`** `string`

Meta tags to improve store SEO.

---

**`scripts`** `string`

Scripts to be loaded in the `<head>` tag.

---

**`stylesheets`** `string`

CSS files to be included.

---

**`title`** `string`

Current page's title.

---

## is\_ajax

Returns `true` if the current request is an AJAX request.

**Scope:** global

**Handlebars expression:** `{{is_ajax}}`

No properties available for this object.

## language\_selector

A list of all languages configured for the storefront, and the language currently active.

**Scope:** global

**Handlebars expression:** `{{language_selector}}`

**Properties:**

**`active_language_code`** `string`

Locale code for the language actively in use in the storefront (for example, `en`, `es`, `fr`).

---

**`default_language_code`** `string`

Locale code for the storefront's default language. The language selector doesn't use this value; use `active_language_code` and `is_active` to render the active language.

---

**`languages`** `array`

List of all languages configured for this storefront.

---

#### languages items

**`code`** `string`

Locale code for the language.

---

**`switch_url`** `string`

The URL to invoke a switch to this language.

---

**`is_active`** `boolean`

Boolean that indicates whether this language is active for use in the storefront.

---

**`is_default`** `boolean`

Boolean that indicates whether this language is the storefront's default. The language selector doesn't use this value; use `is_active` to render the active language.

---

## order

Order details, for templates and components with order context.

**Handlebars expression:** `{{order}}`

**Properties:**

**`billing_address`** `object`

Billing address used for the order.

---

#### billing\_address properties

**`address_lines`** `array`

Customer's billing address

---

**`city`** `string`

Customer's billing city

---

**`company`** `string`

Customer's billing company name

---

**`country`** `string`

Customer billing country

---

**`email`** `string`

Customer's billing email

---

**`full_name`** `string`

Customer's billing name

---

**`phone`** `string`

Customer billing phone number

---

**`state`** `string`

Customer's billing state

---

**`zip`** `string`

Customer billing ZIP

---

**`comments`** `string`

---

**`date`** `string`

Date of the order

---

**`has_multiple_shipping_addresses`** `boolean`

---

**`id`** `integer`

Unique, system-generated ID

---

**`invoice_url`** `string`

---

**`is_complete`** `boolean`

Boolean indicating that the order has been completed

---

**`is_digital`** `string`

---

**`items`** `array`

List of items for the order.

---

#### items items

**`gift_wrapping_name`** `string`

---

**`image`** `object (external ref)`

---

**`name`** `string`

Product Name

---

**`options`** `array`

---

#### options items

**`name`** `string`

---

**`value`** `string`

---

**`order_product_id`** `string`

Product ID

---

**`price`** `object`

---

#### price properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`quantity`** `integer`

Quantity Ordered

---

**`refunded`** `boolean`

Price object that defines the value of this product that has been refunded.

---

**`refunded_qty`** `integer`

---

**`reorder_message`** `string`

An error message to be displayed when the customer attempts to reorder items that can’t be reordered.

---

**`return_url`** `string`

---

**`shipping_rows`** `array`

Array of shipping addresses, for each item in the order

---

**`show_reorder`** `boolean`

Boolean indicating whether the customer should see a button for reordering items on the Account Order Details page.

---

**`sku`** `string`

---

**`total`** `object`

Price object that defines the order’s total value

---

#### total properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer`

---

**`type`** `string`

---

**`last_updated`** `string`

---

**`order_instructions`** `string`

---

**`payment_method`** `string`

Customer’s payment method for this order (payment gateway)

---

**`reorder_url`** `string`

URL to place reorders for items in this order.

---

**`return_url`** `string`

---

**`returns_enabled`** `integer`

Boolean that indicates whether merchant allows products from the order to be returned.

---

**`shipping_address`** `object`

Shipping address used for the order.

---

#### shipping\_address properties

**`address_lines`** `array`

Customer's shipping address

---

**`city`** `string`

Customer's shipping city

---

**`company`** `string`

Customer's shipping company name

---

**`country`** `string`

Customer's shipping country

---

**`email`** `string`

Customer's email

---

**`full_name`** `string`

Customer's shipping name

---

**`phone`** `string`

Customer's shipping phone number

---

**`state`** `string`

Customer's shipping state

---

**`zip`** `string`

Customer's shipping zip

---

**`shipping_address_count`** `string`

Number of shipping addresses the customer has specified for this order.

---

**`shipping_method`** `string`

---

**`status`** `string`

Order status code

---

**`status_messages`** `array`

Status message associated with the status code for the order

---

**`status_text`** `string`

Status text associated with the status code for the order.

---

**`total`** `object`

Price object that defines the order’s total value

---

#### total properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`total_rows`** `array`

A list of “total” rows containing total pricing information

---

#### total\_rows items

**`label`** `string`

The label of the total row (Subtotal, Tax, Grand Total, etc.).

---

**`value`** `object`

Value that customer selected for the option.

---

#### value properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `integer | number`

---

**`pickup_address`** `object`

---

#### pickup\_address properties

**`location`** `object`

---

#### location properties

**`name`** `string`

---

**`code`** `string`

---

**`address_line_1`** `string`

---

**`address_line_2`** `string`

---

**`city`** `string`

---

**`state`** `string`

---

**`postal_code`** `string`

---

**`country_alpha2`** `string`

---

**`email`** `string`

---

**`phone`** `string`

---

**`collection_time_description`** `string`

---

**`collection_instructions`** `string`

---

**`pickup_method_display_name`** `string`

---

**`pickup_method_id`** `number`

---

**`brand`** `string`

---

## page

Page details, present on content pages and forms.

**Handlebars expression:** `{{page}}`

**Properties:**

**`breadcrumbs`** `array`

Present if page has ancestors.

---

**`content`** `string`

HTML content of the page

---

**`id`** `integer`

---

**`sub_pages`** `array`

Array of child pages

---

#### sub\_pages items

**`title`** `string`

---

**`url`** `string`

---

**`title`** `string`

Title of this child page

---

## page\_type

A string representing the type of page currently displayed.

**Scope:** global

**Handlebars expression:** `{{page_type}}`

All possible values for `{{page_type}}` are:

* `account_orderstatus`
* `account_order`
* `account_addressbook`
* `shippingaddressform`
* `account_new_return`
* `add-wishlist`
* `account_recentitems`
* `account_downloaditem`
* `editaccount`
* `account_inbox`
* `account_saved_return`
* `account_returns`
* `account_paymentmethods`
* `account_addpaymentmethod`
* `account_editpaymentmethod`
* `login`
* `createaccount_thanks`
* `createaccount`
* `getnewpassword`
* `forgotpassword`
* `blog`
* `blog_post`
* `brand`
* `brands`
* `cart`
* `checkout`
* `category`  \*
* `compare`
* `page_contact_form`
* `error`
* `404`
* `giftcertificates`
* `giftcertificates_balance`
* `giftcertificates_redeem`
* `default`  \*
* `orderconfirmation`
* `page`  \*
* `product`  \*
* `amp_product_options`
* `search`
* `sitemap`
* `newsletter_subscribe`
* `wishlist`
* `wishlists`

The four most-commonly-used values for `{{page_type}}` are marked with asterisks.

## pages

Storefront content page data.

**Scope:** global

**Handlebars expression:** `{{pages}}`

**Properties:**

**`URL`** `string`

URL of the page.

---

**`children`** `array`

List of child pages for this page.

---

#### children items

**`URL`** `string`

URL of the child page.

---

**`name`** `string`

Name of the child page.

---

**`name`** `string`

Name of the page.

---

## pagination

Pagination context for templates containing paginated lists.

**Available on:** templates such as `templates/pages/category.html` and `templates/pages/brands.html`.

**Handlebars expression:** `{{pagination}}`

## price

See: [Catalog Price Object Reference](/developer/docs/storefront/stencil/themes/context/catalog-price-object)

## product

Default property that provides detailed product data.

**Available on:** `templates/pages/product.html`, plus several partials in `templates/components/`:

* `account/returns-list.html`
* `cart/item-options.html`
* `products/add-to-cart.html`
* `products/event-date.html`
* `products/modals/writeReview.html`
* `products/price.html`
* `products/product-view.html`

**Handlebars expression:** `{{product}}`

**Properties:**

**`AddThisServiceButtonMeta`** `string`

---

**`add_this`** `array`

---

#### add\_this items

**`annotation`** `string`

---

**`service`** `string`

---

**`add_to_wishlist_url`** `string`

URL to add the product to the customer's wishlist

---

**`availability`** `string`

---

**`brand`** `array`

The company, product line, or trademark associated with the product.

---

#### brand items

**`name`** `string`

The name of the company, product line, or trademark.

---

**`url`** `string`

The store's internal page with all the products from that brand.

---

**`bulk_discount_rates`** `array`

List of discount rates for the current product

---

#### bulk\_discount\_rates items

**`type`** `string`

---

**`min`** `integer`

---

**`max`** `integer`

---

**`discount`** `object`

---

#### discount properties

**`formatted`** `string`

---

**`value`** `integer`

---

**`can_purchase`** `boolean`

Boolean that indicates whether the product is available for purchase

---

**`cart_url`** `string`

URL to the customer's shopping cart

---

**`category`** `array`

---

**`condition`** `string`

Product condition

---

**`customizations`** `array`

Product customizations (for example, a T-shirt size); these correspond to configurable fields and numeric-text product options in the BigCommerce control panel

---

**`custom_fields`** `array`

---

#### custom\_fields items

**`id`** `integer`

---

**`name`** `string`

---

**`value`** `string`

---

**`depth`** `string`

The product's physical depth measurement.

---

**`description`** `string`

(HTML) description of the product

---

**`detail_messages`** `string`

Status messages for display at the top of the product page

---

**`featured_promotions`** `array`

Featured promotion callouts eligible for this product. Each item represents a promotion that the store has marked as "featured" and whose conditions match this product's brand, category, or product ID. Sorted by category then priority (lower priority value = higher precedence). Available on product detail pages, category listings, brand pages, and search results.

---

#### featured\_promotions items

**`id`** `integer`

The promotion's ID.

---

**`text`** `string`

The customer-facing callout message for this featured promotion (maximum 80 characters).

---

**`priority`** `integer`

Display priority of the promotion within its category. Lower values indicate higher priority.

---

**`category`** `string`

The promotion category. Possible values: `CART`, `SHIPPING`.

---

**`gift_wrapping_available`** `boolean`

Whether or not gift wrapping is enabled

---

**`gtin`** `string`

Global Trade Item Number. An identifier for trade items that is incorporated into several product identification standards, such as ISBN, UPC, and EAN.

---

**`height`** `string`

The product's physical height measurement.

---

**`id`** `integer`

Unique ID for the product

---

**`images`** `array`

List of all images for this product, in Stencil image format (as configured in config.json; used with the getImage Handlebars helper)

---

#### images items

**`alt`** `string`

---

**`data`** `string`

---

**`main_image`** `object`

Primary image to display when the product details page loads

---

#### main\_image properties

**`alt`** `string`

---

**`data`** `string`

---

**`max_purchase_quantity`** `integer`

Maximum quantity that can be purchased at once

---

**`meta_description`** `string`

---

**`meta_keywords`** `string`

Optional search keywords that merchants may enter in the control panelʼs "Add a Product" or "Edit a Product" page, to characterize the product in meta tags and storefront searches.

---

**`min_purchase_quantity`** `integer`

Minimum quantity that can be purchased at once

---

**`mpn`** `string`

Manufacturer Part Number. It is used to reference and identify a product.

---

**`num_reviews`** `integer`

Number of reviews the product has

---

**`options`** `object (external ref)`

---

**`out_of_stock`** `boolean`

Boolean that indicates whether the product is out of stock. Out of stock only applies to the default selection on page load. For example, if Product A is out of the "Small" size, but "Small" is selected by default, `out_of_stock` will return true, even if the product is not out of stock as a whole.

---

**`out_of_stock_message`** `string`

Out of stock messages for display on the product page

---

**`page_title`** `string`

---

**`price`** `object (external ref)`

---

**`rating`** `integer`

Rating for the product

---

**`related_products`** `object (external ref)`

---

**`reviews`** `object (external ref)`

---

**`shipping`** `object`

---

#### shipping properties

**`calculated`** `boolean`

---

**`price`** `object`

---

#### price properties

**`formatted`** `string`

---

**`value`** `number`

---

**`currency`** `string`

---

**`free`** `boolean`

---

**`fixed`** `boolean`

---

**`shipping_messages`** `array`

---

**`show_quantity_input`** `integer`

---

**`sku`** `string`

Default product variant when no options are selected.

---

**`stock_level`** `string`

Indicates the number of items available for sale. Visible only when inventory tracking is turned on.

---

**`tags`** `array`

Keywords by which this product can also be identified.

---

**`title`** `string`

Displayed name of the product

---

**`upc`** `string`

Optional UPC code for the product

---

**`url`** `string`

URL to the product detail page

---

**`videos`** `object (external ref)`

---

**`warranty`** `string`

Optional warranty text set by the merchant

---

**`width`** `string`

The product's physical width measurement.

---

## product\_results

Search result items for product matches.

**Available on:** `templates/pages/search.html`

**Handlebars expression:** `{{product_results}}`

**Properties:**

**`products`** `array`

---

#### products items

**`id`** `integer`

---

**`sku`** `string`

---

**`name`** `string`

---

**`url`** `string`

---

**`brand`** `object`

---

#### brand properties

**`name`** `null`

---

**`availability`** `string`

---

**`summary`** `string`

---

**`image`** `object`

---

#### image properties

**`data`** `string`

---

**`alt`** `string`

---

**`qty_in_cart`** `integer`

---

**`pre-order`** `boolean`

false

---

**`has_options`** `boolean`

true

---

**`show_cart_action`** `boolean`

true

---

**`stock_level`** `null`

---

**`low_stock_level`** `null`

---

**`weight`** `object`

---

#### weight properties

**`formatted`** `string`

12.00 Ounces

---

**`value`** `integer`

---

**`demo`** `boolean`

false

---

**`date_added`** `string`

---

**`add_to_wishlist_url`** `string`

---

**`custom_fields`** `null`

---

**`images`** `object`

---

#### images properties

**`data`** `string`

---

**`alt`** `string`

---

**`rating`** `integer`

---

**`num_reviews`** `integer`

---

**`price`** `object`

---

#### price properties

**`without_tax`** `object`

---

#### without\_tax properties

**`formatted`** `number`

---

**`value`** `integer`

---

**`currency`** `string`

---

**`tax_label`** `string`

---

**`category`** `array`

---

#### category items

**`Bundle Inventory Tracker`** `string`

---

**`Bundle Inventory Tracker/Bundles`** `string`

---

## products

Product cards grouped by `new`, `featured`, and `top_sellers`.

**Available on:** `templates/pages/home.html`

**Handlebars expression:** `{{products}}`

**Properties:**

**`new`** `array`

---

**`featured`** `array`

Renders a list of all the featured products for the BigCommerce storefront.

---

**`top_sellers`** `array`

Object to display a sidebar of top-selling products.

---

## remote\_api\_scripts

Empty array. No properties are available for this object.

**Handlebars expression:** `{{remote_api_scripts}}`

## settings

Common settings shared across every BigCommerce storefront.

**Scope:** global

**Handlebars expression:** `{{settings}}`

**Properties:**

**`account_creation_enabled`** `boolean`

Site-wide boolean value that indicates whether to allow customers to create accounts.

---

**`add_this`** `object`

Object that defines links for the AddThis social sharing component.

---

#### add\_this properties

**`buttons`** `array`

Array of buttons to display for AddThis social sharing `{{#each settings.add_this.buttons}}{{service}}{{/each}} {{#each settings.add_this.buttons}}{{annotations}}{{/each}}`.

---

#### buttons items

**`annotation`** `string`

String containing HTML attributes associated with this button.

---

**`service`** `string`

String containing the name of this buttonʼs social-media service (facebook, email, print, twitter, linkedin, google, etc.)

---

**`address`** `string`

Store’s complete physical address, as entered by merchant in the store profile.

---

**`base_url`** `string`

The normal shop URL.

---

**`blog_enabled`** `boolean`

Site-wide boolean value that indicates whether the blog is visible for this storefront.

---

**`bulk_discount_enabled`** `boolean`

Boolean that return true if bulk discount is enabled on products.

---

**`cdn_url`** `string`

---

**`client_ip_address`** `string`

The IP address of the customer browsing the storefront. An alternative to this deprecated field is using [ipify API](https://www.ipify.org/).

---

**`country_code`** `string`

The country code corresponding to the IP.

---

**`data_tag_enabled`** `boolean`

Site-wide boolean that indicates whether GAEE is enabled in a theme. For `{{settings.data_tag_enabled}}` to be true, the enhanced\_ecommerce key must be present in config.json and a GAEE experiment must be enabled along with GA property value set in Advanced Settings > Analytics > GA in the store control panel.

---

**`display_date_format`** `string`

Brief display format/pattern for dates, as configured in the control panelʼs Display Date Format field.

---

**`extended_display_date_format`** `string`

Extended display format/pattern for dates, as configured in the control panelʼs Extended Display Date Format field.

---

**`facebook_like_button`** `object`

---

#### facebook\_like\_button properties

**`enabled`** `boolean`

---

**`href`** `string`

---

**`verb`** `string`

---

**`general`** `object`

---

#### general properties

**`fastCart`** `boolean`

---

**`storeId`** `integer`

---

**`gift_certificates_enabled`** `boolean`

Site-wide boolean value that indicates whether to enable the gift certificate system for this store.

---

**`is_eu_ip_address`** `boolean`

A boolean value. Return true if the shopper's IP address is in the EU. Alternatives to this deprecated field are solutions like the [IP Geolocation API](https://ipinfo.io/products/ip-geolocation-api), [IP Geolocation API Package](https://www.bigdatacloud.com/ip-geolocation), and others. While those solutions are not free, they offer a generous free tier, better data quality, and more data points than just the region.

---

**`maintenance`** `object`

Object that manages information about the store when in maintenance (offline) mode.

---

#### maintenance properties

**`header`** `null`

If store is in maintenance mode, string containing header text for the **Down for Maintenance** window displayed to visitors; otherwise, null.

---

**`message`** `null`

If store is in maintenance mode, string containing merchant-customizable body text (and optionally, HTML) for the **Down for Maintenance** window displayed to visitors; otherwise, null.

---

**`notice`** `null`

If store is in maintenance mode, one of three strings identifying the storeʼs status, and generating a corresponding text notice to merchants about how to proceed: AdminPrelaunchNotice for preview stores, AdminMaintenanceNotice for active stores taken down for maintenance, or AdminHibernationModeNotice for deactivated stores; otherwise, null.

---

**`password`** `null`

---

**`securePath`** `string`

---

**`measurements`** `object`

Collection of units-of-measure definitions, to be used when displaying product details:

---

#### measurements properties

**`length`** `string`

Units of measure for product length

---

**`weight`** `string`

Units of measure for product weight

---

**`money`** `object`

List of child items that define the store’s default currency formatting.

---

#### money properties

**`currency_location`** `string`

Whether currency symbol appears at left or right of the quantity

---

**`currency_token`** `string`

Symbol for the currency

---

**`decimal_places`** `integer`

Number of decimal places to display

---

**`decimal_token`** `string`

Symbol for decimal separator

---

**`thousands_token`** `string`

Symbol for thousands separator

---

**`newsletter_summary`** `string`

Returns the [newsletter summary](https://support.bigcommerce.com/s/article/Collecting-Newsletter-Subscriptions#newsletter).

---

**`password_requirements`** `object`

Collection of properties representing BigCommerce requirements for customer-account passwords:

---

#### password\_requirements properties

**`alpha`** `string`

Regular expression representing required/acceptable alphabetic characters.

---

**`error`** `string`

String that passes a standard error message for noncompliant password.

---

**`minlength`** `integer`

Integer representing minimum acceptable password length.

---

**`numeric`** `string`

Regular expression representing required/acceptable numeric characters.

---

**`payments_url`** `string`

Exposes the BigCommerce payments URL: `https://payments.bigcommerce.com`.

---

**`phone_number`** `string`

The contact phone number for the store located in the [stores profile](https://support.bigcommerce.com/s/article/Store-Profile-Settings).

---

**`privacy_cookie`** `boolean`

If enabled, a string containing merchant-customizable text for (European Union–required) cookie-setting notification; if disabled, a boolean with a value of false.

---

**`region_code`** `string`

The [ISO-3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code is an international standard denomination for country subdivisions. The first part is the country's ISO 3166-1 alpha-2 code, and the second part is a string of up to three alphanumeric characters representing the country's subdivision (province or state). For example, Texas's ISO 3166-2 code is US-TX; therefore, the region code is TX. The value is approximate as it is based on the IP address geolocation. Alternatives to this deprecated field are solutions like [https://ipinfo.io/products/ip-geolocation-api](https://ipinfo.io/products/ip-geolocation-api) and others. While those solutions are not free, they offer a generous free tier, better data quality, and more data points than just the region.

---

**`request`** `object`

Object that contains details about the HTTP request.

---

#### request properties

**`absolute_path`** `string`

The absolute URL requested. Never use request.path in the actual body of the page.

---

**`host`** `string`

Hostname of the request.

---

**`is_crawler`** `boolean`

Renders `true` if the user agent is a known crawler; otherwise, `false`. NOTE: Serving different versions of the page to crawlers is considered detrimental to SEO [cloaking](https://developers.google.com/search/docs/essentials/spam-policies#cloaking) and is rarely needed. An alternative to this field is using a front-end bot detection like [isbot](https://github.com/omrilotan/isbot).

---

**`locale`** `string`

The browserʼs locale. Allows for varying experience based on shopper locale.

---

**`origin`** `string`

Origin of the request.

---

**`referer`** `string`

The referer.

---

**`user_agent`** `string`

User agent string of the request. An alternative is using JavaScript detection ([Navigator: userAgent property](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent)).

---

**`returns_enabled`** `integer`

Boolean that indicates whether the control-panel setting for the returns system is enabled.

---

**`rss_item_limit`** `integer`

An integer that sets a limit on the number of RSS items to display.

---

**`secure_base_url`** `string`

The SSL-enabled, secure, shop URL.

---

**`secure_host`** `string`

Returns the SSL URL for the store (secure shop hostname). Example: `https://your-store-domain.com`.

---

**`shopper_consent_tracking_enabled`** `boolean`

---

**`show_newsletter_box`** `integer`

Site-wide boolean value that indicates whether to display a mailing-list invite to visitors.

---

**`show_newsletter_summary`** `integer`

Returns a 1 if the [newsletter summary](https://support.bigcommerce.com/s/article/Collecting-Newsletter-Subscriptions#newsletter) is shown. Returns 0 if it is not shown. If `show_newsletter_box` is 0 then `show_newsletter_summary` will also be 0.

---

**`show_payment_methods`** `boolean`

A boolean value. If true available payment methods on a store will be shown. If false they are hidden.

---

**`show_product_rating`** `boolean`

Site-wide boolean value that indicates whether to display product ratings (in numeric or star format) to visitors.

---

**`show_product_reviews`** `boolean`

Site-wide boolean value that indicates whether to display full-text product reviews to visitors.

---

**`show_wishlist`** `boolean`

Site-wide boolean value that indicates whether to allow customers to create wishlists.

---

**`store_dst_correction`** `integer`

Whether or not this time zone observes Daylight Saving Time (boolean), as set by the control panelʼs Enable DST Correction check box.

---

**`store_hash`** `string`

Returns the store hash as a string.

---

**`store_logo`** `object`

The store’s logo.

---

#### store\_logo properties

**`title`** `string`

Title for the logo. Configure the text in the control panel under Storefront Design Design Options Logo.

---

**`image`** `object (external ref)`

---

**`store_name`** `string`

Name of the BigCommerce store.

---

**`store_time_zone`** `string`

Storeʼs time zone, as selected in the control panelʼs Your Timezone dropdown list.

---

**`storefront_api`** `object`

---

#### storefront\_api properties

**`token`** `string`

---

**`tax_label`** `string`

Defines the Tax Label (VAT, Sales Tax, etc.) that a merchant can set in the control panel’s Settings > Tax page for display to customers.

---

**`theme_config_id`** `string`

---

**`theme_session_id`** `string`

---

**`theme_version_id`** `string`

---

## shipments

Shipment details for an order.

**Available on:** `templates/pages/account/orders/details.html`

**Handlebars expression:** `{{shipments}}`

## shipping\_messages

Shipping notice messages.

**Available on:** `templates/pages/home.html`

**Handlebars expression:** `{{shipping_messages}}`

## shop\_by\_brand

Object to enable customers to shop by brand. Returns the top 10 brands by product count. Called on the default `templates/components/brand/sidebar.html` and `templates/components/common/footer.html` partials.

**Scope:** global

**Handlebars expression:** `{{shop_by_brand}}`

## sitemap

All sitemap properties for the storefront: pages, categories, and brands.

**Available on:** `templates/pages/sitemap.html`

**Handlebars expression:** `{{sitemap}}`

## social\_media

All social-media site links for the storefront.

**Scope:** global

**Handlebars expression:** `{{social_media}}`

## template\_file

Path to the current template file.

**Scope:** global

**Handlebars expression:** `{{template_file}}`

## theme\_settings

Theme configuration values from the active theme's `config.json`.

**Scope:** global

**Handlebars expression:** `{{theme_settings}}`

> **The keys below are not authoritative for your theme**
>
> `{{theme_settings}}` is **populated from the active theme's `config.json`**, not from a fixed BigCommerce schema. Keys vary between themes, and merchants can override values per-store in the Theme Editor. The properties listed below reflect Cornerstone's default `config.json` — if you are working in a custom theme or a fork, **open your own `config.json` to see the real list of keys**.

### How to access a value

Use dot notation:

```handlebars
{{theme_settings.key_name}}
```

For example, `{{theme_settings.homepage_new_products_count}}` returns the configured count of new products to show on the home page.

### How to find the keys for your theme

1. Open `config.json` at the root of your theme. The `settings` object inside it defines every key available on `{{theme_settings}}`.
2. To see what a specific page is actually receiving at runtime, run `stencil start` and append `?debug=context` to the URL — the dumped JSON includes the resolved `theme_settings` for that request, which reflects any Theme Editor overrides the merchant has applied.

The properties documented below are the Cornerstone defaults, included as a reference baseline.

**Properties:**

**`alert-backgroundColor`** `string`

---

**`alert-color`** `string`

---

**`alert-color-alt`** `string`

---

**`applePay-button`** `string`

---

**`blockquote-cite-font-color`** `string`

---

**`blog_size`** `string`

---

**`body-bg`** `string`

---

**`body-font`** `string`

---

**`brand_size`** `string`

---

**`brandpage_products_per_page`** `integer`

---

**`button--default-borderColor`** `string`

---

**`button--default-borderColorActive`** `string`

---

**`button--default-borderColorHover`** `string`

---

**`button--default-color`** `string`

---

**`button--default-colorActive`** `string`

---

**`button--default-colorHover`** `string`

---

**`button--disabled-backgroundColor`** `string`

---

**`button--disabled-borderColor`** `string`

---

**`button--disabled-color`** `string`

---

**`button--icon-svg-color`** `string`

---

**`button--primary-backgroundColor`** `string`

---

**`button--primary-backgroundColorActive`** `string`

---

**`button--primary-backgroundColorHover`** `string`

---

**`button--primary-color`** `string`

---

**`button--primary-colorActive`** `string`

---

**`button--primary-colorHover`** `string`

---

**`card--alternate-backgroundColor`** `string`

---

**`card--alternate-borderColor`** `string`

---

**`card--alternate-color--hover`** `string`

---

**`card-figcaption-button-background`** `string`

---

**`card-figcaption-button-color`** `string`

---

**`card-title-color`** `string`

---

**`card-title-color-hover`** `string`

---

**`carousel-arrow-bgColor`** `string`

---

**`carousel-arrow-borderColor`** `string`

---

**`carousel-arrow-color`** `string`

---

**`carousel-bgColor`** `string`

---

**`carousel-description-color`** `string`

---

**`carousel-dot-bgColor`** `string`

---

**`carousel-dot-color`** `string`

---

**`carousel-dot-color-active`** `string`

---

**`carousel-title-color`** `string`

---

**`categorypage_products_per_page`** `integer`

---

**`checkRadio-backgroundColor`** `string`

---

**`checkRadio-borderColor`** `string`

---

**`checkRadio-color`** `string`

---

**`color-black`** `string`

---

**`color-error`** `string`

---

**`color-errorLight`** `string`

---

**`color-grey`** `string`

---

**`color-greyDark`** `string`

---

**`color-greyDarker`** `string`

---

**`color-greyDarkest`** `string`

---

**`color-greyLight`** `string`

---

**`color-greyLighter`** `string`

---

**`color-greyLightest`** `string`

---

**`color-greyMedium`** `string`

---

**`color-info`** `string`

---

**`color-infoLight`** `string`

---

**`color-primary`** `string`

---

**`color-primaryDark`** `string`

---

**`color-primaryDarker`** `string`

---

**`color-primaryLight`** `string`

---

**`color-secondary`** `string`

---

**`color-secondaryDark`** `string`

---

**`color-secondaryDarker`** `string`

---

**`color-success`** `string`

---

**`color-successLight`** `string`

---

**`color-textBase`** `string`

---

**`color-textBase--active`** `string`

---

**`color-textBase--hover`** `string`

---

**`color-textHeading`** `string`

---

**`color-textLink`** `string`

---

**`color-textLink--active`** `string`

---

**`color-textLink--hover`** `string`

---

**`color-textSecondary`** `string`

---

**`color-textSecondary--active`** `string`

---

**`color-textSecondary--hover`** `string`

---

**`color-warning`** `string`

---

**`color-warningLight`** `string`

---

**`color-white`** `string`

---

**`color-whitesBase`** `string`

---

**`color_badge_product_sale_badges`** `string`

---

**`color_hover_product_sale_badges`** `string`

---

**`color_text_product_sale_badges`** `string`

---

**`container-border-global-color-base`** `string`

---

**`container-fill-base`** `string`

---

**`container-fill-dark`** `string`

---

**`default_image_brand`** `string`

---

**`default_image_gift_certificate`** `string`

---

**`default_image_product`** `string`

---

**`dropdown--quickSearch-backgroundColor`** `string`

---

**`dropdown--wishList-backgroundColor`** `string`

---

**`fontSize-h1`** `integer`

---

**`fontSize-h2`** `integer`

---

**`fontSize-h3`** `integer`

---

**`fontSize-h4`** `integer`

---

**`fontSize-h5`** `integer`

---

**`fontSize-h6`** `integer`

---

**`fontSize-root`** `integer`

---

**`footer-backgroundColor`** `string`

---

**`form-label-font-color`** `string`

---

**`gallery_size`** `string`

---

**`geotrust_ssl_common_name`** `string`

---

**`geotrust_ssl_seal_size`** `string`

---

**`header-backgroundColor`** `string`

---

**`headings-font`** `string`

---

**`hide_blog_page_heading`** `boolean`

---

**`hide_breadcrumbs`** `boolean`

---

**`hide_category_page_heading`** `boolean`

---

**`hide_contact_us_page_heading`** `boolean`

---

**`hide_content_navigation`** `boolean`

---

**`hide_page_heading`** `boolean`

---

**`homepage_blog_posts_count`** `integer`

---

**`homepage_featured_products_column_count`** `integer`

---

**`homepage_featured_products_count`** `integer`

---

**`homepage_new_products_column_count`** `integer`

---

**`homepage_new_products_count`** `integer`

---

**`homepage_show_carousel`** `boolean`

---

**`homepage_show_carousel_arrows`** `boolean`

---

**`homepage_stretch_carousel_images`** `boolean`

---

**`homepage_top_products_column_count`** `integer`

---

**`homepage_top_products_count`** `integer`

---

**`icon-color`** `string`

---

**`icon-color-hover`** `string`

---

**`icon-ratingEmpty`** `string`

---

**`icon-ratingFull`** `string`

---

**`input-bg-color`** `string`

---

**`input-border-color`** `string`

---

**`input-border-color-active`** `string`

---

**`input-disabled-bg`** `string`

---

**`input-font-color`** `string`

---

**`label-backgroundColor`** `string`

---

**`label-color`** `string`

---

**`loadingOverlay-backgroundColor`** `string`

---

**`logo-position`** `string`

---

**`logo_fontSize`** `integer`

---

**`logo_size`** `string`

---

**`navPages-color`** `string`

---

**`navPages-color-hover`** `string`

---

**`navPages-subMenu-backgroundColor`** `string`

---

**`navPages-subMenu-separatorColor`** `string`

---

**`navUser-color`** `string`

---

**`navUser-color-hover`** `string`

---

**`navUser-dropdown-backgroundColor`** `string`

---

**`navUser-dropdown-borderColor`** `string`

---

**`navUser-indicator-backgroundColor`** `string`

---

**`navigation_design`** `string`

---

**`optimizedCheckout-backgroundImage`** `string`

---

**`optimizedCheckout-backgroundImage-size`** `string`

---

**`optimizedCheckout-body-backgroundColor`** `string`

---

**`optimizedCheckout-buttonPrimary-backgroundColor`** `string`

---

**`optimizedCheckout-buttonPrimary-backgroundColorActive`** `string`

---

**`optimizedCheckout-buttonPrimary-backgroundColorDisabled`** `string`

---

**`optimizedCheckout-buttonPrimary-backgroundColorHover`** `string`

---

**`optimizedCheckout-buttonPrimary-borderColor`** `string`

---

**`optimizedCheckout-buttonPrimary-borderColorActive`** `string`

---

**`optimizedCheckout-buttonPrimary-borderColorDisabled`** `string`

---

**`optimizedCheckout-buttonPrimary-borderColorHover`** `string`

---

**`optimizedCheckout-buttonPrimary-color`** `string`

---

**`optimizedCheckout-buttonPrimary-colorActive`** `string`

---

**`optimizedCheckout-buttonPrimary-colorDisabled`** `string`

---

**`optimizedCheckout-buttonPrimary-colorHover`** `string`

---

**`optimizedCheckout-buttonPrimary-font`** `string`

---

**`optimizedCheckout-buttonSecondary-backgroundColor`** `string`

---

**`optimizedCheckout-buttonSecondary-backgroundColorActive`** `string`

---

**`optimizedCheckout-buttonSecondary-backgroundColorHover`** `string`

---

**`optimizedCheckout-buttonSecondary-borderColor`** `string`

---

**`optimizedCheckout-buttonSecondary-borderColorActive`** `string`

---

**`optimizedCheckout-buttonSecondary-borderColorHover`** `string`

---

**`optimizedCheckout-buttonSecondary-color`** `string`

---

**`optimizedCheckout-buttonSecondary-colorActive`** `string`

---

**`optimizedCheckout-buttonSecondary-colorHover`** `string`

---

**`optimizedCheckout-buttonSecondary-font`** `string`

---

**`optimizedCheckout-colorFocus`** `string`

---

**`optimizedCheckout-contentPrimary-color`** `string`

---

**`optimizedCheckout-contentPrimary-font`** `string`

---

**`optimizedCheckout-contentSecondary-color`** `string`

---

**`optimizedCheckout-contentSecondary-font`** `string`

---

**`optimizedCheckout-discountBanner-backgroundColor`** `string`

---

**`optimizedCheckout-discountBanner-iconColor`** `string`

---

**`optimizedCheckout-discountBanner-textColor`** `string`

---

**`optimizedCheckout-form-textColor`** `string`

---

**`optimizedCheckout-formChecklist-backgroundColor`** `string`

---

**`optimizedCheckout-formChecklist-backgroundColorSelected`** `string`

---

**`optimizedCheckout-formChecklist-borderColor`** `string`

---

**`optimizedCheckout-formChecklist-color`** `string`

---

**`optimizedCheckout-formField-backgroundColor`** `string`

---

**`optimizedCheckout-formField-borderColor`** `string`

---

**`optimizedCheckout-formField-errorColor`** `string`

---

**`optimizedCheckout-formField-inputControlColor`** `string`

---

**`optimizedCheckout-formField-placeholderColor`** `string`

---

**`optimizedCheckout-formField-shadowColor`** `string`

---

**`optimizedCheckout-formField-textColor`** `string`

---

**`optimizedCheckout-header-backgroundColor`** `string`

---

**`optimizedCheckout-header-borderColor`** `string`

---

**`optimizedCheckout-header-textColor`** `string`

---

**`optimizedCheckout-headingPrimary-color`** `string`

---

**`optimizedCheckout-headingPrimary-font`** `string`

---

**`optimizedCheckout-headingSecondary-color`** `string`

---

**`optimizedCheckout-headingSecondary-font`** `string`

---

**`optimizedCheckout-link-color`** `string`

---

**`optimizedCheckout-link-font`** `string`

---

**`optimizedCheckout-link-hoverColor`** `string`

---

**`optimizedCheckout-loadingToaster-backgroundColor`** `string`

---

**`optimizedCheckout-loadingToaster-textColor`** `string`

---

**`optimizedCheckout-logo`** `string`

---

**`optimizedCheckout-logo-position`** `string`

---

**`optimizedCheckout-logo-size`** `string`

---

**`optimizedCheckout-orderSummary-backgroundColor`** `string`

---

**`optimizedCheckout-orderSummary-borderColor`** `string`

---

**`optimizedCheckout-show-backgroundImage`** `boolean`

---

**`optimizedCheckout-show-logo`** `string`

---

**`optimizedCheckout-step-backgroundColor`** `string`

---

**`optimizedCheckout-step-borderColor`** `string`

---

**`optimizedCheckout-step-textColor`** `string`

---

**`overlay-backgroundColor`** `string`

---

**`pace-progress-backgroundColor`** `string`

---

**`paymentbuttons-paypal-color`** `string`

---

**`paymentbuttons-paypal-fundingicons`** `boolean`

---

**`paymentbuttons-paypal-label`** `string`

---

**`paymentbuttons-paypal-layout`** `string`

---

**`paymentbuttons-paypal-shape`** `string`

---

**`paymentbuttons-paypal-size`** `string`

---

**`paymentbuttons-paypal-tagline`** `boolean`

---

**`pdp-custom-fields-tab-label`** `string`

---

**`pdp-non-sale-price-label`** `string`

---

**`pdp-price-label`** `string`

---

**`pdp-retail-price-label`** `string`

---

**`pdp-sale-price-label`** `string`

---

**`price_ranges`** `boolean`

---

**`product_list_display_mode`** `string`

---

**`product_sale_badges`** `string`

---

**`product_size`** `string`

---

**`productgallery_size`** `string`

---

**`productpage_related_products_count`** `integer`

---

**`productpage_reviews_count`** `integer`

---

**`productpage_similar_by_views_count`** `integer`

---

**`productpage_videos_count`** `integer`

---

**`productthumb_size`** `string`

---

**`productview_thumb_size`** `string`

---

**`restrict_to_login`** `boolean`

---

**`searchpage_products_per_page`** `integer`

---

**`select-arrow-color`** `string`

---

**`select-bg-color`** `string`

---

**`shop_by_brand_show_footer`** `boolean`

---

**`shop_by_price_visibility`** `boolean`

---

**`show_accept_amex`** `boolean`

---

**`show_accept_discover`** `boolean`

---

**`show_accept_mastercard`** `boolean`

---

**`show_accept_paypal`** `boolean`

---

**`show_accept_visa`** `boolean`

---

**`show_copyright_footer`** `boolean`

---

**`show_custom_fields_tabs`** `boolean`

---

**`show_powered_by`** `boolean`

---

**`show_product_details_tabs`** `boolean`

---

**`show_product_dimensions`** `boolean`

---

**`show_product_quantity_box`** `boolean`

---

**`show_product_quick_view`** `boolean`

---

**`show_product_reviews`** `boolean`

---

**`show_product_weight`** `boolean`

---

**`social_icon_placement_bottom`** `string`

---

**`social_icon_placement_top`** `boolean`

---

**`spinner-borderColor-dark`** `string`

---

**`spinner-borderColor-light`** `string`

---

**`storeName-color`** `string`

---

**`supported_card_type_icons`** `array`

---

**`swatch_option_size`** `string`

---

**`thumb_size`** `string`

---

**`zoom_size`** `string`

---

## urls

URLs for all storefront pages and sub-pages.

**Scope:** global

**Handlebars expression:** `{{urls}}`

**Properties:**

**`account`** `object`

---

#### account properties

**`add_address`** `string`

---

**`addresses`** `string`

---

**`details`** `string`

---

**`inbox`** `string`

---

**`index`** `string`

---

**`orders`** `object`

---

#### orders properties

**`all`** `string`

---

**`completed`** `string`

---

**`save_new_return`** `string`

---

**`payment_methods`** `object`

---

#### payment\_methods properties

**`all`** `string`

---

**`recent_items`** `string`

---

**`returns`** `string`

---

**`send_message`** `string`

---

**`update_action`** `string`

---

**`wishlists`** `object`

---

#### wishlists properties

**`add`** `string`

---

**`all`** `string`

---

**`delete`** `string`

---

**`edit`** `string`

---

**`auth`** `object`

---

#### auth properties

**`check_login`** `string`

---

**`create_account`** `string`

---

**`forgot_password`** `string`

---

**`login`** `string`

---

**`logout`** `string`

---

**`save_new_account`** `string`

---

**`save_new_password`** `string`

---

**`send_password_email`** `string`

---

**`brands`** `string`

---

**`cart`** `string`

---

**`checkout`** `object`

---

#### checkout properties

**`multiple_address`** `string`

---

**`single_address`** `string`

---

**`compare`** `string`

---

**`contact_us_submit`** `string`

---

**`gift_certificate`** `object`

---

#### gift\_certificate properties

**`balance`** `string`

---

**`purchase`** `string`

---

**`redeem`** `string`

---

**`home`** `string`

---

**`product`** `object`

---

#### product properties

**`post_review`** `string`

---

**`search`** `string`

---

**`sitemap`** `string`

---

**`subscribe`** `object`

---

#### subscribe properties

**`action`** `string`

---

## vault

Stored payment instruments for the customer.

**Available on:** `templates/pages/account/payment-methods.html`

**Handlebars expression:** `{{vault}}`

**Properties:**

**`access_token`** `string`

Required to submit add payment method form; otherwise, submission will fail with `401` Unauthorized.

---

**`expires_at`** `number`

Expiration Date in Unix Timestamp.

---

## wishlist

Wishlist information for a specific wishlist. Called on the default `templates/pages/account/wishlist-details.html` template and the `templates/components/account/wishlist-item-list.html` partial.

**Available on:** `templates/pages/account/wishlist-details.html`

**Handlebars expression:** `{{wishlist}}`

**Properties:**

**`id`** `number`

Unique system ID for the wishlist.

---

**`is_editable`** `boolean`

---

**`is_public`** `boolean`

Boolean value indicating whether the wishlist is publicly available.

---

**`items`** `array`

---

#### items items

**`add_to_cart_url`** `string`

---

**`add_to_wishlist_url`** `string`

---

**`availability`** `object`

---

**`brand`** `object`

---

#### brand properties

**`name`** `object`

---

**`custom_fields`** `array`

---

#### custom\_fields items

**`id`** `number`

---

**`name`** `string`

---

**`value`** `string`

---

**`date_added`** `string`

---

**`demo`** `boolean`

---

**`has_options`** `boolean`

---

**`id`** `number`

---

**`image`** `object (external ref)`

---

**`images`** `array`

---

**`low_stock_level`** `object`

---

**`name`** `string`

---

**`num_reviews`** `object`

---

**`pre_order`** `boolean`

---

**`price`** `object`

---

#### price properties

**`tax_label`** `string`

---

**`without_tax`** `object`

---

#### without\_tax properties

**`currency`** `string`

---

**`formatted`** `string`

---

**`value`** `number`

---

**`product_id`** `number`

---

**`qty_in_cart`** `number`

---

**`rating`** `object`

---

**`remove_url`** `string`

URL to remove the product from the wishlist.

---

**`show_cart_action`** `boolean`

---

**`sku`** `object`

---

**`stock_level`** `object`

---

**`summary`** `string`

---

**`url`** `string`

---

**`weight`** `object`

---

#### weight properties

**`formatted`** `object`

---

**`value`** `object`

---

**`name`** `string`

Customer-defined name of the wishlist.

---

**`pagination`** `object`

---

#### pagination properties

**`current`** `number`

---

**`links`** `array`

---

#### links items

**`number`** `number`

---

**`url`** `string`

---

**`next`** `object`

---

**`previous`** `object`

---

**`share_url`** `string`

URL used to share the wishlist.

---

**`token`** `string`

Unique public token for the wishlist.

---