Privacy policy
Last updated: 25 August 2026
SKUPrep is a Shopify app that audits a merchant's product catalog and applies merchant-approved corrections to it. This policy describes exactly what it processes and what it does not.
read_products and write_products access scopes. It has no access to
customers, orders, checkouts, payments or storefront visitors, and it never asks for them.
Who is responsible
The data controller for merchant account data, and the data processor for catalog data, is the operator of SKUPrep. For any privacy question or request, write to [email protected]; requests are answered within 30 days.
What is processed
| Data | Why | Retention |
|---|---|---|
| Shop domain, shop name, install date, plan | Identify the installation, apply plan limits, bill correctly | Until 48 hours after uninstall |
| Shopify access token | Read and write the catalog on the merchant's behalf | Encrypted at rest (AES-256-GCM); revoked and deleted on uninstall |
| Product catalog: titles, descriptions, vendors, tags, categories, options, variants (SKU, barcode, weight), images and their alt text, metafields | Run the audit, propose fixes, verify applied changes | Deleted 48 hours after uninstall |
| Findings, scores, proposals, change log | Show the score trend, let the merchant review and roll back changes | 12 months, then pruned; deleted with the catalog on uninstall |
| Aggregate AI token counts per shop and month | Enforce plan limits and monitor cost | 12 months |
| Technical logs (job ids, shop id, timestamps, errors) | Operate and debug the service | 30 days |
Product prices and inventory quantities are read only to display context alongside a finding. They are never written, and are not used for any other purpose.
Sub-processors
| Provider | Purpose | What it receives |
|---|---|---|
| Shopify | The platform the catalog lives on | The API calls SKUPrep makes on the merchant's behalf |
| Anthropic (Claude API) | Optional AI features: attribute extraction, category suggestion, description rewriting, image alt text | Only the product text and image URLs of products being processed. No shop identifiers, no account data. Anthropic does not train on API inputs. |
| Hosting and database provider | Runs the application and stores the data above | All data listed above, within the EU |
| Sentry | Error monitoring | Error traces with shop and job identifiers. Access tokens and personal data are redacted before sending. |
AI features can be switched off entirely in the app's settings. With them off, no data leaves the application other than to Shopify itself.
Where data is stored
Data is stored within the European Union. Transfers to sub-processors outside the EU are covered by Standard Contractual Clauses.
Deletion
- Uninstall. Sessions and access tokens are revoked immediately. All catalog data, findings, proposals and change logs are deleted 48 hours later. The delay exists so that a merchant who reinstalls within two days does not lose their history.
- On request. Shopify's mandatory
shop/redactrequest triggers the same deletion. A merchant can also request deletion directly by email. - Customer data requests. Shopify's
customers/data_requestandcustomers/redactwebhooks are implemented and return successfully, but SKUPrep holds no customer data, so there is nothing to return or erase.
Security
- Access tokens are encrypted at rest with AES-256-GCM and are never written to logs or error reports.
- All traffic is served over TLS.
- Every webhook is verified with its HMAC signature before it is acted on.
- Every database query is scoped to a single shop; there is no code path that reads another shop's data.
- Databases are backed up nightly and backups are retained for 14 days.
Your rights
Under the GDPR a merchant may request access to, correction of, export of, or erasure of their data, and may object to or restrict its processing. Write to [email protected]. A complaint can also be lodged with a supervisory authority.
Changes
Material changes to this policy are announced in the app before they take effect. The date at the top always reflects the current version.