Cart, wishlist, and reviews

Visitor commerce state, discounts, wishlist items, and shopper-visible reviews.

These pages list the exact data fields available to hosted Vascula themes. Add a root name such as product to a section's ctx_needs, then read it directly as product.title in the template. The ctx. prefix shown here identifies the public contract; do not include that prefix in a Vascula expression. Required fields are present whenever their containing object is present. Optional fields may be absent, and nullable fields may be present as null. [] marks an array item and {key} marks a key selected at runtime. Named types such as Price and Media are detailed on Shared data shapes.

ctx.cart#

The current cart. Header use receives counts; rich cart surfaces receive line, price, discount, limit, and shipping data. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.cart

Object

Declared root

ctx.cart.advertised_coupons

Array of object

Optional

ctx.cart.advertised_coupons[].bundle_percentage

Number

Optional

ctx.cart.advertised_coupons[].bundle_set_price

Decimal string

Optional

ctx.cart.advertised_coupons[].bundle_value_mode

String

Optional

ctx.cart.advertised_coupons[].bxgy_buy_quantity

Integer

Optional

ctx.cart.advertised_coupons[].bxgy_get_quantity

Integer

Optional

ctx.cart.advertised_coupons[].bxgy_get_type

String

Optional

ctx.cart.advertised_coupons[].bxgy_get_value

Number

Optional

ctx.cart.advertised_coupons[].code

String

Required

ctx.cart.advertised_coupons[].eligible

Boolean

Required

ctx.cart.advertised_coupons[].ends_at

Timestamp

Optional

ctx.cart.advertised_coupons[].formatted_amount

String

Optional

ctx.cart.advertised_coupons[].formatted_bundle_set_price

String

Optional

ctx.cart.advertised_coupons[].formatted_bxgy_get_value

String

Optional

ctx.cart.advertised_coupons[].formatted_min_subtotal

String

Optional

ctx.cart.advertised_coupons[].formatted_potential_amount

String

Required

ctx.cart.advertised_coupons[].formatted_threshold_shortfall

String

Optional

ctx.cart.advertised_coupons[].has_potential_savings

Boolean

Required

ctx.cart.advertised_coupons[].id

String

Required

ctx.cart.advertised_coupons[].min_subtotal

Decimal string

Optional

ctx.cart.advertised_coupons[].name

String

Required

ctx.cart.advertised_coupons[].potential_amount

Decimal string

Required

ctx.cart.advertised_coupons[].reason

String

Optional

ctx.cart.advertised_coupons[].reason_kind

String

Optional

ctx.cart.advertised_coupons[].threshold_shortfall

Decimal string

Optional

ctx.cart.advertised_coupons[].type

String

Required

ctx.cart.advertised_coupons[].value

Number

Optional

ctx.cart.checkout_limits

Object

Optional

ctx.cart.checkout_limits.above_maximum

Boolean

Required

ctx.cart.checkout_limits.below_minimum

Boolean

Required

ctx.cart.checkout_limits.excess

Money input

Optional

ctx.cart.checkout_limits.max_amount

Money input

Optional

ctx.cart.checkout_limits.max_enabled

Boolean

Required

ctx.cart.checkout_limits.min_amount

Money input

Optional

ctx.cart.checkout_limits.min_enabled

Boolean

Required

ctx.cart.checkout_limits.shortfall

Money input

Optional

ctx.cart.checkout_limits.within_range

Boolean

Required

ctx.cart.coupon_codes

Array of string

Optional

ctx.cart.currency_code

String

Optional

ctx.cart.discount_nudges

Array of object

Optional

ctx.cart.discount_nudges[].bundle

Object

Optional

ctx.cart.discount_nudges[].bundle.missing_items

Array of object

Required

ctx.cart.discount_nudges[].bundle.missing_items[].media

Cart media or null

Required; may be null

ctx.cart.discount_nudges[].bundle.missing_items[].product_id

Integer

Required

