Shopify billing API guides offer no guidance on how to monitor cancelled subscriptions and what's the best approach.
At first, we opted to the "app/uninstall" webhook initially and thought this would be a solution.
We later found out that RecurringCharges will be frozen if a user "frozen" his store which can be found using the "shop/update" webhook and checking the `plan_name` in the payload.
Later we found out that `plan_name` is not documented fully and can have many values that symbolize a closed store, e.g.
And we probably missed a few more.
We also found the "app_subscription/update" webhhook but there is no documentation for this one whatsoever and it seems it's not implemented yet.
Eventually, it seems the only option right now to identify if a RecurringApplicationCharge is cancelled with 100% certainty is by polling the API with a CRON which is not very efficient or simple.
Why is it so complicated and not documented?
So many documentation pages:
but none of those pages have any mention of dealing with cancellation.
Shopify team, please update your documentation.
shop/update will fire when a shop property is updated (including plan changes).
Thanks, but as mentioned there are many undocumented possible values for Shop's plan:
And the shop/update webhook does not tell us if the merchant will be billed for your app in the future or not.
Unless you can specify how to do it better?
This is exactly what the post is about - there's no documentation about how to handle subscription cancellations other than manual cancellations or uninstall of the app.
I agree with poster. It is extremely difficult on our end to sync up reliably with who actually has an active shopify subscription in a bulk fashion. It does seem the only "reliable" way is to iterate over all users on our end and query the shopify api billing system. Curious as to how anyone else is managing this on their end.
We've created a daily polling mechanism to check the billing API response for each and every user.
Moreover, the Shopify billing API will report a user's plan as valid even though his store is no longer active.
For example, a shop is to be billed on April 15th, but the shop is frozen/cancelled.
The billing API will still report the subscription charge as active and billed on April 15th.
The billing API will only report the billing is inactive on April 15th.
+1 for clarifying the states that `plan_name` can return
Strongly agree with the poster. We spent SO much time, trying to understand all the scenarios.
After doing that we subscribed to the appSubscriptionUpdate webhook, however, it seems we're not getting ANY of the expected notifications there when the shop updated the plan.
There is no documentation as to when this will fire, how the data is expected to look like, or anything at all basically. This is very frustrating...
This is what we came up with:
Shopify staff can we please get an update on this? Clarification on plan_name has been asked again and again without sufficient responses from staff. This isn't something that partners can figure out on our own and this is internal knowledge that isn't publicly documented.
I just asked a related question here.
This post also asked for a full list of plan_name values. No response from shopify staff and it was asked four years ago. Other Shopify partners tried their best to crowd source the various values but without context as to what plan_name can mean, it doesn't really help us.
Shopify Staff, please help us write better software for merchants. Tell us something, even if it's just that there are no plans to document plan_name at this time. It would be disappointing but still less frustrating than the silence.
Have you created a collection on your online store and experienced an issue with adding yo...By Ollie Aug 24, 2022