Smart Checkout Widgets adds merchandising to Shopify checkout: gifts that appear
automatically or by coupon, upsells, trust badges, custom fields, and rules that
change which shipping and payment methods a buyer sees. It runs on Shopify's own
checkout extensibility, so nothing here depends on checkout.liquid.
Overview
The app has three parts, and it helps to keep them separate when you are planning a setup.
- Widgets render content inside checkout — badges, banners, fields, upsells, gifts.
- Shipping method rules rename, hide or reorder the delivery options Shopify offers.
- Payment method rules do the same for payment methods.
Widgets are additive: you place them and they show. Rules are subtractive and conditional: they act on options Shopify has already produced, and only when the conditions you set are met.
Checkout editor placement. Widgets appear where you place the app block in Shopify's checkout editor. Installing the app does not put anything in front of buyers until a block is placed and a widget is created.
Quickstart
- Install the app from the Shopify App Store.
- Open Settings → Checkout → Customize in your Shopify admin.
- Add the Smart Checkout Widgets app block where you want content to appear.
- Save the checkout profile.
- Back in the app, create your first widget and enable it.
Changes to a widget publish to checkout as soon as you save. You do not need to re-publish the checkout profile after the block is placed once.
Widgets
Twelve widget types are available, and every one is included on every plan. Plans differ only by monthly order volume, not by feature.
| Widget | What it does |
|---|---|
| Trust badges | Badge row with your own images and labels — secure payment, returns, guarantees. |
| Payment icons | Displays accepted card and wallet icons. |
| Custom banner | A highlighted message block, for shipping cut-offs or promotions. |
| Custom content | Free-form rich content where a banner is too rigid. |
| Accordion | Collapsible sections — returns policy, delivery FAQs — without crowding checkout. |
| Consent check | A checkbox buyers must tick, for terms or age confirmation. |
| Custom fields | Extra inputs captured at checkout and written to the order. |
| Line item fields | Per-product inputs — engraving text, gift notes. |
| Line item options | Lets buyers change variant or quantity from inside checkout. |
| Cart value progress | A progress meter toward a threshold, such as free shipping. |
| Upsell | Offers additional products in checkout. See Upsells. |
| Gifts | Automatic or coupon-triggered free products. See Checkout gifts. |
Creating and disabling a widget
Each widget is created, named and configured independently, and can be disabled without deleting it. Disabling removes it from checkout immediately while keeping its configuration, which is the safer way to pause something mid-campaign.
Checkout gifts
Gifts add a free product to the order at checkout. There are two ways to trigger one, and they behave differently.
Automatic gifts
The gift is added when the cart meets the rule you set — a spend threshold, or the presence of particular products. The buyer does nothing.
Coupon gifts
The gift is tied to a discount code. When the buyer applies the code, the gift is added; if the code is removed, the gift is removed with it.
Gift variants should be priced normally in your catalogue. The app discounts the gift at checkout. If the variant is priced at zero in the catalogue instead, there is no price to discount, so a gift that fails to be removed is given away at zero rather than reverting to full price.
Customer choice
Rather than fixing one gift, you can offer several and let the buyer pick. You can cap how many items they may choose, so a "pick 2 of 6" promotion stays within its margin.
Upsells
The upsell widget offers additional products inside checkout. Buyers add them without leaving the page, so the offer does not interrupt the flow the way a pre-purchase upsell does.
Upsells can be targeted with the same product-level thinking as gifts — offer an accessory only when the matching product is in the cart, rather than to everyone.
Shipping method rules
A shipping method rule changes the delivery options Shopify has already calculated. Three actions are available:
- Rename — "Standard Shipping" becomes "Arrives in 3–5 days".
- Show / hide — remove options that do not apply.
- Re-order — move an option to a chosen position.
Apply to
Every rule has an Apply to scope that limits which kind of delivery option it can touch: all options, shipping rates, local delivery, carrier pickup points, local pickup locations, or retail.
Scope matters when names collide. A store with a "Warsaw" pickup location and a "Warsaw Warehouse" shipping rate can target one without disturbing the other only by scoping the rule.
Pickup locations
Local pickup locations can be renamed and hidden individually, the same as shipping
rates. Scope the rule to Local pickup locations only and match the
location's name, or use * to match every pickup location at once.
Shopify does not allow hiding a delivery method itself. You can hide individual pickup locations, but not the "Pick up" tab. Hiding every location may leave the tab visible with nothing inside it. This is a platform limitation, not an app one, and no checkout app can work around it.
How matching works
Rules match on the option's name, case-insensitively, and match anywhere in the name —
so Express matches "Express Shipping" and "Express Saver". Every
matching option is affected, not just the first.
Payment method rules
Payment method rules work identically — rename, show/hide, re-order — applied to the payment methods at checkout. The most common use is hiding cash on delivery above a cart value, or for particular countries.
Payment and shipping rules share the same condition set, so a rule means the same thing in either place.
Conditions reference
Conditions decide whether a rule applies. Combine them with Always, Any, All, None, or Any not.
| Group | Conditions |
|---|---|
| Cart | Total amount, subtotal amount, quantity, order weight |
| Customer | Tag, is logged in, is not logged in, order count, total spent |
| Products | Has a digital product, has a physical product, product tag, collection |
| Address | Country, state / province, city, ZIP / postal code |
| Date & time | Day of week, date |
Things worth knowing
-
Lists. Text conditions accept comma-separated values and match any
of them, so
PL, DE, FRis one condition rather than three. - Customer conditions need a signed-in customer. Tag, order count and total spent never match a guest checkout, because there is no customer record to read.
- Missing data never matches. If checkout has not collected a value yet, conditions on it are false — including negative ones. "City is not Warsaw" is false when no city has been entered, rather than true.
- Weight is in grams, whatever unit your variants use.
Plans and order limits
Every plan includes every widget and every rule type. The only difference is how many orders per month the plan covers.
| Plan | Monthly | Yearly | Monthly orders |
|---|---|---|---|
| Starter | $19 | $228 | Up to 100 |
| Growth | $29 | $348 | Up to 1,000 |
| Advanced | $59 | $708 | Unlimited |
Yearly billing is discounted 20% against the listed annual price.
Going over your order limit. Widgets are disabled once a store passes 25% over its plan's monthly limit, not the moment the limit is reached. Upgrading re-enables them automatically — you do not need to contact support or reconfigure anything.
Troubleshooting
A widget is not appearing in checkout
- Confirm the app block is placed in Settings → Checkout → Customize.
- Confirm the widget is enabled, not just saved.
- Check your order volume against your plan — see Plans and order limits.
A shipping or payment rule is not doing anything
- Check the Apply to scope. A rule scoped to pickup locations will never match a shipping rate, however the name is spelled.
- Check the condition. Customer conditions do not match guest checkouts, and a condition on data checkout has not collected yet is false.
- Check the name you typed actually appears in the option's name at checkout. Matching is on the displayed name.
A gift stayed in the order after the coupon was removed
This is why gift variants should carry a normal catalogue price — see the note under Coupon gifts. If you see it happen, contact support with the order number.
FAQ
Does this require Shopify Plus?
Checkout UI extensions — the widgets — require Shopify Plus, because Shopify limits checkout customization to Plus. Shipping and payment method rules work on all plans.
Does it work with checkout.liquid?
No, and it does not need to. The app uses Shopify's checkout extensibility, which is
the supported replacement for checkout.liquid.
Can I hide the "Pick up" option entirely?
No. Shopify allows hiding individual pickup locations but not the delivery method itself. See Pickup locations.
Will my rules survive a Shopify checkout update?
Yes. Rules are stored against your shop and applied by Shopify Functions at checkout, so they are unaffected by theme or checkout template changes.
What happens to my configuration if I uninstall?
Widgets and rules stop applying immediately. Re-installing restores your shop's settings, so an accidental uninstall is recoverable.
Something missing or wrong here? Email admin@thoughtbulb.dev and we will fix it.