ctx.cart.discount_nudges[].bundle.missing_items[].quantity_needed

Integer

Required

ctx.cart.discount_nudges[].bundle.missing_items[].title

String

Required

ctx.cart.discount_nudges[].bundle.missing_items[].unit_price

Presented money or null

Required; may be null

ctx.cart.discount_nudges[].bundle.missing_items[].url

URL

Required

ctx.cart.discount_nudges[].bundle.missing_items[].variant_id

Integer or null

Required; may be null

ctx.cart.discount_nudges[].bundle.saving

Presented money or null

Required; may be null

ctx.cart.discount_nudges[].id

String

Required

ctx.cart.discount_nudges[].name

String

Required

ctx.cart.discount_nudges[].reason

String

Required

ctx.cart.discount_nudges[].type

String

Required

ctx.cart.discount_stacking

Object

Optional

ctx.cart.discount_stacking.at_capacity

Boolean

Required

ctx.cart.discount_stacking.auto_coupon_combine

Boolean

Required

ctx.cart.discount_stacking.capacity_reason

String

Required

ctx.cart.discount_stacking.coupon_limit

Integer

Required

ctx.cart.discount_stacking.max_coupons_per_order

Integer

Required

ctx.cart.discount_stacking.mode

String

Required

ctx.cart.discount_total

Presented money

Optional

ctx.cart.discounts

Array of object

Optional

ctx.cart.discounts[].activation

String

Required

ctx.cart.discounts[].amount

Decimal string

Required

ctx.cart.discounts[].code

String

Optional

ctx.cart.discounts[].eligible

Boolean

Required

ctx.cart.discounts[].formatted_adjustment

String

Optional

ctx.cart.discounts[].formatted_amount

String

Required

ctx.cart.discounts[].id

String

Required

ctx.cart.discounts[].name

String

Required

ctx.cart.discounts[].reason

String

Optional

ctx.cart.discounts[].type

String

Required

ctx.cart.formatted_discount_total

String

Optional

ctx.cart.free_shipping

Object

Optional

ctx.cart.free_shipping.progress

Integer

Required

ctx.cart.free_shipping.qualified

Boolean

Required

ctx.cart.free_shipping.rate_below

Money input

Required

ctx.cart.free_shipping.remaining

Money input

Required

ctx.cart.free_shipping.threshold

Money input

Required

ctx.cart.gift_offers

Array of object

Optional

ctx.cart.gift_offers[].claimed_quantity

Integer

Required

ctx.cart.gift_offers[].discount_id

String

Required

ctx.cart.gift_offers[].discount_name

String

Required

ctx.cart.gift_offers[].mode

String

Required

ctx.cart.gift_offers[].product

Object or null

Required; may be null

ctx.cart.gift_offers[].product.id

Integer

Required

ctx.cart.gift_offers[].product.media

Cart media or null

Required; may be null

ctx.cart.gift_offers[].product.slug

String or null

Required; may be null

ctx.cart.gift_offers[].product.title

String or null

Required; may be null

ctx.cart.gift_offers[].product.url

String or null

Required; may be null

ctx.cart.gift_offers[].product_id

Integer

Required

ctx.cart.gift_offers[].quantity

Integer

Required

ctx.cart.gift_offers[].remaining_quantity

Integer

Required

ctx.cart.gift_offers[].variant

Object or null

Required; may be null

ctx.cart.gift_offers[].variant.id

Integer

Required

ctx.cart.gift_offers[].variant.media

Cart media or null

Required; may be null

ctx.cart.gift_offers[].variant.options

Array of object

Required

ctx.cart.gift_offers[].variant.options[].name

String

Required

ctx.cart.gift_offers[].variant.options[].value

String

Required

ctx.cart.gift_offers[].variant.sku

String or null

Required; may be null

ctx.cart.gift_offers[].variant.title

String or null

Required; may be null

ctx.cart.gift_offers[].variant_id

Integer or null

Required; may be null

