Privacy policy
Last updated 21 August 2026
The short version. AgeLock requests no Shopify access scopes at all, so it cannot read your products, orders or customers even if it wanted to. It stores no shopper names, email addresses, IP addresses or dates of birth. A shopper's date of birth is checked inside their own browser and is never sent to us.
Who this covers
AgeLock (“the app”) is a Shopify app operated by Kundus Inc., and this policy explains what the app stores when a merchant installs it, and what it stores about visitors to that merchant's storefront.
For data about a merchant's own store and account, we act as the data controller. For data about visitors to a merchant's storefront, the merchant is the controller and we act as their processor.
What the app stores
Merchant and store data
When a store installs AgeLock we store the store's .myshopify.com domain, the install date, the current subscription plan, and the configuration the merchant creates — popup names, wording, colours, minimum ages, page-targeting rules, per-country rules and translations.
We also store the session token Shopify issues so the embedded admin interface can authenticate. This is required for the app to function.
Storefront analytics
On plans that include analytics, the storefront popup records an event when it is shown, and when a visitor confirms or declines. Each event holds only:
- the event type (shown, verified, declined)
- a two-letter country code and a language code, if detected
- the path of the page the popup appeared on
- which verification method was used
- a coarse age band such as “18-20” or “21-24”, only when date-of-birth verification is in use
- a timestamp
There is no identifier of any kind in these records — no customer ID, cookie ID, session ID, email address or IP address. They cannot be traced back to an individual, or linked to one another. On plans without analytics, no event is sent at all.
What stays in the visitor's browser
When a visitor passes the age gate, the result is written to their browser's localStorage so they are not asked again. This never leaves their device and is not a cookie. Clearing site data removes it.
If a visitor enters a date of birth, the comparison happens entirely in their browser. The date itself is never transmitted or stored.
What the app never accesses
AgeLock is installed with an empty permission scope. It has no access to products, collections, orders, customers, payment details or any other Shopify resource. The only data it writes back to Shopify is its own configuration, into an app-owned metafield that Shopify allows an app to manage without requesting access to anything else.
Why we store it
- To provide the service — store and account data is what the app runs on. Without it there is no popup to show.
- To show merchants their own statistics — the analytics events power the in-app dashboard and nothing else.
- To bill correctly — the plan is read from Shopify's own subscription record so features match what has been paid for.
Where the GDPR applies, our lawful basis is the performance of a contract with the merchant, and our legitimate interest in operating and securing the service.
How long we keep it
- Analytics events: 90 days. A scheduled job deletes anything older, every night. The in-app dashboard only ever displays the most recent 30 days.
- Store data: until uninstall. When a store uninstalls the app, Shopify sends a shop-redaction request and we delete that store's record together with every popup, translation, country rule and analytics event belonging to it.
- Sessions: deleted when the app is uninstalled.
Who else sees it
We do not sell data, and we do not share it with advertisers, analytics networks or data brokers. The app loads no third-party scripts, trackers or fonts onto a merchant's storefront.
Data is processed by two parties other than us:
- Shopify, as the platform the app runs on and the source of the merchant's subscription record.
- Oracle Cloud Infrastructure, which hosts the server and database the app runs on.
Requests to see or delete data
AgeLock implements all three of Shopify's mandatory data-protection webhooks, so requests raised through a Shopify store are handled automatically:
- Customer data request — we hold no customer data, so there is nothing to return.
- Customer redaction — likewise, we hold no record keyed to a customer.
- Shop redaction — the store and all of its data are erased.
You can also contact us directly at kubobina@gmail.com to ask what we hold, to have it corrected, or to have it deleted. Depending on where you live you may also have the right to object to processing, to restrict it, to receive your data in a portable form, and to complain to your local data protection authority.
Security
Traffic to the app is served over TLS. The database is not reachable from the public internet. Requests from Shopify are verified by HMAC signature before being acted on, and admin requests are authenticated with Shopify-issued session tokens.
Changes
If this policy changes materially we will update the date at the top of this page. Continued use of the app after a change means the updated policy applies.