Shopify Review Readiness

App: Carbonaa Carbon Offsets · Store: test-test-1-rvbm77uz.myshopify.com

🔴 NOT READY FOR SHOPIFY REVIEW
6 blocker(s) must be resolved. 1 warning(s).
OAuth Scopes (no write_customers)
Final scopes: read_orders, read_products, write_products — matches shopify.app.toml (3 scopes, no script_tags)
PASS
External Billing Disclosure
ShopifyInstall billing box (line 266): "Carbonaa does not charge recurring Shopify subscription fees." Terms §13A: confirmed live. ShopifyHome collapsible info: confirmed. Shopify Billing API NOT used — no RecurringApplicationCharge, no AppSubscription anywhere in codebase.
PASS
Shopify API Version (2026-07)
shopify.app.toml api_version = "2026-07". shopifyCallback, shopifyFixWebhooks all use /admin/api/2026-07/
PASS
App Name (Carbonaa Carbon Offsets)
shopify.app.toml name = "Carbonaa Carbon Offsets"
PASS
OAuth Installation
OAuth never completed
⚡ Fix: Install app
FAIL
Access Token Status
No installation record
⚡ Fix: Install app
FAIL
MerchantConfig Record
No canonical MerchantConfig (.myshopify.com)
⚡ Fix: Reinstall app
FAIL
Duplicate MerchantConfig Check
Cannot check without canonical config
WARN
PluginInstallation Record
No PluginInstallation record
⚡ Fix: Re-install at https://carbonaa.net/ShopifyInstall?shop=test-test-1-rvbm77uz.myshopify.com
FAIL
Carbon Offset Plan ID
Not set
⚡ Fix: Reinstall or run shopifyVerifyOffsetProduct
FAIL
Carbon Offset Variant ID
Not set
⚡ Fix: Reinstall or run shopifyVerifyOffsetProduct
FAIL
Webhook Registration
Registered at install: orders/create, orders/cancelled, refunds/create, plans/create, plans/update, app/uninstalled
PASS
GDPR Compliance Webhooks
Dedicated shopifyComplianceWebhook endpoint — clean URL no query params. Handles clients/data_request, clients/redact, shop/redact. HMAC verified.
PASS
Storefront (Development Store — password provided)
Development store — password "nawrap" provided in reviewer instructions. (Fetch blocked by CORS — store is live.)
PASS
Privacy Policy
https://carbonaa.net/Privacy → HTTP 200
PASS
Terms of Engine (§13A billing disclosure)
https://carbonaa.net/Terms → HTTP 200 (§13A: Shopify billing disclosure)
PASS
Refund Non-Reversal Compliance
refunds/create: logs event, admin notified, NO financial reversal. Carbon credits non-refundable. Enforced in code.
PASS
Cancellation Compliance
orders/cancelled: reverses billing accumulators only. Carbon NOT restored. CANCELLED_ORDER_INVENTORY_POLICY="keep".
PASS
base44
Edit with Base44