This policy explains how Forzivo B.V. (“we”, “us”) handles personal data when merchants use Virtual Try-On by Forzivo (“the app”) in their Shopify store, and when shoppers use the virtual try-on on those stores.
1. Who is responsible
For data about merchants (the store using the app), we are the controller. For data about shoppers on a merchant’s store, the merchant is the controller and we process that data on the merchant’s behalf, as their processor. Shoppers with questions about their data should contact the store first; we will help the store respond.
Forzivo B.V., [TO FILL IN: registered office address], the Netherlands. Chamber of Commerce (KvK): [TO FILL IN: KvK number]. Contact: support@forzivo.nl.
2. Shopper photos
When a shopper uses the try-on, they choose a photo and confirm they agree to it being processed by AI. The photo is reduced in size in their browser (which also removes location and camera metadata), sent over an encrypted connection to our server, and passed to Google Gemini together with the product image to generate the preview.
- We never store the photo or the generated image: they exist only in memory while the request runs, and our copies are wiped as soon as it finishes. Closing the try-on window removes the preview from the shopper’s screen.
- We ask Google not to store the request (the Gemini API’s
store=falsesetting). Under Google’s terms for paid Gemini API use, Google does not use prompts or responses to improve its products, but may log them for a limited period solely to detect and prevent abuse. - The request uses the merchant’s own Gemini API key, so Google processes it under the merchant’s agreement with Google. The app requires merchants to confirm that their key belongs to a billing-enabled (paid) Google project; Google’s free tier may use submitted content to improve its products and is not suitable for shopper photos.
- The generated image is an AI preview; it is not used to identify anyone or make decisions about them.
3. Other data we process
| Data | Purpose | Kept for |
|---|---|---|
| Anonymous try-on events: product viewed, try-on opened, photo uploaded, result shown, added to cart, shared, with a random browser ID | Analytics for the merchant (try-on funnel, popular products) | 13 months |
| Email address and marketing choice (only if the merchant enabled the email step) | Given to the merchant, who may contact the shopper only as the shopper agreed | Until the merchant deletes it, the shopper asks for erasure, or the app is uninstalled |
| Order number, order date, amounts and product IDs of orders containing tried-on products | Showing the merchant revenue from try-ons | 25 months |
| Store domain, settings, plan, Shopify access token, and the merchant’s Gemini API key (encrypted) | Running the app for the merchant | Until the app is uninstalled |
We do not collect shoppers’ names, postal addresses or payment details, and we do not store IP addresses. We never sell personal data or use it for advertising.
4. Cookies and browser storage
Only when the shopper has allowed analytics in the store’s cookie banner (via Shopify’s Customer Privacy API), the try-on stores a random visitor ID in the browser’s local storage, short-lived markers in session storage to avoid double counting, and a hidden note on the cart listing the IDs of tried-on products for revenue attribution. Without that consent the try-on still works, but stores nothing in the browser and sends no analytics.
On this website (not on stores or inside the Shopify admin) we use the Crisp live chat. Crisp sets cookies to keep a chat conversation going and receives what you type in the chat, plus technical data such as your IP address and browser. We use chat messages only to answer your questions.
5. Legal bases (GDPR)
- Generating the try-on: the shopper’s request and explicit consent, given in the try-on window.
- Analytics and revenue attribution: consent given through the store’s cookie banner.
- Email capture: consent; marketing only if the shopper ticks the separate marketing box.
- Merchant account data: performance of our contract with the merchant.
6. Who receives data
- Google (Gemini API): shopper photos and product images, to generate the preview, under the merchant’s Google account.
- Shopify: the platform the app runs on.
- Our hosting provider: Hetzner Online GmbH, servers in the EU [TO CONFIRM: data centre location].
- Crisp (Crisp IM SAS, France): live chat on this website, for visitors who use it.
Google may process data outside the European Economic Area. Where that happens, transfers rely on Google’s safeguards such as the EU Standard Contractual Clauses.
7. Security
All traffic is encrypted (HTTPS). Merchants’ Gemini API keys are encrypted at rest (AES-256-GCM) and never sent to browsers. Access to production systems is restricted. Storefront requests are verified with Shopify’s signatures and rate-limited.
8. Your rights
You can ask for access to, correction of, or deletion of your personal data, or object to its use. Shoppers should contact the store; Shopify forwards erasure requests to us automatically and we act on them. When a merchant uninstalls the app, all of the store’s data is deleted within 48 hours of Shopify’s request. You may also complain to a data protection authority; in the Netherlands that is the Autoriteit Persoonsgegevens.
9. Changes
We will update this page when our practices change and show the date of the latest version above.