ctx.cart.inactive_coupons

Array of object

Optional

ctx.cart.inactive_coupons[].code

String

Required

ctx.cart.inactive_coupons[].reason

String

Required

ctx.cart.item_count

Integer

Required

ctx.cart.items

Array of object

Optional

ctx.cart.items[].availability_reason

String or null

Required; may be null

ctx.cart.items[].availability_reason_label

String

Optional

ctx.cart.items[].available_for_sale

Boolean

Required

ctx.cart.items[].free_units

Integer

Required

ctx.cart.items[].gift_card_recipient

Object or null

Required; may be null

ctx.cart.items[].gift_card_recipient.deliver_at

String or null

Required; may be null

ctx.cart.items[].gift_card_recipient.email

String

Required

ctx.cart.items[].gift_card_recipient.message

String

Required

ctx.cart.items[].gift_card_recipient.name

String

Required

ctx.cart.items[].gift_card_recipient.phone

String

Required

ctx.cart.items[].is_free_gift

Boolean

Required

ctx.cart.items[].is_gift_card

Boolean

Required

ctx.cart.items[].line_discount

Presented money or null

Required; may be null

ctx.cart.items[].line_id

String

Required

ctx.cart.items[].line_subtotal

Presented money or null

Required; may be null

ctx.cart.items[].max_order_quantity

Integer or null

Required; may be null

ctx.cart.items[].max_order_remaining

Integer or null

Required; may be null

ctx.cart.items[].notify_me_eligible

Boolean

Required

ctx.cart.items[].on_sale

Boolean

Required

ctx.cart.items[].product

Object or null

Required; may be null

ctx.cart.items[].product.id

Integer

Required

ctx.cart.items[].product.media

Cart media or null

Required; may be null

ctx.cart.items[].product.slug

String or null

Required; may be null

ctx.cart.items[].product.title

String or null

Required; may be null

ctx.cart.items[].product.url

String or null

Required; may be null

ctx.cart.items[].product_id

Integer

Required

ctx.cart.items[].properties

Line properties or null

Required; may be null

ctx.cart.items[].property_list

Array of object

Optional

ctx.cart.items[].property_list[].display_value

String

Required

ctx.cart.items[].property_list[].key

String

Required

ctx.cart.items[].property_list[].name

String

Required

ctx.cart.items[].property_list[].value

String

Required

ctx.cart.items[].purchase_state

String

Required

ctx.cart.items[].quantity

Integer

Required

ctx.cart.items[].quantity_at_limit

Boolean

Required

ctx.cart.items[].quantity_available

Integer or null

Required; may be null

ctx.cart.items[].quantity_can_add

Integer or null

Required; may be null

ctx.cart.items[].regular_line_subtotal

Presented money or null

Required; may be null

ctx.cart.items[].regular_unit_price

Presented money or null

Required; may be null

ctx.cart.items[].requires_shipping

Boolean

Required

ctx.cart.items[].series

Object

Optional

ctx.cart.items[].series.count

Integer

Required

ctx.cart.items[].series.index

Integer

Required

ctx.cart.items[].series.key

String

Required

ctx.cart.items[].series.media

Cart media

Optional

ctx.cart.items[].series.quantity

Integer

Required

ctx.cart.items[].series.subtotal

Money input

Optional

ctx.cart.items[].series.title

String or null

Optional; may be null

ctx.cart.items[].series.variant

String or null

Optional; may be null

ctx.cart.items[].thumbnail

URL

Optional

ctx.cart.items[].total

Presented money or null

Required; may be null

ctx.cart.items[].unit_price

Presented money or null

Required; may be null

ctx.cart.items[].variant

Object or null

Required; may be null

ctx.cart.items[].variant.id

Integer

Required

ctx.cart.items[].variant.media

Cart media or null

Required; may be null

ctx.cart.items[].variant.options

Array of object

Required

ctx.cart.items[].variant.options[].name

String

Required

ctx.cart.items[].variant.options[].value

