Appearance
Billing Verification Checklist
Use this procedure before each submission or release to ensure the Shopify Billing integration behaves as expected.
Prerequisites
- Development store with app installed.
- Access to Shopify Admin as the store owner (required to approve charges).
- Ensure deployment has
NODE_ENV=productionequivalent (test flag disabled) or temporarily overrideprocess.env.TEST_MODEto0for validation.
Subscription creation
- From the app, navigate to Usage and confirm subscription-required behavior is active (Upgrade/Manage plan CTAs route to billing).
- Click Upgrade → redirects to
/app/billing. - You should land on Shopify’s hosted Managed Pricing page for the app (top-level redirect).
- Select a plan (Starter / Standard / Advanced) and confirm the charge.
- Return to the app and verify Usage reflects the upgraded plan name and limits.
- In Shopify Admin → Settings → Billing → App and sales channel charges: verify the subscription entry exists.
Subscription cancellation
- In Shopify Admin → Settings → Billing → App charges, cancel the Bulk Product Editor subscription.
- Refresh the app and confirm subscription-required gating returns (redirect to billing or Upgrade CTA).
- Confirm
/app/billingloader reflects no active subscription.
Usage gating
- With Starter plan active, run jobs until the cap is reached (or set cap low via
/app/usagedeveloper controls in staging). - When cap exceeded, app redirect to Usage page with error banner and Upgrade button.
- After subscribing, attempt job creation again → succeeds without redirect.
Edge cases
- Duplicate subscribe click: ensure mutation handles existing active subscription gracefully.
- Billing confirmation URL missing: app redirects back to
/app/billingwithout crashing. - Subscription cancellation via API/webhook: monitor
app_subscriptions/update(optional) or re-run loader to pick up changes.
Document results (screenshots or notes) and attach to release checklist.