Cart

The cart every page has, with no attribute to put it there. Read it with data-next-query (cart.total), list its lines with data-next-each (cart.lines), and change it with actions. next.query('cart') and every cart.* event carry the same object.

CODE
<span data-next-query="cart.total"></span>
<p data-next-show="cart.total_discount > 0">You save <span data-next-query="cart.total_discount"></span></p>

<div data-next-each="cart.lines">
  <template>
    <span data-next-query="product_title"></span> × <span data-next-query="quantity"></span>
    <span data-next-query="total"></span>
    <button data-next-action="removeItem">Remove</button>
  </template>
</div>

Totals add up: total = subtotal − total_discount + shipping_method.price. A line's own: total = subtotal − total_discount, with price and original_price for one package.

Fields

FieldTypePresent
linesCartItem[]alwaysEvery line in the cart, the same package's lines merged.
couponsstring[]alwaysThe codes the shopper applied, uppercase. A bundle card's own codes are not listed.
currencystringcampaignISO 4217, such as USD.
shipping_methodShippingMethodoptionalThe selected shipping method, and what shipping costs.
subtotalnumberpricedThe products before discounts, without shipping.
total_discountnumberpricedThe discounts on the products, without shipping's: the sum of discounts.
totalnumberpricedWhat the shopper pays.
discountsDiscount[]pricedThe discounts on the products, one per offer.
discount_percentagenumberpricedtotal_discount ÷ subtotal × 100, to two decimals; 0 without a discount.
quantitynumberalwaysUnits in the cart: each line's quantity.

CartItem

A line of the cart. Its prices are there once the server priced the cart.

FieldTypePresent
package_idnumberalwaysThe package's ref_id in the campaign.
quantitynumberalwaysPackage quantity.
is_upsellbooleanoptionaltrue for a line added after the order.
propertiesRecord<string, string>optionalLine properties, such as a variant picked in a bundle slot.
product_idnumbercampaignThe product in the store.
product_titlestringcampaignThe product's name as customers see it, as on an order line; the package's name for a package without one.
variant_idnumbercampaignThe product variant, for a product with variants.
variant_titlestringcampaignThe variant's name, such as Black / M, for a product with variants.
skustringcampaignThe product's Stock Keeping Unit.
imagestringcampaignThe package's image URL.
pricenumberpricedWhat one package costs after discounts.
original_pricenumberpricedWhat one package costs before discounts; equal to price when nothing is taken off.
total_discountnumberpricedThe discount on the line.
totalnumberpricedprice × quantity.
subtotalnumberpricedThe line before discounts: total = subtotal − total_discount.
discount_percentagenumberpricedtotal_discount ÷ subtotal × 100, to two decimals; 0 without a discount.
discountsDiscount[]pricedThe discounts on the line.
subscriptionSubscriptioncampaignFor a package billed again every interval.

ShippingMethod

The selected shipping method, and what shipping costs.

FieldTypePresent
idnumberalwaysThe method's ref_id.
codestringcampaignSuch as standard.
namestringpricedThe method's name.
pricenumberpricedWhat shipping costs after discounts; 0 is free shipping.
original_pricenumberpricedWhat shipping costs before discounts.
discountsDiscount[]pricedThe discounts on shipping, such as a free-shipping offer.

Discount

A discount on the cart's products or on its shipping. Amounts are in the cart's currency.

FieldTypePresent
namestringalwaysThe offer's name.
amountnumberalwaysThe amount taken off.
source"offer" | "coupon"alwayscoupon for a code the shopper entered (it is in coupons); offer for an automatic offer or a bundle card's own code.
codestringoptionalThe code, for a coupon.
offer_idnumberalwaysThe offer that gave it.
percentagenumberoptionalThe percentage the offer is set to take off, as the API reports it, such as 20. Its configured value, for a label such as “20% off”; the amount actually taken off is amount.

Subscription

A package billed again every interval.

FieldTypePresent
interval"day" | "month"alwaysThe unit of the renewal interval.
interval_countnumberalwaysHow many intervals between renewals.
pricenumberpricedWhat each renewal charges, after discounts.
original_pricenumberpricedWhat each renewal charges before discounts.