String

Required

ctx.cart.items[].variant.sku

String or null

Required; may be null

ctx.cart.items[].variant.title

String or null

Required; may be null

ctx.cart.items[].variant_id

Integer or null

Required; may be null

ctx.cart.note

String

Optional

ctx.cart.note_max_length

Integer

Optional

ctx.cart.optional_fees

Array of object

Optional

ctx.cart.optional_fees[].amount

Presented money

Optional

ctx.cart.optional_fees[].apply_per

String (order, item)

Required

ctx.cart.optional_fees[].description

String

Required

ctx.cart.optional_fees[].fee_type

String (fixed, percent)

Required

ctx.cart.optional_fees[].id

String

Required

ctx.cart.optional_fees[].name

String

Required

ctx.cart.optional_fees[].percent

Decimal string

Optional

ctx.cart.optional_fees[].selected

Boolean

Required

ctx.cart.subtotal

Presented money

Optional

ctx.cart.total

Presented money

Optional

ctx.cart.unique_item_count

Integer

Required

ctx.wishlist#

The visitor's wishlist state and, for rich surfaces, its sellable product rows. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.wishlist

Object

Declared root

ctx.wishlist.enabled

Boolean

Required

ctx.wishlist.id

String or null

Required; may be null

ctx.wishlist.item_count

Integer

Required

ctx.wishlist.items

Array of object

Optional

ctx.wishlist.items[].availability_reason

String or null

Required; may be null

ctx.wishlist.items[].availability_reason_label

String

Optional

ctx.wishlist.items[].available_for_sale

Boolean

Required

ctx.wishlist.items[].identity_hash

String

Optional

ctx.wishlist.items[].notify_me_eligible

Boolean

Required

ctx.wishlist.items[].on_sale

Boolean

Required

ctx.wishlist.items[].price

Presented money

Optional

ctx.wishlist.items[].product

Object or null

Required; may be null

ctx.wishlist.items[].product.available_for_sale

Boolean

Optional

ctx.wishlist.items[].product.brand

String or null

Optional; may be null

ctx.wishlist.items[].product.brand_url

URL or null

Optional; may be null

ctx.wishlist.items[].product.featured_image

Media or null

Optional; may be null

ctx.wishlist.items[].product.id

Integer

Required

ctx.wishlist.items[].product.inventory_status

String

Optional

ctx.wishlist.items[].product.is_gift_card

Boolean

Optional

ctx.wishlist.items[].product.media

Object or null

Required; may be null

ctx.wishlist.items[].product.media.alt_text

String or null

Required; may be null

ctx.wishlist.items[].product.media.is_image

Boolean

Required

ctx.wishlist.items[].product.media.url

URL

Required

ctx.wishlist.items[].product.metafields

Metafields

Optional

ctx.wishlist.items[].product.options

Array of listing option

Optional

ctx.wishlist.items[].product.price

Price or null

Optional; may be null

ctx.wishlist.items[].product.price_range

Price range or null

Optional; may be null

ctx.wishlist.items[].product.published_at

Timestamp or null

Optional; may be null

ctx.wishlist.items[].product.purchase_state

String

Optional

ctx.wishlist.items[].product.rating

Rating

Optional

ctx.wishlist.items[].product.sales_count

Integer

Optional

ctx.wishlist.items[].product.secondary_image

Media or null

Optional; may be null

ctx.wishlist.items[].product.session_state

Object

Optional

ctx.wishlist.items[].product.session_state.cart

Object

Required

ctx.wishlist.items[].product.session_state.cart.direct_line_count

Integer

Required

ctx.wishlist.items[].product.session_state.cart.direct_quantity

Integer

Required

ctx.wishlist.items[].product.session_state.cart.line_count

Integer

Required

ctx.wishlist.items[].product.session_state.cart.quantity

Integer

Required

ctx.wishlist.items[].product.session_state.wishlist

Object

Required

