Privacy Policy
Last updated: October 20, 2026 · Applies to the Shopify app “EU Omnibus, Withdrawal & GPSR” (njX EU Compliance) by njX
Who we are
The app is operated by njX, an independent developer. Contact: [email protected].
What the app does
It computes the lowest price of the 30 days before each price reduction from the changes it observed in your store and writes it to a metafield of the variant for your theme to show; it serves a withdrawal request page inside your theme, records the requests and sends the acknowledgement e-mail; it keeps the manufacturer and the safety information you enter in a metaobject and in product metafields; it sends the requests and a weekly summary to the recipients you add.
What the app reads in your store
- Products (
read_products): products and variants with their title, SKU, price, compare-at price and status; the vendor and the collections when you assign a manufacturer by them. - Orders (
read_orders, Level 1 protected customer data): only when a customer sends a withdrawal request with an order number — the order's date and whether and when it was delivered, among the orders of the last 60 days. No names, addresses, e-mails, phones or payment details are read from orders. - Nothing else. The app does not read your customers, your theme code or your settings beyond the store's currency and time zone.
What the app writes to your store
- App-owned metafields only: the prior price per variant, a count per product, your settings, the manufacturer reference, the warnings and the model you entered per product (
write_productsis used for these metafields and nothing else). - One metaobject definition, Manufacturer, with the entries you create (
write_metaobject_definitions,write_metaobjects). - It never changes a price, a compare-at price, a product, an order or the theme; it never creates a refund or a return. The blocks and the embed appear in your theme only when you add them in the theme editor. Shopify removes the app's metafields and the metaobject definition when the app is uninstalled.
Data we store
- The price log: every price and compare-at change of every variant the app saw, and a snapshot of your variants, up to 400 days back: the prior price needs the 30 days before every reduction, the history chart 90.
- Withdrawal requests: what the customer typed on the request page — name, e-mail, order number, what they return, a comment — with the request number, date and time, the language and country of the storefront, a hash of the IP address (abuse protection), the order matched, the status and the note you set, and when the acknowledgement was sent. The e-mail address is stored encrypted and shown masked in the app; every time it is revealed or exported, the app logs it.
- Manufacturers: a copy of the metaobject entries, for the screens.
- Recipients: the e-mail addresses, Slack and Discord webhook URLs and Telegram chat ids you add, and the token of a Slack workspace connected with “Add to Slack” (a bot that can post messages and list channel names, nothing more). Stored encrypted, shown masked.
- Logs: which message went where and when (without its content; for e-mail also the provider and the id it gave), and messages you send through the support form.
The customer's data
The request page is served by the app through Shopify's app proxy, inside your theme. What the customer types is sent to the app, stored as described above and used for the acknowledgement e-mail and for your Withdrawals screen only. The acknowledgement is sent from [email protected] with your Reply-To. A customer's request to be forgotten, received from Shopify (customers/redact), deletes their requests; a data request from Shopify is reported to us with counts only. The recipients in your chat see the first name and initial, the order number and what is returned, never the e-mail.
How your data is used
- Everything the app reads is used for your store only: to compute the prior price, to take and acknowledge the requests, to print the safety information and to send what you asked for.
- It is never sold or shared, never compared with other stores, and never used to train machine-learning or AI models.
- We keep a small amount of anonymous operational telemetry — which job ran, whether it succeeded — identified by shop domain and used to keep the app healthy.
How long we keep it
- The price log and the snapshot: while the app is installed, up to 400 days back.
- Withdrawal requests: two years, as the limitation periods in most member states ask; the app shows the last 90 days on Free and all two years on Pro.
- Delivery log (which message went where): 90 days. Support messages: 12 months.
- Uninstalling deletes everything about your store, the requests included, as soon as Shopify tells us: usually within minutes, always within 48 hours. Export the requests first if you need the record.
Where it runs
The app runs on Cloudflare (Workers, D1). E-mail is sent through Cloudflare Email Service; a backup provider (Resend) may deliver a message when the first one is unavailable. Messages to Telegram, Slack and Discord go through their own services under their own terms.
Your rights
You can see, change and delete what the app holds about your store from inside the app (Data & access, Withdrawals), and uninstalling deletes it all. Questions and requests: [email protected].