An attribute which displays the value of a liquidAjaxCart.cart object’s property,
such as the number of cart items, or the cart total price,
outside of the data-ajax-cart-section elements.
Liquid Ajax Cart updates the displayed value when the cart is changed.
Add the data-ajax-cart-bind attribute with the name of the liquidAjaxCart.cart object’s property,
whose value you want to show, to any HTML element
—
Liquid Ajax Cart inserts the value of the property into the HTML element as the inner content
and updates it when the value is changed.
The most popular use cases are displaying the number of cart items and the cart total price in the header of a webpage.
The number of cart items is stored in the item_count property of the liquidAjaxCart.cart object.
Pass the item_count as the value for the data-ajax-cart-bind attribute.
<span class="header__cart-quantity">
(
<span data-ajax-cart-bind="item_count">
<!-- Cart item count appears here -->
</span>
)
</span>
The best practice is to use the data-ajax-cart-bind on top of Liquid expressions.
The liquid expression {{ cart.item_count }} lets you show the number of cart items
until Liquid Ajax Cart is initialized and if JavaScript is disabled.
<span class="header__cart-quantity">
(
<span data-ajax-cart-bind="item_count">
<!-- Cart item count appears here -->
{{ cart.item_count }}
</span>
)
</span>
The cart total price is stored in the total_price property of the liquidAjaxCart.cart object.
Pass the total_price as the value for the data-ajax-cart-bind attribute.
Use the money_with_currency formatter with money related properties.
<span class="header__cart-total">
(
<span data-ajax-cart-bind="total_price | money_with_currency">
<!-- Cart total price appears here -->
</span>
)
</span>
The best practice is to use the data-ajax-cart-bind on top of Liquid expressions.
The liquid expression {{ cart.total_price | money_with_currency }} lets you show the cart total price
until Liquid Ajax Cart is initialized and if JavaScript is disabled.
<span class="header__cart-total">
(
<span data-ajax-cart-bind="total_price | money_with_currency">
<!-- Cart total price appears here -->
{{ cart.total_price | money_with_currency }}
</span>
)
</span>
The attribute supports formatters and there is the money_with_currency formatter out of the box.
The money_with_currency uses the Intl JavaScript object and Shopify.locale value:
return Intl.NumberFormat(window.Shopify.locale, {
style: 'currency',
currency: window.liquidAjaxCart.cart.currency
}).format(passedValue / 100);
If the Shopify.locale or the Intl are not available, the formatter returns the following:
// 100.00 USD
return `${ (value / 100).toFixed(2) } ${ window.liquidAjaxCart.cart.currency }`;
Use the binderFormatters configuration parameter to define custom formatters.