Key takeaways
- Count the amount that will actually be charged today, not the lifetime value of the subscription. The bar is about this shipment.
- Mixed carts (subscribe + one-time) should use one remaining amount based on the current charge. Splitting two bars is how shoppers stall.
- Do not offer a "free gift with subscription" that only applies on order 4. If it is not in this box, it is not a cart goal.
- Prepaid plans (3-month, 6-month) can use a quantity-style goal ("add a one-time extra") rather than a shipping threshold that the prepaid already clears.
- If subscribers already ship free under your policy, the bar should say so and move to a second goal or hide, never show a fake remaining amount.
A cart goal on a subscription cart should count only what the shopper is charged today — the first-order price of each selling plan plus any one-time items — and compare that single total to one threshold. Do not total list prices, do not total the lifetime value of the plan, and do not split subscription and one-time items into separate bars. If your policy already ships subscribers free, the bar should say so and either move to a second goal or hide.
What is a cart goal on a subscription cart?
A cart goal is a threshold the shopper can reach by adding to the basket — free shipping over $50, a free gift over $80, gift wrap included over $70 — shown as a progress bar with a remaining amount. A subscription cart is any cart where at least one line uses a Shopify selling plan: subscribe-and-save, a prepaid three- or six-month plan, or a recurring bundle.
The complication is that a subscription line has more than one "price". There is the product's list price, the discounted price the subscriber pays today, the amount charged upfront on a prepaid plan, and the notional value of the whole relationship. Only one of those matches the checkout total, and the bar has to use that one.
Why subscription carts break naive progress bars
A $30/month coffee plan looks like a $30 cart, or like a $360 cart, depending on whether the app reads the selling plan or the product price. Both mistakes produce a remaining amount that does not match checkout, and a mismatch is the fastest way to make a shopper distrust the bar.
The three usual failures:
- List price instead of selling-plan price. The subscriber gets 15% off, the bar does not know, and it shows them further from the goal than they are — or closer, if the discount runs the other way. Either way the shipping line at checkout surprises them.
- Prepaid treated as one big cart. A three-month prepaid plan charged upfront clears almost any shipping threshold, but it is still one box today. Counting it toward a gift in this order is fine; implying three boxes of free postage is not.
- Ignoring the subscriber shipping policy. Many stores ship subscriptions free by default. A bar that still says "$22 away from free shipping" on those carts is wrong, and a bar that permanently says "$0 away" is dead chrome.
This shipment, not this relationship
Free shipping is about the box leaving today. A 12-month prepaid that ships monthly is not twelve boxes of postage credit. A subscribe-and-save item that charges $28 today is a $28 line, even if the merchant thinks in lifetime value.
If your goal is "free shipping over $50", a subscriber at $28 is $22 away — unless your policy actually ships subscribers free, in which case the bar should say that and stop pretending they need $22.
How to set up subscription-aware cart goals on Shopify
- Write down the real shipping rules. Open Settings → Shipping and delivery and note whether subscription products sit in their own shipping profile with a free rate, or share the general profile with a price-based free-shipping condition. The bar must mirror whichever is true.
- Define the today-total. Use the cart subtotal as Shopify shows it: selling-plan price for subscription lines, full price for one-time lines, after any discount code, before shipping and tax. If your bar app calculates its own total, confirm it reads the selling-plan allocation rather than the product price.
- Pick one threshold per market. A subscription store selling in three currencies needs three thresholds and three sentences, not a converted dollar figure. The threshold logic is the same as for any bar; the free shipping progress bar guide covers it.
- Decide what happens when subscribers already qualify. Either show a second goal (a one-time add-on or gift that ships in this box) or hide the bar for that cart. Never show a remaining amount for something they already have.
- Write the three copy states. Far from goal, in progress, unlocked — and, for subscriber carts that start unlocked, a version that opens with the confirmation and moves straight to the second goal.
- Test the ugly cart before launch. The checklist is at the end of this post.
Mixed carts: one remaining amount
One remaining amount. Always. A shopper with a $28 subscription and a $20 one-time bag of beans has a $48 today-total. If the threshold is $50, they are $2 away. Two bars ("subscription goal" and "one-time goal") is how you lose the add.
If your policy is "subscribers always ship free", the mixed cart is already unlocked. Offer a gift or a one-time extra as the second goal, or hide the bar. The mechanics of running two goals in sequence are covered in stacked cart goals.
Worked example
Say your threshold is $50 and your coffee subscription lists at $32 with 15% off for subscribers, so the subscriber pays $27.20 today.
| Cart | Charged today | Bar says |
|---|---|---|
| Subscription only | $27.20 | "You're $22.80 from free shipping" |
| Subscription + $20 one-time bag | $47.20 | "You're $2.80 from free shipping" |
| 3-month prepaid at $81.60 | $81.60 | "Free shipping unlocked — add a one-time extra to this box" |
| Subscription only, subscribers ship free | $27.20 | "Free shipping included — $12.80 from a free sample" |
Every number in that table comes from the checkout subtotal. If the bar and the checkout disagree by a cent, the bar is the one that is wrong.
Gifts that arrive later
"Free mug on your third shipment" is a retention offer. It is not a cart goal. Putting it on the progress bar implies it is in this order. When it is not, you get a ticket.
If you want a goal that pulls AOV on order one, the reward has to ship with order one.
Prepaid plans need a different goal
A prepaid plan usually clears the shipping threshold on its own, so a shipping goal has nothing left to do. Use a quantity-style or add-on goal instead: "Add a one-time extra to your first box and we'll include a free filter pack." The reward ships now, the copy is honest, and the bar still earns its space at the top of the cart.
Common mistakes
- Reading product price instead of selling-plan price.
- Counting a prepaid plan as several shipments' worth of postage credit.
- Showing "$0 away" forever on subscriber carts instead of hiding or switching goals.
- Advertising a gift that ships on a later cycle as though it were in this box.
- Different rounding between the bar and the cart in non-dollar markets.
- Launching without testing a cart that mixes selling plans, one-time items and a discount code.
How to measure whether it is working
Track three things: average order value on carts that contain a selling plan, before and after the bar; the share of subscription orders that also include a one-time line; and support contacts that mention shipping or a mismatch between cart and checkout. If the first two move up and the third stays flat, the bar is doing its job. If tickets rise, the total is wrong somewhere — fix the number before touching the copy.
Test the ugly cart
Before you launch, add: a subscribe item, a prepaid plan, a one-time SKU, a discount code, and a market with a different currency. If the remaining amount still matches the checkout summary, the bar is safe. If not, fix the total — do not launch a pretty bar on a wrong number.
Frequently asked questions
Should the shipping bar include future subscription charges?
No. The shopper is paying for this delivery. Future charges are not in this parcel and should not unlock this parcel's shipping. Count the first-order price of the selling plan plus any one-time lines, and nothing else.
What if subscription items already qualify for free shipping?
Then the bar's job on those carts is a second goal — a one-time add-on or gift that ships in the same box — or the bar should hide. A bar that says "$0 away" as a permanent state is dead chrome that trains shoppers to ignore it.
Can I require a subscription to unlock free shipping?
You can. Make that rule explicit in the bar ("Subscribe and this order ships free") so a one-time buyer is not staring at a number they cannot reach without changing selling plan. Hidden conditions are what generate support tickets.
Do selling plans break progress bars?
They do if the app totals list price instead of the current charge, or ignores selling plans entirely. Build a mixed cart with a subscription, a prepaid plan and a one-time product, then compare the bar to the checkout subtotal before you launch.
Does the Shopify cart subtotal already reflect the subscription price?
Yes. When a line uses a selling plan, the cart subtotal shows the price for this order, including any subscribe-and-save discount. A progress bar that reads the cart subtotal will be correct; one that multiplies product list price by quantity will not.
How do I test a cart goal with subscription products?
Build a cart that contains a subscription line, a prepaid plan, a one-time product, a discount code and a different market currency, then compare the bar's remaining amount to the checkout subtotal. If they match to the cent in every combination, the bar is safe to launch.



