Skip to content
CheckoutStack

Features

Everything here is shipped.

No roadmap items, no coming-soon badges. If it is on this page, it is in the app you install today.

Live preview while you type

The editor renders the actual block from the actual form state, inside a frame that mimics checkout. The countdown ticks in the preview. You are not reading a description of what will happen.

A/B testing and per-block analytics

Two variants, assigned at random per checkout and stable across every step. Checkouts reached, checkouts completed, conversion rate. A two-proportion z-test gates the winning label, and rates stay hidden below 20 checkouts.

Variables and light formatting

Drop the shop name, the buyer's first name, the item count, the cart total, the first product or the countdown into any text. Bold and links are supported. No HTML is ever parsed or injected.

Native image handling

Browse the store's Shopify Files or upload a new image from inside the app. Uploads land in the merchant's own Files library, so nothing is hosted by us.

Market and locale targeting

Limit a block to specific Shopify Markets, currencies, countries or languages. These come from Shopify's Localization API and need no extra permissions.

Nothing waits on us

Published blocks live in one app-owned Shopify metafield. The checkout extension reads that metafield and renders. Disabled blocks are stripped from the payload entirely, so they cost nothing.

The four block types

Banner

Title, body and four tones. Collapsible, dismissible, and an optional countdown that actually ticks down in the buyer's browser.

Reviews

Star ratings, verified badges, customer photos and reviewer avatars, in three layouts. Hide the long tail behind a read-more.

Trust list

Icon, headline and one line of copy, repeated. The reassurance list that sits under the pay button on every good checkout.

Image

Any image from the store's Files, with width, alignment, alt text and an optional link. Upload straight from the app.

Display rules

Every block can be limited by any combination of the fifteen fields opposite, matched on all or any conditions.

Rules are evaluated inside checkout from Shopify’s own signals, live. Add an item and a cart-total rule re-checks immediately. Change the shipping country and a country rule follows.

Shipping state or province, customer email and login state require Shopify’s protected customer data approval. Until that is granted they evaluate as empty. Everything else works on day one.

  • Cart total
  • Cart subtotal
  • Number of items
  • Product in cart
  • Variant in cart
  • Discount code
  • Order note
  • Currency
  • Shipping country
  • Shipping state or province
  • Language
  • Market
  • Customer is logged in
  • Customer email
  • Selected shipping method

Where blocks can go

  • Under paymentRenders on every checkout. The default.
  • Order summary, under itemsBeside what they are buying.
  • Order summary, under totalsRight where the number lands.
  • Above the shipping addressBefore they commit to details.
  • Under shipping methodsNext to the delivery choice.
  • Thank you pageWorks on every Shopify plan.
  • Custom positionDrag it anywhere in the checkout editor.

Variables you can use in any text

  • {{shop.name}}
  • {{customer.first_name}}
  • {{customer.last_name}}
  • {{cart.item_count}}
  • {{cart.total}}
  • {{cart.first_product}}
  • {{countdown}}

Wrap text in double asterisks for bold, or use markdown link syntax for a link. Anything a variable cannot resolve falls back to empty rather than printing the placeholder at a buyer.

Try it on your own checkout.

The free plan runs one block with every feature except A/B testing and analytics.