SafeSale · Blog

SafeSale plan cancelled or lapsed: what keeps working

What happens to live and scheduled Shopify sales when your SafeSale trial ends, you cancel or downgrade the plan: what stops, and what never does.

Pricing apps have a particular failure mode that other apps do not: when the subscription stops, the thing the app changed is still out there, on every product page, with real money attached. A support ticket we take seriously goes roughly "my card expired, the app locked me out, and my whole catalog is still 30% off". This post is the answer to that worry for SafeSale, written from the code rather than from the pricing page: which features are gated by the plan, which are not, and what you see in the app when the plan goes away.

The one-sentence version is in the app itself, on the Plan page: safety features, meaning preview, snapshots, restore and automatic end, are included in every plan and keep working if a plan lapses. The rest of this post explains what that means in each situation.

The only thing the plan gates is starting a sale

SafeSale checks your plan in exactly one place: the confirm step, when a draft becomes a scheduled or live sale. That check reads the current subscription from Shopify and asks five questions in order. Is there a plan at all? Are you under the plan's limit of live or scheduled sales (three on Starter, unlimited on Pro)? Is the sale under the plan's variant cap (2,000 on Starter, 20,000 on Pro)? If the sale uses per-variant rule overrides, is this Pro? If it is an A/B test, is this Pro? The first question that fails stops the confirm with a message, and the draft stays a draft.

Everything before that step runs without a plan. You can build a draft, pick collections and tags, set a discount and press Preview; the preview table computes every variant's new price and flags the blocked rows. Everything after that step also runs without a plan: the start job, the per-variant snapshots, the apply, the scheduled end, the restore. Those jobs are queued when you confirm and the job runner does not consult the plan again.

When there is no plan, the message at confirm is specific: Choose a plan to start sales (14-day free trial). Existing sales keep ending and restoring on schedule regardless. The second sentence is there on purpose.

What never depends on the plan

  • Scheduled ends. A sale with an end time has an end job waiting. It runs at that time and restores the snapshot (price rewrite) or deletes the automatic discount (checkout discount). No plan is consulted.
  • End sale now and restore prices. The button on every live sale works with or without a subscription. So does the Restore all original prices action on the Sales page, which ends every live and scheduled sale and restores every snapshot in the store.
  • Snapshots. They are written before the first price changes and kept for 90 days after an uninstall. The snapshot CSV post explains the columns; the download does not ask about your plan.
  • Cancelling a draft or a scheduled sale. Cancel is not gated. Neither is retrying a dead job.
  • The audit log. You can still read who changed what and when on every sale page.

The design rule behind the list: anything that moves prices back towards their original values must work in every state of the subscription, including no subscription. Anything that moves prices away from the original values is what you pay for.

Trial ends

Every plan starts with a 14-day free trial; the Plan page shows the plan name followed by "free trial until" and the date. When the trial ends, Shopify starts charging and nothing changes in the app. If you did not want to be charged and cancelled from Shopify before the date, you are in the next situation.

Cancelled, but the billing cycle is not over

Shopify App Pricing cancels at the end of the paid period, not at the moment you click. SafeSale reads that state and shows a banner on the Plan page headed Subscription ending: your plan ends on the date, sales that are live then still end and restore on schedule, and new sales cannot be started without a plan. Until that date the plan is active in every sense. You can confirm new sales, including ones scheduled to start after the plan ends; see the last FAQ for why they still start.

No plan at all

After the end date, or on a fresh install before you have picked anything, the home page shows a warning banner: Start your 14-day free trial. Pick a plan to start sales. Preview, snapshots and restore work without one. The sales list, the sale pages and every end or restore control look exactly as they did. The one difference is that pressing Confirm on a draft returns the choose-a-plan message instead of starting the sale.

Choosing a plan sends you to Shopify's own plan picker for the app, inside your admin, not to a page of ours. SafeSale learns about the new subscription two ways: Shopify sends an app subscription webhook, which makes the app re-read your plan immediately, and the plan status is in any case re-read from Shopify with a one minute cache whenever you open a page that needs it.

Downgrading from Pro to Starter

Three Pro features matter here: unlimited concurrent sales, the 20,000 variant cap and per-variant overrides (A/B tests are the fourth, and behave the same way). Because the plan is checked only at confirm, a downgrade changes nothing about sales that are already live. A tiered sale with per-variant overrides keeps its tiers; a 6,000 variant sale keeps all 6,000 variants discounted; five live sales stay five live sales. They end when they were going to end.

The constraint appears the next time you confirm. With five live sales on Starter, the check finds five against a limit of three and refuses with the message naming the plan and the limit; the sales-at-a-time post lists which statuses count. A draft with overrides on Starter is refused with Per-variant rule overrides need the Pro plan; remove the overrides (each row has a Use default option) or upgrade. Nothing is silently stripped from a draft to make it fit.

When SafeSale cannot reach Shopify billing

The plan is always read from Shopify, so a billing outage on Shopify's side would in principle make the app unsure what you are paying for. For that case SafeSale keeps the last plan it saw on your shop record and uses it only when the lookup itself fails, with a banner that says so: Couldn't reach Shopify billing; showing your last known plan. A genuine "no subscription" answer from Shopify is not treated as a failure; it means no plan, and confirm is blocked. An outage therefore never grants a plan you do not have, and never blocks the restore controls, which do not ask.

Uninstalling is the different case

Everything above assumes the app is still installed. Uninstalling is different because Shopify revokes the app's API access the moment it happens, so no end job can run and no restore can be written until you reinstall. That has its own post: stuck sale prices after uninstall. The short rule is to press Restore all original prices, wait for every sale to read Ended, and only then uninstall. Cancelling the plan does not have that problem: the app stays installed, keeps its access, and keeps its promises.

In one table

ActionNeeds an active plan
Create and edit a draft, run PreviewNo
Confirm a sale (start now or schedule)Yes, and the plan's limits apply
Per-variant overrides or an A/B test on a new saleYes, Pro
A confirmed sale starting at its scheduled timeNo
A live sale ending at its scheduled timeNo
End sale now, Restore all original prices, cancel, retryNo
Snapshot download, audit logNo

If you are evaluating SafeSale and the question in your head is "what is the worst case if I stop paying", the answer is: your next sale waits until you pick a plan. Your prices do not.

Frequently asked questions

My SafeSale trial ended and I have a sale running. Will the prices stay discounted forever?

No. The sale ends at the time you scheduled, and the original prices are restored from the snapshot, whether or not a plan is active at that moment. If the sale has no end date, the End sale now button and Restore all original prices still work without a plan. The only thing a missing plan blocks is confirming a new sale.

I cancelled the plan but it says it ends at the end of the billing cycle. Can I still start sales until then?

Yes. Until the date shown in the Subscription ending banner the plan is active and every feature works. After that date the confirm step refuses new sales with a message asking you to choose a plan, and everything already running finishes on schedule.

I downgraded from Pro to Starter with five live sales. Does SafeSale end two of them?

No. Limits are checked only when you confirm a sale. The five keep running and end on their own schedule. The next time you try to confirm one, the check finds five live or scheduled sales against a limit of three and refuses until you are below the limit or back on Pro.

Does a scheduled sale still start if the plan lapses before its start time?

Yes. Confirming the sale is the moment the plan is checked and the start job is queued; the job runner does not check the plan again. A sale confirmed on an active plan starts and ends as scheduled even if the plan has gone away in between.