Shopify integration
What your store actually gives us.
Shelf is deliberately narrow about what it asks for. This page lists exactly what we touch, how we stay in sync, and what we leave alone.
The only scope we request
Shelf requests read_products from Shopify. That is the complete scope list.
Scopes we explicitly do not request:
write_products— we don't modify your catalogread_orders,read_draft_orders— we don't see purchasesread_customers— we don't see your customersread_inventory— we don't see stock levelsread_financials,read_reports— we don't see revenue data
If a future feature ever requires a new scope, we'll ship a version bump that asks for it explicitly — never quietly.
What read_products actually gives us
This scope gives Shelf your product catalog — titles, descriptions, variants, prices, tags, images. The same product data that's rendered on your storefront for any shopper to see.
The short version: if you can't see it on your public site, Shelf doesn't see it either.
How we stay in sync with your catalog
Shelf subscribes to Shopify's product webhooks. When you create, update, or delete a product, Shopify notifies us; we update our copy accordingly. We don't poll, and we don't consume a measurable share of your Shopify API call budget after install.
No storefront injection
Shelf does not inject script tags, liquid snippets, theme app extensions, or any other frontend asset into your store. Your theme is untouched. Shelf lives entirely inside the Shopify admin.
Uninstall behavior
Uninstalling Shelf removes the embedded app from your Shopify admin. No writes happen on the Shopify side of that boundary — Shopify simply disconnects the app.
On our side, uninstall triggers the app/uninstalled webhook, which initiates a cascade delete of all merchant-scoped data: your catalog copy, the brands you followed, cached analysis, signals, and draft copy. Nothing is retained.
Shopify's three mandatory GDPR compliance webhooks — customers/data_request, customers/redact, shop/redact — are implemented as well.