Cart & checkout

Cart & checkout settings

Configure how the app works with your theme's cart page, set global price and styling rules, and customize checkout error messages.

The app's Settings page brings together everything that controls how the app behaves on your cart page, how prices and styling appear across every widget, and what messages your customers see when something blocks them at checkout. This guide walks through each section and what it controls.

Open your settings

Go to Settings in the sidebar. Settings are grouped into five sections, covering your cart page, global rules, translatable messages, checkout error messages, and a global CSS editor.

Changes don't take effect until you click Save in the sticky save bar at the top of the page. If you leave without saving, your edits are lost.

The app Settings page showing the cart page, global, translatable, checkout, and global styles sections with a sticky save bar at the top

Cart page settings

These settings control how the app interacts with your theme's cart page — for example, whether the cart updates without reloading the page.

SettingWhat it controls
Enable AJAXTurns on AJAX cart mode so cart updates happen without a full page reload.
Cart items Container SelectorThe CSS selector for the element that wraps your cart items (for example, .cart-items). Required when AJAX is enabled.
Cart Footer SelectorThe CSS selector for your cart footer element (for example, .cart__footer). Required when AJAX is enabled.
Enable Callback FunctionLets you run custom JavaScript whenever a product is added to the cart.
Callback JavaScript codeThe custom JavaScript to run when a product is added. You don't need a <script> tag, and your code has access to an item variable containing the added product's data.

The two selector fields are only needed when Enable AJAX is on. They tell the app where your theme renders its cart items and footer so it can update them in place. If you're unsure of the right selectors, the View FAQ link in this section points to further guidance.

Global settings

Global settings apply across every app widget and block.

SettingWhat it controls
Price Decimal ScaleChooses how prices are displayed everywhere the app shows them. Enforce 2 Decimal Places always shows two digits (for example, 2 becomes 2.00), while Trim Unnecessary Zeros removes trailing zeros (for example, 2.00 becomes 2).

Global translatable settings

This section holds a message that can be translated for each of your shop's locales.

Set the Warning message that blocks checkout progress — the fallback error message a customer sees when a cart restriction stops them from continuing. Because it supports multiple locales, you can write a different version of this message for each language your store sells in, and the shopper sees the version that matches their storefront language.

This message is a fallback, not the primary text. When a restriction blocks a shopper, the app picks the message it shows in this order:

Per-restriction message

The message you typed on the restriction itself (the Error message in that restriction's action), in the shopper's language. This always wins when it exists.

This global translatable message

The Warning message that blocks checkout progress you set here, in the shopper's language. The app falls back to it whenever the restriction has no message for that shopper's locale.

Hardcoded default

If neither of the above has text for the shopper's locale, the app shows its built-in default, Please review your cart before continuing. You cannot edit this default — set the global message above so shoppers never see it.

Both the per-restriction message and this global message are per-locale. If you add a new storefront language, write a version of the global message for that locale too — otherwise shoppers in that language fall through to the hardcoded default. For a full walkthrough of how a restriction chooses the exact text a shopper sees, read Block vs warn & restriction messages.

This global message only covers messages produced by cart restrictions. It does not control the discount-code error described in Checkout settings below — that is a separate message from a different extension. Editing this field will never change the discount-code text, and vice versa. See Which message comes from where to tell them apart.

Checkout settings

Checkout settings control the message customers see when a discount code they enter doesn't qualify for one of your upsell campaigns.

SettingWhat it controlsDefault
Invalid Discount Code error messageThe message shown when a discount code doesn't qualify for any upsell condition.Your cart contains invalid items

This is not the message a cart restriction shows. It is produced by a separate checkout-validation (promo-code / upsell) extension, and it only appears when a shopper's discount code fails an upsell campaign's conditions. Many merchants edit this field expecting to change the text a restriction shows at checkout — it won't. Restriction text is set on the restriction itself or in the global translatable message above. Use the table in Which message comes from where to confirm which field you need.

If you leave this field empty, shoppers see the built-in default, Your cart contains invalid items. The message is keyed by locale: the app shows the version matching the shopper's storefront language, and falls back to that same hardcoded default when no version exists for their locale. Write a version for each language your store sells in.

You can personalize the Invalid Discount Code message with template variables. The app replaces each one with a real value when the message is shown:

VariableReplaced with
###{{ discountCode }}The code the customer entered.
###{{ amountMore }}How much more the customer needs to reach the campaign goal.
###{{ goalAmount }}The campaign's subtotal target.

Which message comes from where

The app shows two different checkout error messages from two different extensions. They look similar to shoppers but are configured in completely separate places. Use this table to find the one you need to edit:

Shopper sees this when...Comes fromWhere you edit itHardcoded default if blank
Their cart breaks a restriction rule (e.g. a blocked product, region, or quantity)Cart restrictions (restrictions extension)The Error message on the restriction itself, then the Warning message that blocks checkout progress in Global translatable settings as a fallbackPlease review your cart before continuing
A discount code they entered doesn't qualify for an upsell campaignDiscount-code / upsell checkout validation (promo-code extension)The Invalid Discount Code error message in Checkout settingsYour cart contains invalid items

A quick rule of thumb: if the shopper was stopped because of what's in their cart, the text comes from restrictions. If they were stopped because of a code they typed into the discount box, the text comes from Checkout settings.

Global styles (CSS editor)

The Global Styles section is a full CSS editor — the same VS Code-style editor experience, with syntax errors highlighted in red as you type. Any CSS you write here is applied globally across every app block and widget.

Use this when you want custom styling to apply across your entire store — all campaign widgets, Llama Cart blocks, and checkout elements — rather than styling each one individually.

The Global Styles CSS editor with syntax highlighting, used to apply custom CSS across all app widgets and blocks

Remember to click Save after editing any section, including the CSS editor. Unsaved changes won't apply to your storefront.

On this page