Why a subscription and a one-off can cost two lots of postage

A customer adds a one-off to their subscription order and pays postage twice. It is a familiar complaint, and the cause is not the one most people name — Shopify's own documentation says the method they chose covers both. Here is where the second charge actually comes from, and what to check before anybody builds anything.

Start by checking what is actually charging twice, because Shopify says it should not be. Its own guidance on subscriptions is explicit:

"When your customer selects an available shipping method on an order that includes subscriptions, that shipping method applies to the initial delivery of any subscriptions in the order as well as any one-time purchases."

One method, covering both halves of the basket. So if your customers are paying twice, something in your shop is adding the second rate — and Shopify documents exactly where that comes from:

"When the order contains a combination of subscriptions and one-time purchases, the app's shipping rate is added to the customer's selected shipping rate for the one-time purchases."

That is the usual answer. If your subscription app supplies its own shipping rate, a mixed basket gets that rate plus the one the shopper chose. Not a Shopify bug, not something to route around with a rule — a setting in the app, or a delivery profile it created.

And worth saying plainly: no Shopify page says a mixed cart is charged twice by default. What Shopify documents is the condition under which it happens — shipping rates that came from the subscription app rather than from your own settings. The support replies you will find describing double charging are describing that condition, not a rule of the platform. Before you pay anybody to fix it, put a subscription and a one-off in a basket and read the checkout.

Why the order splits in two at all

The split itself is real, and it is not the same thing as being charged twice. A cart carrying both kinds of item is divided into delivery groups, and Shopify's own types name them: one group for one-time purchases and first deliveries, another for the recurring part. That is why the next month's delivery behaves independently — "Recurring shipments are billed and fulfilled separately, even if they have overlapping delivery dates."

So the first order can be one shipment at one price. The repeats are their own orders, each with their own postage, which is usually what you want and occasionally a surprise to a customer who expected "free shipping" to mean forever.

And this is probably why the complaint exists. At checkout the shopper can see "the total cost of shipping for their subscriptions and the total cost of shipping for one-time purchases" — two postage figures, on one screen, for one order. Somebody reading that quickly has every reason to think they are being charged twice. Before you treat it as a billing fault, check whether what they saw was one charge presented in two halves.

Customers paying postage twice? Describe what they should be charged →

What to check, in order

  1. Where do the subscription's shipping rates live — in your admin, or in the app? Shopify draws the line exactly there: "If you created shipping profiles in your Shopify admin for your subscriptions, then a single shipping rate applies to the entire order." Rates the app created are the ones that get added on top. This is the whole question, and it usually ends the investigation.
  2. Then go and look in the app, not in your settings. Rates attached to a selling plan "don't display in the Shipping and delivery settings in the Shopify admin" — so a merchant who checks Settings → Shipping and finds nothing unusual has not ruled anything out. They are configured where the app keeps them. (And if what you find is two rates that should have been one, how Shopify combines rates across profiles is the other half of this.)
  3. What do the repeats cost? Not necessarily what you set. "After the initial delivery, recurring shipments default to the least expensive available shipping method." The price of every later delivery is the price of your cheapest rate, whatever you intended the subscription to pay.
  4. Then, and only then, consider a rule. If after all that a mixed basket still charges twice and you want the extra taken off, that is a delivery discount, and it is a checkout build — see below.

Which route is yours

What you found What to do
The app supplies its own rates Turn them off, or price them knowing they add
The rates live in the app, not your admin Edit them there — they never appear in Settings → Shipping
You want the repeats to ship free Make your cheapest available method free — that is the one the repeats take
You want the second rate waived only in mixed baskets A rule, built for you — see below
Old advice says use Shopify Scripts Scripts stopped running on 30 June 2026

That last row matters more than it looks. Most of the guidance you will find for this problem was written for Shopify Scripts, which stopped executing entirely on 30 June 2026 and could not be edited after 15 April. If a page tells you to write a shipping script, it is describing a shop that no longer exists.

What Shopivibe does

This is often not a build at all. The checks above resolve most cases, and if yours is one of them, a person here says so.

Where a rule is the answer, you describe the outcome: "when somebody adds a one-off to their subscription order, they should pay one postage, not two."

Two things to say plainly.

The conditional version is a checkout build. "Take the extra off only when the basket holds both a subscription and a one-off" is a rule that reads which part of the order each delivery group belongs to — Shopify's own delivery-customization input says so on the group, as ONE_TIME_PURCHASE or SUBSCRIPTION — and a person here writes it for your store. One thing to know about any such rule: it reaches the first checkout only. Later renewals are created by the app, with nobody standing at a checkout, so the repeats' postage is set by your cheapest method, as above.

Whether a zeroed rate disappears from checkout or shows as a zero line is not something Shopify documents — it is one test order to find out in your own shop.

A checkout rule is built for you rather than switched on: a person here takes it on straight away and has it working in your store within 24 hours.

Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.

Know what one order should cost to post? Describe it in your own words →

Checked against Shopify's documentation and the App Store on 21 September 2026.