Effective date: April 24, 2026
How our Shopify app handles merchant data. Designed to process as little as possible.
ERPClaw for Shopify is a free, open-source connector. Your orders, customers, products, and financial data are pulled by your self-hosted ERPClaw directly from Shopify and never pass through our servers.
ERPClaw is a self-hosted ERP. It runs on a server or computer that you control — not on our infrastructure. The Shopify App you install from the App Store is a thin pairing surface. Its only jobs are:
Your Shopify orders, customer records, products, transactions, and financial data never pass through our servers. They are pulled by your self-hosted ERPClaw directly from the Shopify Admin API, using access tokens stored on your own machine, and they stay on your own machine.
The App's Cloudflare Worker (hosted at shopify.erpclaw.ai) processes only the following:
| Category | Specific fields | Purpose |
|---|---|---|
| Shop identifiers | shop_domain (e.g. example.myshopify.com), shop ID, shop name, shop owner email, shop country |
Required to complete the Shopify OAuth handshake and to route status pushes to the correct admin UI. |
| OAuth tokens | Shopify offline access token (scoped: read_orders, read_customers, read_products) |
Forwarded once to your self-hosted ERPClaw during pairing; not retained by us after pairing. |
| Pairing credentials | A 6-character pairing code and a transient JWT. | Allows your ERPClaw to prove it's the one you're trying to connect. |
| Operational status blob | ERPClaw version string, timestamp of last sync, count of orders synced in last 24h, count of GL entries posted in last 24h, integer error count, ERPClaw's local URL (e.g. http://localhost:8000). |
Displayed in the status card inside your Shopify admin so you can see at a glance that your ERPClaw is alive. |
We do not process, store, or have visibility into: individual customer names, emails, phone numbers, addresses, order contents, line items, payment details, refund amounts, product data, inventory, or financial records. Those stay on your self-hosted ERPClaw instance.
We do not sell data. We do not share data with advertisers. We do not run analytics on merchant data. We do not use merchant data to train AI models.
| Data | Retention |
|---|---|
| Shop domain and install metadata | Until you uninstall the App, then deleted within 48 hours (per Shopify's shop/redact webhook). |
| OAuth access token | Deleted from our Worker within 60 seconds of pairing handoff; on uninstall, the token is revoked by Shopify. |
| Pairing code | 10 minutes, or until pairing completes (whichever is sooner). |
| Status blob | Most recent blob kept for display; rotated out after 24 hours. |
| Worker request logs (IP, path, status) | 7 days, for abuse and debugging only. |
Shopify requires every app to implement three compliance webhooks. Here is exactly how our Worker handles each.
customers/data_request
Shopify sends this when a customer (a shopper of one of our merchants) exercises their GDPR right of access. We do not hold any customer data — the App never receives customer records. The Worker logs the request, responds HTTP 200, and emails [email protected] a notification so we can confirm in writing to Shopify and to the merchant that no such data exists on our side. If the merchant's self-hosted ERPClaw holds relevant records, the merchant is the data controller for that data and must fulfil the request from their own instance.
customers/redactSame handling: we hold no customer data, so there is nothing to redact on our side. Worker logs the event and returns HTTP 200. A notification is forwarded to the merchant's support contact so they can run the equivalent redaction on their self-hosted ERPClaw if they have not already.
shop/redactFired 48 hours after a merchant uninstalls. On receipt the Worker:
shops, pairings, status).
All three webhooks verify the X-Shopify-Hmac-Sha256 signature against our shared secret before any processing. Unsigned or mis-signed requests are rejected with HTTP 401.
| Sub-processor | Role | Location |
|---|---|---|
| Cloudflare, Inc. | Workers runtime, KV storage, Pages hosting, DNS. | Global edge network; primary region: United States. |
We use no other sub-processors. We do not use a database, email provider, analytics vendor, or CRM that touches merchant data.
Data processed by the Worker is stored in Cloudflare KV, which is replicated across Cloudflare's global edge network. Cloudflare is certified under the EU–US Data Privacy Framework and offers Standard Contractual Clauses. Because the data we hold is limited to shop identifiers and operational counters (no customer data, no order content), cross-border transfer risk is low.
The merchant's actual business data — orders, customers, products, financial records — is stored on the merchant's own self-hosted ERPClaw instance, in whichever jurisdiction the merchant chooses to run it. That data never enters Cloudflare.
If you are a merchant using the App, you can at any time:
shop/redact and deletes your data within 48 hours.Material changes will be announced on the App listing and by email to the shop owner address we have on file. The current version is always available at https://www.avansaber.com/privacy-shopify. The parent AvanSaber Inc privacy policy at https://www.avansaber.com/privacy and terms of service at https://www.avansaber.com/terms apply to all AvanSaber products.
AvanSaber Inc.
Email: [email protected]
Security: [email protected]
Support: [email protected]
Schedule a free consultation with our experts to discuss your specific business challenges and how our solutions can address them.