App Store review 1.2.2: the app didn't register the chosen plan. App Pricing doesn't populate
currentAppInstallation.activeSubscriptions or send billing webhooks, so the plan now comes from the
Partner API activeSubscription query. Shops with no subscription (new install or reinstall) are sent
to Shopify's plan selection page; Partner API failures never redirect or downgrade.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bundle pages stay styled and functional when the app embed is off (e.g. on a draft
theme). Listing screenshots captured from the dev store and rendered at 1600x900.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Protected customer data (Level 1): order ids are stored as keyed HMACs, order numbers
and ids for admin links as AES-256-GCM ciphertext (DATA_ENCRYPTION_KEY). New public
/terms page with processor terms; privacy policy links to it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
shopify app config link replaced shopify.app.toml with the new app's bare config.
Kept the new client_id and extension uids; restored the name/handle, app proxy,
all webhook subscriptions incl. GDPR compliance topics, and api_version 2026-10.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rust discount function (one automatic discount evaluating all offers in priority
order, parity with the Odoo engine), React Router admin with Polaris, theme app
extension and app proxy pages, webhooks incl. GDPR, managed-pricing limits, and
a Docker Compose stack (Postgres + Caddy HTTPS) for a single VPS.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>