Free shipping for subscriptions
Choose between a free shipping rate, a discount code, or a membership shipping discount, and fix free shipping that doesn't apply
You promised subscribers free shipping, but renewal orders are charging it. Or the opposite: renewals ship free when they shouldn't. Usually the cause is how the free shipping was set up.
There are three ways to give subscribers free or cheaper shipping, and they behave differently on renewals:
| Method | Where you set it | Good for |
|---|---|---|
| A $0 rate (or a rate that is free above an order price) | Shopify admin, in the Awtomic Subscription Shipping profile | Free shipping on every subscription order. The most reliable option. |
| A Shopify discount code | Shopify admin, Discounts | Free shipping on the first order, or a limited number of orders |
| An Awtomic membership shipping discount | Awtomic, Memberships | A shipping benefit for members, on subscription or one-time orders |
Most problems come from using a discount code where a rate would work better, or from discount settings that leave out subscriptions. This article helps you pick the right method and fix free shipping that doesn't apply, or applies when it shouldn't.
Symptoms
- "Recurring orders charge shipping even though we have a free shipping discount."
- "The first order had free shipping, the renewals don't."
- "Renewals still get free shipping, but the subscription is under the threshold."
- "The free shipping over $150 discount won't combine with the wine club discount."
- "Subscribers on a box are charged for delivery even though we have a free shipping discount."
- "Card on file orders fail with an HTTP error." On Shopify POS this can show only as "HTTP: 400".
- "Contract draft has invalid discount code" (Shopify), sometimes followed by the code, for example "INVALID: Contract draft has invalid discount code: CASE10".
- "The theme's free shipping bar is wrong for subscription items."
Quick checks
- Is free shipping set up as a rate in your subscription shipping profile? In Awtomic, go to Settings → Logistics and operations and select Manage rates. Shopify opens the Awtomic Subscription Shipping profile. (It isn't listed on Shopify's Shipping and delivery page, so always open it from Manage rates.) Look for a $0 rate, or a rate that is free above an order price. If yes, go to check 5.
- If you use a discount code, does it include subscriptions? In Shopify admin, go to Discounts, open the code, and check Purchase type. Is it Subscription or Both? Shopify explains these options in subscription discounts.
- Does the code apply to every renewal? On the same page, check the Recurring payments for subscriptions setting. Is it limited to the first payment? If yes, renewals pay full shipping.
- Can the code combine with other discounts? On the same page, check Combinations. Is Shipping discounts turned on? Build-a-Box codes that Awtomic created before April 2024 may not have it. See Shopify's page on how to combine discounts.
- Do your existing subscriptions show the free rate? Open a subscription in Awtomic and look at the shipping row. Rate changes don't reach existing subscriptions until you update them. See Bulk update shipping rates.
- Does the customer have a membership with a shipping benefit? In Awtomic, open Memberships, open the customer's tier, and check its shipping settings.
Recommended: a free rate in your subscription shipping profile
A $0 rate is not a discount. Shopify's discount combination rules don't apply to it, and it can't expire after the first payment.
- Make sure your subscription plans use the Awtomic Subscription Shipping profile. See Set up subscription-specific shipping rates.
- In that profile, add a rate for each shipping zone (Shopify's guide: set up shipping zones and rates):
- A $0 rate for free shipping on every subscription order.
- Or a $0 rate with a condition based on order price, for example free from $150, plus a paid rate below that.
- Save the profile.
- Move existing subscriptions to the new rate with a bulk update. New subscriptions get it at checkout.
If a member also has an Awtomic membership shipping discount, the member benefit is applied on top of the rate.
NoteRates in the subscription profile apply only to subscription items.
For free shipping on members' one-time orders, use a membership shipping discount that covers one-time orders, or a Shopify discount limited to a customer segment.
Causes and fixes
Free shipping discount is limited to the first payment
Why it happens. Shopify discount codes have a setting for subscription renewals, Recurring payments for subscriptions. When it limits the discount to the first payment, the first order is free and every renewal pays shipping. Shopify describes the options (first payment, a set number of payments, or all payments) in subscription discounts.
How to confirm. In Shopify admin, go to Discounts, open the code, and find Recurring payments for subscriptions.
How to fix.
- To keep shipping free on every renewal for new subscribers, choose the option that applies the discount to all recurring payments. A free rate in your profile is still the more reliable option.
- If you only meant the first order to be free, leave it. That is the expected result.
What to expect. Changing the code doesn't change subscriptions that already use it. Shopify saves a copy of the discount on each subscription when it is applied, and that copy stays the same when you edit, expire, or deactivate the code (subscription discounts).
To fix existing subscriptions, set their shipping with a bulk update, for example Define a custom rate of 0.
Free shipping discount carries over to renewals that no longer qualify
Why it happens. The reverse of the cause above. A code like "free shipping over $65" that applies to all recurring payments stays on the subscription. If the first order only qualified because of one-time items in the same cart, every renewal still ships free, even when the subscription alone is well under $65.
How to fix.
- Set the code's Recurring payments for subscriptions setting to the first payment only.
- Add a rate in the subscription profile that is free above your threshold. Renewals then get the right rate from the profile.
What to expect. Step 1 only affects new subscriptions. Subscriptions that already have the code keep their saved copy of the discount. Contact support if you need it removed from existing subscriptions.
The discount code doesn't include subscriptions
This one also breaks card on file orders.
Why it happens. A discount code with Purchase type set to One-time purchase can't be used on subscriptions. Card on file orders are processed as subscription orders in Shopify, even when the customer is buying once. Shopify accepts the code when it is added, then rejects it when the order is placed.
What you see.
- The card on file order fails when the card is charged.
- On Shopify POS, the message may show only as "HTTP: 400", a generic "request rejected" error.
- The underlying Shopify error is "Contract draft has invalid discount code", followed by the code. In plain words: Shopify won't allow this code on a subscription order. ("Contract" is Shopify's technical word for a subscription.)
How to confirm. In Shopify admin, go to Discounts and open the code the customer used. Check Purchase type. Check your other codes too. Case discounts, staff discounts, and trade discounts are often set to one-time only.
How to fix. Choose one:
- Set Purchase type to Both. If the discount should apply only once, also limit it to the first payment under Recurring payments for subscriptions.
- Or remove the code and apply the same amount as a manual discount. In the Awtomic admin card-on-file order, use Add discount in Confirm and create order. On Shopify POS, add a percentage or amount discount to the POS cart before you open the Awtomic card-on-file tile, instead of a discount code.
What to expect. After you fix the code, or remove it, the order can be placed again. The failed attempt doesn't create an order.
If the code already includes subscriptions and you still see "Contract draft has invalid discount code", for example when a customer edits a box, contact support. A very large manual discount on the subscription can cause the same error.
Older box discount codes can't combine with shipping discounts
Why it happens. Awtomic creates Shopify discount codes for Build-a-Box boxes. Codes created since April 2024 combine with shipping discounts. Older box codes, or a code Shopify wouldn't let Awtomic set combinations on, may not. Subscribers then pay shipping although you have a free shipping discount.
How to confirm. In Shopify admin, go to Discounts, open the box's code, and check Combinations.
How to fix.
- Turn on Shipping discounts under Combinations and save.
- Fix subscriptions that were already charged with a bulk update.
Using a free rate in your subscription profile avoids this cause completely.
A membership discount and a free shipping discount don't both apply
Why it happens. Awtomic applies membership discounts at checkout through a Shopify app discount (Shopify calls this a discount function). When a store-wide free shipping discount and a membership discount should both apply, Shopify's combination rules decide what the customer gets. Both discounts must allow the combination. Discounts made with checkout apps are the least reliable.
How to fix.
- Replace the free shipping discount with a rate in your subscription profile that is free above your threshold. A rate isn't a discount, so combination rules don't apply.
- If you need the discount for one-time orders, create a free shipping discount in Shopify Discounts rather than in a checkout app, and turn on the combinations it needs.
- Test with a customer who has the membership: place an order above the threshold and check both discounts.
Membership shipping discount settings exclude the order
Some stores have a Shipping discounts section on each membership tier. In Awtomic, open Memberships, open the tier, and find Shipping discounts. Check these settings:
| Setting | What to check |
|---|---|
| Shipping discount type | Free shipping, Percentage, Fixed discount, or Specify shipping rate. Specify shipping rate only lowers the rate: "Shipping rate will only adjust downward. If you specify a rate higher than the rate from Shopify, it will be ignored." |
| Discount applies to | Recurring and one-time orders, Recurring orders only, or One-time orders only. |
| Minimum cart requirements | With Minimum cart total, orders below the total don't get the benefit. |
| Discount limits | With Limit to shipping rates, the benefit only applies to rates on the side of the Shipping rate limit you chose (Below or Above). |
If your tier shows a single Free shipping on all orders switch instead, your store uses the older setup.
How the member benefit works with rates you set yourself:
- If you set a rate with the Shopify Flow action Update shipping rate and enter the rate yourself, the membership discount isn't applied to that rate.
- A custom rate you set on a subscription keeps the membership benefit. The benefit is applied on top of your custom rate.
Renewals get free shipping below your threshold
Why it happens. For checkout, Shopify compares your free shipping threshold with the order total after discounts. When Awtomic asks Shopify for a subscription's shipping rate, Shopify compares the threshold with the total before discounts. A $159 subscription with 40% off is $95.40, but Shopify still returns the free rate over $150.
How to confirm. Compare the subscription's product total before and after discounts with your rate's price condition.
How to fix. There is no setting in Awtomic or Shopify that changes this today.
- For one subscription, set a custom rate. In Awtomic, open the subscription, select Edit shipping rate on the shipping row, choose Custom shipping rate, and enter the amount. Awtomic doesn't ask Shopify to replace a custom rate, so it should keep the amount you set. See Edit the shipping rate in a subscription.
- To ask Shopify to change how thresholds are checked, open a case with Shopify Support.
Free shipping on a theme's progress bar is wrong for subscription items
Your theme calculates its free shipping bar, not Awtomic or Shopify checkout. The bar may not know about subscription discounts or about your subscription profile. Ask your theme developer to adjust it. The rate charged is the one from checkout.
What Shopify controls
| Behavior | Owner | Workaround |
|---|---|---|
| Discount codes need Subscription or Both to work on subscription and card on file orders | Shopify | Set Purchase type to Both |
| Whether a discount applies to the first payment or to all renewals | Shopify (discount setting) | Set it on each code |
| Which discounts combine | Shopify combination rules | Use a free rate instead of a discount |
| The subscription rate quote checks thresholds before discounts | Shopify | Custom rate on the subscription |
| Automatic discounts don't apply to subscription items | Shopify | Use a subscription profile rate |
| Existing subscriptions keep their stored rate | Shopify stores the rate on the subscription. Awtomic doesn't ask Shopify for the rate again each cycle by default | Bulk update |
| Existing subscriptions keep a saved copy of their discount code | Shopify | Bulk update the shipping rate, or contact support |
| Build-a-Box codes created before April 2024 may not combine with shipping discounts | Awtomic | Turn on Shipping discounts under Combinations |
If you use an AI agent
- Ask your agent to open each discount code in Shopify admin and report Purchase type, the recurring payments setting, and Combinations.
- With read access to the Shopify Admin API, it can read the same fields from a free shipping code:
appliesOnSubscription,appliesOnOneTimePurchase,recurringCycleLimit, andcombinesWith { shippingDiscounts }onDiscountCodeFreeShipping. - Ask it to list the rates in the Awtomic Subscription Shipping profile for one zone, with their price conditions.
- See Debug subscription shipping with your AI agent.
Still stuck? Send support this
- Your shop domain (yourstore.myshopify.com).
- The subscription or order IDs, and the customer's membership tier if any.
- The discount code name, with screenshots of its Purchase type, recurring payments setting, and Combinations.
- The exact error text, for example "Contract draft has invalid discount code: …".
- The bulk update ID, if you ran one.
- Screenshots of the plan's Enable subscription shipping setting and the profile's zones, rates, and locations.
- What you already checked from this article.
Related
- Set up subscription-specific shipping rates
- How a subscription's shipping rate is set and when it changes
- Bulk update shipping rates
- Mixed carts: subscription and one-time items
- Applying a Shopify discount code to a subscription
- Set up a membership tier
- Subscription shipping troubleshooting
- Debug subscription shipping with your AI agent
Updated 5 days ago
