Best practices for implementing subscription for a public admin app?

Topic summary

A first-time Shopify app developer is seeking guidance on implementing subscription billing for a public admin app launching next month.

Proposed Implementation Flow:

  • Trigger appSubscriptionCreate mutation when user clicks subscribe
  • Extract confirmation URL from response and route merchant to it
  • Merchant accepts payment and gets redirected to specified returnUrl
  • Save merchant subscription status to database

Key Question:
How to persist merchant subscription data in the database after successful payment?

Suggested Solution:
Add query string parameters to the returnUrl, then create an API endpoint that:

  • Reads data from query parameters
  • Saves subscription info to database
  • Redirects to app dashboard

The discussion remains open with one community response providing technical implementation advice. The developer plans a single $500 USD/year subscription tier.

Summarized with AI on November 8. AI used: claude-sonnet-4-5-20250929.

Hey guys, first time App developer and going to launch an app maybe next month.Is there a walkthrough or general best way to implement a subscription plan for a Public Admin App once a merchant installs it?

I assume the steps might be something like this:

  1. Users clicks a subscribe button

  2. This fires the appSubscriptionCreate mutation

  3. We extract the Confirmation URL from the response in the mutation after Step 2,

  4. Route the merchant to the Confirmation URL

  5. They accept the payment and are then re-directed to the returnUrl as specified in appSubscriptionCreate mutation.

    I assume it will be for the app developer to somehow save this merchant into our DB that this merchant has subscribed to our app?

    For context, I will only have one subscription plan of 500 USD paid once per year.

Hi @triplesingle ,

  • I think you could add more data to returnUrl as query string params

  • Create logic for that URL, I mean, an API to read data from query string params, save to db, and finally redirect to app dashboard.

Hope this is helpful to you.

1 Like