ctx.wishlist.items[].product.session_state.wishlist.direct_item_count

Integer

Required

ctx.wishlist.items[].product.session_state.wishlist.direct_saved

Boolean

Required

ctx.wishlist.items[].product.session_state.wishlist.item_count

Integer

Required

ctx.wishlist.items[].product.session_state.wishlist.saved

Boolean

Required

ctx.wishlist.items[].product.short_description

String or null

Optional; may be null

ctx.wishlist.items[].product.slug

String or null

Required; may be null

ctx.wishlist.items[].product.title

String or null

Required; may be null

ctx.wishlist.items[].product.type

String

Optional

ctx.wishlist.items[].product.url

URL

Optional

ctx.wishlist.items[].product.variants

Array of object

Optional

ctx.wishlist.items[].product.variants[].available_for_sale

Boolean

Required

ctx.wishlist.items[].product.variants[].id

Integer

Required

ctx.wishlist.items[].product.variants[].price

Object

Optional

ctx.wishlist.items[].product.variants[].price.current

Money input

Required

ctx.wishlist.items[].product.variants[].price.on_sale

Boolean

Required

ctx.wishlist.items[].product.variants[].price.regular

Money input

Required

ctx.wishlist.items[].product.variants[].selected_options

Array of object

Required

ctx.wishlist.items[].product.variants[].selected_options[].attribute_name

String

Required

ctx.wishlist.items[].product.variants[].selected_options[].attribute_slug

String

Required

ctx.wishlist.items[].product.variants[].selected_options[].label

String

Required

ctx.wishlist.items[].product.variants[].selected_options[].value

String

Required

ctx.wishlist.items[].product.variants[].session_state

Object

Optional

ctx.wishlist.items[].product.variants[].session_state.cart

Object

Required

ctx.wishlist.items[].product.variants[].session_state.cart.direct_line_count

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.cart.direct_quantity

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.cart.line_count

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.cart.quantity

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.wishlist

Object

Required

ctx.wishlist.items[].product.variants[].session_state.wishlist.direct_item_count

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.wishlist.direct_saved

Boolean

Required

ctx.wishlist.items[].product.variants[].session_state.wishlist.item_count

Integer

Required

ctx.wishlist.items[].product.variants[].session_state.wishlist.saved

Boolean

Required

ctx.wishlist.items[].product.variants[].title

String

Required

ctx.wishlist.items[].product.vendor

String or null

Optional; may be null

ctx.wishlist.items[].product.vendor_url

URL or null

Optional; may be null

ctx.wishlist.items[].product_id

Integer

Required

ctx.wishlist.items[].properties

Line properties

Optional

ctx.wishlist.items[].purchase_state

String

Required

ctx.wishlist.items[].variant

Object or null

Required; may be null

ctx.wishlist.items[].variant.id

Integer

Required

ctx.wishlist.items[].variant.media

Object or null

Required; may be null

ctx.wishlist.items[].variant.media.alt_text

String or null

Required; may be null

ctx.wishlist.items[].variant.media.is_image

Boolean

Required

ctx.wishlist.items[].variant.media.url

URL

Required

ctx.wishlist.items[].variant.options

Array of object

Required

ctx.wishlist.items[].variant.options[].name

String

Required

ctx.wishlist.items[].variant.options[].value

String

Required

ctx.wishlist.items[].variant.sku

String or null

Required; may be null

ctx.wishlist.items[].variant.title

String or null

Required; may be null

ctx.wishlist.items[].variant_id

Integer or null

Required; may be null

ctx.wishlist.login_required

Boolean

Required

ctx.reviews#

Product review availability, aggregates, filters, and approved review rows. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.reviews

Object

Declared root

ctx.reviews.enabled

Boolean

Required

ctx.reviews.has_more

Boolean

Optional

ctx.reviews.items

Array of object

Optional

ctx.reviews.items[].content

String

Required

ctx.reviews.items[].created_at

String

Required

ctx.reviews.items[].created_at_iso

