When a change takes effect
“Higher” and “lower” compare list prices before any discount: the monthly prices for a monthly choice, the yearly prices for an annual one. A merchant who pays less because of a discount code is still upgrading when the new plan’s list price is higher.
A few situations make a change apply at once, whatever its direction:
- The store is in a free trial. Nothing has been paid yet, so there is no period to keep. See During a free trial.
- The subscription is frozen. Shopify is not collecting, so there is no paid period either.
- The store’s billing currency changed since it subscribed. A move to another plan starts at once, billed in the new currency.
- Shopify reports no end date for the current period. Meridian applies the change at once rather than guess one.
Annual plans
An annual subscription is paid a year ahead. A move to a cheaper annual plan, or from annual to monthly billing, waits for the end of that paid year, which can be up to 12 months away. A move from monthly to annual starts at once.Versions of the same plan
A switch to another version of the merchant’s current plan applies at once when the version takes nothing away: only the price is lower, or every term is the same or better by the rules in Editing a plan with subscribers. A cheaper version that also removes a feature, lowers a limit or an included quantity, or raises a usage rate is a downgrade like any other, and waits for the end of the paid period.The effective date
The change takes effect at the end of the current billing period, as Shopify reports it at the moment the merchant makes the change. Until that date the merchant keeps everything the current plan gives: features, limits, included usage and usage terms. On the date, the new plan takes over. Its usage period starts on that date, so the merchant’s allowance refreshes with the switch.Downgrades
- The merchant picks a cheaper plan. Meridian creates the new subscription at Shopify for the next billing cycle, and the merchant approves it on Shopify’s screen as usual.
- Once approved, the downgrade is scheduled. The merchant stays on the current plan, and sees the date of the change on the pricing page and the account page.
- On the date, the store moves to the new plan. Shopify bills it from that cycle on its own.
Cancellations and moves to a free plan
A cancellation needs no approval. It is scheduled as soon as the merchant confirms it, and the plan stays active until the end of the paid period. A move from a paid plan to a free plan is a cancellation too: the paid plan runs to the end of its period and the free plan starts on that date. 24 hours before the date, Meridian cancels the subscription at Shopify, so Shopify never bills the next renewal. It first bills any overage the store has run up. From that moment the cancellation can no longer be undone, but the store keeps its plan until the date. A cancellation requested within those last 24 hours is cancelled at Shopify at once. The store still keeps its plan until the date, and the cancellation cannot be undone. A store on a free plan has no Shopify subscription and no paid period, so cancelling it applies at once. Cancelling again while a cancellation is scheduled changes nothing and answers with the same scheduled change.Keeping the current plan
Until a scheduled change takes effect, the merchant can undo it with Keep on the pricing page or the account page.
Shopify may end the current subscription as soon as the merchant approves a downgrade, or keep it running until the date. Meridian reads which one happened when the merchant clicks, and
scheduledChange.undo.requiresApproval on entitlements.subscription tells your UI in advance.
When the merchant has to approve again, the new subscription repeats the terms they approved the first time: the same plan version (even one you have since switched to draft), price, currency rate, approved usage cap (not a raise still waiting for the merchant’s approval), and the discount for the cycles it had left. It continues the same usage period, and Shopify bills nothing for it before the date already paid for. If the merchant never approves it, the downgrade still happens on the date.
A cancellation that replaced a scheduled downgrade goes back to that downgrade when undone, with the same date and nothing new to approve.
Once Meridian has cancelled at Shopify, Keep disappears. A merchant who clicks it on a page loaded earlier is told “Cancellations cannot be undone in the final 24 hours of the billing period.” The merchant can still pick another plan, and can subscribe to the same plan again once the period has ended.
A click that arrives just after the date finds nothing left to undo: the change has taken effect. The pricing and account pages then refresh and show the store’s new plan, or no plan after a cancellation.
After Keep , the pages wait until Meridian reports nothing scheduled before they show the result. See the account page for what the merchant sees meanwhile.
Choosing again while a change is scheduled
The merchant’s latest choice replaces the scheduled change. It is judged against the plan the store has now, exactly like a first request:
A choice that needs the merchant’s approval replaces the scheduled change only once approved. If the merchant declines it, the scheduled change stays as it was. Picking the current plan again is refused the same way as picking the scheduled one: Keep is the way back.
When the merchant makes a new choice, Keep included, Meridian cancels at Shopify any approval screen left open from an earlier choice, and cancels it again if the merchant approves it later anyway. The one exception: if that late approval has already replaced the store’s subscription at Shopify, Meridian keeps it as the merchant’s latest choice, and it takes effect at once. A store is never left without a plan because an older screen was approved.
Uninstalling your app ends the subscription at once, as it always has, and drops any scheduled change with it.
When a request has to wait
Meridian handles one plan change per store at a time. When the date of a scheduled change has passed and Meridian has not applied it yet, the next subscribe, cancel or Keep applies it first. If that cannot complete, or if another subscribe, cancel, Keep or cap change for the same store is still going through, the request is refused with “Another plan change for this store is still going through. Try again in a moment.” Nothing has changed, and the merchant can simply try again. See Errors.Not paying twice
Sometimes the current subscription has already ended at Shopify when the merchant makes a new choice: inside the last 24 hours of a cancellation, or after Shopify ended it at the approval of a downgrade. The new subscription then starts at once, but Shopify bills nothing for it before the date the merchant has already paid up to. Shopify’s approval screen can show those days as trial days. They are not a trial for Meridian. They fire no trial automation, do not appear in the Trials report, and do not use up the store’s one trial. The date also carries over: a merchant who changes plan again before it is reached still pays nothing before it. You forgo the price difference for those days, and the merchant never pays twice for the same period.During a free trial
During a trial, downgrades and cancellations apply at once, like every other change. A move to another paid plan keeps the trial going rather than restarting it. The store gets what the new plan would have given if the merchant had picked it on the first day: the new plan’s trial length minus the trial days already used, never less than zero. The trial clock starts on the store’s first trial day and never restarts. For a merchant three days into a 14-day trial of Basic:
A cancellation or a move to a free plan during a trial applies at once, and the store’s trial is spent: a later subscribe starts billing at once.
What counts during a scheduled change
Until the date, the store counts on its current plan everywhere: feature gates, limits, the usage allowance and its overage, MRR, average revenue per subscriber, subscriber counts, segments and discounts.- Plan protections. A store that has approved a scheduled downgrade counts as a live subscriber of its new plan from the approval, not from the date, and so does a store scheduled to move to a free plan. Both plans stay locked and cannot be deleted while that store holds them, because the merchant has already agreed to their terms.
- Usage cap. The merchant can raise the cap while Shopify bills the current subscription. In the last 24 hours of a cancellation, or after Shopify ended the subscription at the approval of a downgrade, there is no subscription at Shopify to raise it on, and the account page says the subscription is not ready for cap changes. A raise the merchant has asked for but not approved yet stays valid while the current plan is kept: approving it on Shopify still applies it, and keeping the plan with nothing to approve does not drop it. When the plan change ends that subscription (on the date, or when a new subscription takes over from it, such as Keep with a new approval), the raise is dropped. It does not carry over: the new plan starts with its own cap, and the merchant asks again there. Keep repeats the cap the merchant had approved, never the raise.
- Overage. Usage over the allowance is billed on the current subscription as usual. When Shopify no longer bills that subscription (in the last 24 hours of a cancellation, or after Shopify ended it at the approval of a downgrade), or refuses the usage charge, the overage is recorded and not billed. It is never charged later.
- CRM analytics. Revenue, the store list’s MRR and the other CRM analytics follow Shopify’s own charge history. They record the switch when Shopify does, which can be when the merchant approves a downgrade rather than on the date, and a cancellation when Meridian cancels at Shopify, 24 hours before the date.
Automations
A change that applies at once fires its trigger at once, as before, and only one. Shopify reports the new subscription’s activation and the old one’s cancellation at the same moment, and Meridian reads them as one change whichever it processes first: the plan the store left never fires Subscription is cancelled. When the cancellation comes first, Meridian holds it for 5 minutes, waiting for the new subscription to activate. An activation that only comes after that reads as a store that cancelled and then reactivated. A scheduled change fires by the same direction its card shows on the pricing page, which compares monthly list prices (the yearly ones when either plan has no monthly price). A move from an annual plan to a dearer monthly plan is the one scheduled change that can cost more: it waits for the end of the paid year, then fires Subscription is upgraded. The approval of a scheduled change fires nothing, and neither does Keep .
A switch between versions of one plan fires by what changes, not by price. When only the price differs, it fires nothing: for the merchant it is the same plan at another price. A version that takes something away fires Subscription is downgraded, and one that only adds fires Subscription is upgraded.
Building on it
The pricing page and the account page show the scheduled change and the Keep button from SDK 3.2.0. Older SDKs show neither: the merchant sees the current plan until the date, with no sign of the change, so upgrade the SDK. From a 2.x SDK, the upgrade crosses 3.0, which changed how forwarded webhooks are verified. See Forwarded webhooks. For a UI of your own, everything is in the snapshot and the responses:entitlements.subscriptionholds the current period’s end, the trial end, the scheduled change, and a preview of when a cancellation would take effect. See Data types.- Each plan’s
changePreviewgives the direction and the timing of a move to it, per billing interval. subscribeandcancelSubscriptionanswer with the timing they applied and the date.undoScheduledChange()is Keep , onuseMeridianand on the server client.