Privacy Policy

Last updated: April 29, 2026

This Privacy Policy describes how VirtualRoom(“VirtualRoom”, “we”, “our”) collects, uses and shares information when merchants install our app and when shoppers use the in-store try-on widget.

1. Who controls the data

For shopper data (room photos, browsing fingerprints, captured emails) the merchant is the data controller and VirtualRoom is a processor — we handle the data on the merchant’s instructions. For merchant-account data (the store identity, billing) VirtualRoom is the controller.

2. What we collect from merchants

  • Shop domain, email and Shopify offline access token (issued via Token Exchange on install).
  • Subscription tier and billing status (synced from Shopify, no card details stored by us).
  • Per-product / per-collection widget configuration you save in the dashboard.

3. What we collect from shoppers

  • The room photo a shopper uploads to render a try-on (stored in a private cloud bucket).
  • An opaque per-browser session id (cookie tr_sess) used only to gate access to that shopper’s own private images.
  • An IP + User-Agent fingerprint (one-way hash) used to coarsely rate-limit abuse and enforce daily caps. We do not store the raw IP.
  • Optional email address if the shopper voluntarily submits it through the widget’s lead-capture step.
  • Lightweight events (PDP view, button click, try-on completed, cart add) used for funnel analytics in the merchant’s dashboard.

4. How we use it

  • To run the AI try-on and return the resulting image to the shopper.
  • To attribute a checkout back to the originating try-on (via the _tryroom_session line-item attribute Shopify stamps on the order).
  • To enforce per-store and per-shopper usage caps and prevent abuse.
  • To bill the merchant for monthly previews via Shopify’s recurring application charge.

We do not sell data, and we do not train AI models on shopper photos or merchant content. Shopper photos are sent to a third-party image-to-image model (currently google/nano-banana-pro via Replicate) only for the duration of a single render.

5. Storage & retention

  • Shopper room photos and AI composites live in a private bucket on Supabase storage. Access is gated by signed URLs and the tr_sess session cookie.
  • The merchant configures a retention window in the VirtualRoom dashboard (default 7 days). After that, on-device shopper history auto-prunes and stale signed URLs expire.
  • Merchant account records are kept for the lifetime of the install plus up to 30 days after uninstall, unless we are legally required to retain them longer.

6. Cookies

VirtualRoom uses one functional cookie on the storefront: tr_sess. It is HttpOnly, Secure, SameSite=None and is required to gate access to a shopper’s own private images. We do not use advertising cookies, tracking pixels, or third-party analytics cookies on the widget.

7. Sub-processors

We rely on a small set of vendors to deliver the service:

  • Shopify (app distribution, install OAuth, recurring billing)
  • Google Cloud Run (app hosting)
  • Supabase (Postgres + private object storage)
  • Replicate (image-to-image AI inference)

8. International transfers

Data is processed in the regions our hosting providers operate (most prominently the GCP region the app is deployed to and Supabase’s chosen project region). Standard contractual safeguards apply to any cross-border transfer required to deliver the service.

9. Your rights

Depending on your jurisdiction (GDPR / UK GDPR / CCPA, etc.), shoppers have the right to access, correct, delete, or port their personal data. Merchants can run those requests against their store from the VirtualRoom dashboard. For requests we need to fulfil directly, email support@virtualroom.app.

10. Changes

We may update this Privacy Policy as the product and applicable laws evolve. Material changes will be flagged from the dashboard.

11. Contact

Privacy questions? Email support@virtualroom.app.