Timestamp

Required

ctx.reviews.items[].edited

Boolean

Required

ctx.reviews.items[].helpful_count

Integer

Required

ctx.reviews.items[].id

String

Required

ctx.reviews.items[].images

Array of object

Optional

ctx.reviews.items[].images[].height

Integer

Required

ctx.reviews.items[].images[].url

URL

Required

ctx.reviews.items[].images[].width

Integer

Required

ctx.reviews.items[].imported

Boolean

Required

ctx.reviews.items[].rating

Integer

Required

ctx.reviews.items[].reviewer_name

String

Required

ctx.reviews.items[].store_response

Object

Optional

ctx.reviews.items[].store_response.content

String

Required

ctx.reviews.items[].store_response.created_at

String

Optional

ctx.reviews.items[].store_response.created_at_iso

Timestamp

Optional

ctx.reviews.items[].title

String

Optional

ctx.reviews.items[].unhelpful_count

Integer

Required

ctx.reviews.items[].variant_id

Integer

Optional

ctx.reviews.items[].verified_purchase

Boolean

Required

ctx.reviews.page

Integer

Optional

ctx.reviews.per_page

Integer

Optional

ctx.reviews.rating_filter

Integer

Optional

ctx.reviews.sort

String

Optional

ctx.reviews.stats

Object

Optional

ctx.reviews.stats.average

Number

Required

ctx.reviews.stats.count

Integer

Required

ctx.reviews.stats.stars

Object keyed by name

Required

ctx.reviews.stats.stars.{key}

Integer

Dynamic key

ctx.reviews.total

Integer

Optional

ctx.store_reviews#

Store-wide approved reviews with product links and pagination. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.store_reviews

Object

Declared root

ctx.store_reviews.enabled

Boolean

Required

ctx.store_reviews.items

Array of object

Optional

ctx.store_reviews.items[].content

String

Required

ctx.store_reviews.items[].created_at

String

Required

ctx.store_reviews.items[].created_at_iso

Timestamp

Required

ctx.store_reviews.items[].edited

Boolean

Required

ctx.store_reviews.items[].helpful_count

Integer

Required

ctx.store_reviews.items[].id

String

Required

ctx.store_reviews.items[].images

Array of object

Optional

ctx.store_reviews.items[].images[].height

Integer

Required

ctx.store_reviews.items[].images[].url

URL

Required

ctx.store_reviews.items[].images[].width

Integer

Required

ctx.store_reviews.items[].imported

Boolean

Required

ctx.store_reviews.items[].product

Object

Required

ctx.store_reviews.items[].product.id

Integer

Required

ctx.store_reviews.items[].product.title

String

Required

ctx.store_reviews.items[].product.url

URL

Required

ctx.store_reviews.items[].rating

Integer

Required

ctx.store_reviews.items[].reviewer_name

String

Required

ctx.store_reviews.items[].store_response

Object

Optional

ctx.store_reviews.items[].store_response.content

String

Required

ctx.store_reviews.items[].store_response.created_at

String

Optional

ctx.store_reviews.items[].store_response.created_at_iso

Timestamp

Optional

ctx.store_reviews.items[].title

String

Optional

ctx.store_reviews.items[].unhelpful_count

Integer

Required

ctx.store_reviews.items[].variant_id

Integer

Optional

ctx.store_reviews.items[].verified_purchase

Boolean

Required

ctx.store_reviews.page

Integer

Optional

ctx.store_reviews.rating_filter

Integer

Optional

ctx.store_reviews.sort

String

Optional

ctx.store_reviews.stats

Object

Optional

ctx.store_reviews.stats.average

Number

Required

ctx.store_reviews.stats.count

Integer

Required

ctx.store_reviews.stats.stars

Object keyed by name

Required

ctx.store_reviews.stats.stars.{key}

Integer

Dynamic key

ctx.store_reviews.total

Integer

Optional

ctx.store_reviews.total_pages

Integer

Optional