FrontierBee Labs · Fragify
Privacy Policy
Last updated: 11 October 2026
Contact: privacy@frontierbeelabs.com
What Fragify does
Fragify helps a merchant manage packaging for fragile products: the merchant tags products and sets packaging rules. If the merchant turns the optional packaging fee on, Fragify first shows the new prices and, only after the merchant approves them, raises the price of each fragile product it updates by the amount the merchant sets, so the fee is part of that product’s own price. On eligible plans it can also hide shipping options at checkout and, when the merchant adds Fragify’s block in the checkout editor, show a packaging notice. The merchant is our customer; shoppers are not. Fragify does not read orders.
Data we read from Shopify
Products / variants: ids, prices, and the $app.fragile metafield. Titles and images are shown in the admin but not stored by Fragify.
Shop and plan: shop domain, whether the store is on a Plus or partner development plan, and the merchant’s Fragify subscription state (from Shopify’s Partner API).
Shipping rate names (eligible plans): read to offer a picker when building a checkout rule; stored only if the merchant saves them in a rule.
OAuth session: shop domain, an offline access token and its refresh token so the embedded admin app can run. Fragify does not request online (per-user) tokens.
Logs: shop domain, webhook id, topic and error messages — not names, emails, phone numbers or addresses.
Data we do not collect
Fragify does not read or store orders, and does not store customer name, email, phone, or billing/shipping address. We do not sell data or use shopper data for ads.
What we store
- Shop domain and install time.
- Settings: fee on/off, the merchant’s acknowledgment time, rules version, plan and subscription state, Plus status, and (eligible plans) checkout-rule settings.
- Packaging rules and (eligible plans) checkout rules.
- Boxes: name, inner size and weight limits.
- Catalogue mirror (
variant_index): variant id, product id, fragile flag, current price in cents, and while a fee is applied the merchant’s original price and the fee amount, so the price can be restored when the fee is turned off. - Price-change log (two tables, one for each set of price changes and one for each variant a change touched): for each set of price changes, the reason, status, counts, the time the merchant approved it, the version of the authorization text shown, the largest and total fee amount and the approved fee rules (rule ids, priorities, fee amounts); for each variant a change touched, product id, variant id and the price before and after in minor units, with timestamps. No customer data and no order data. Also the store’s currency code.
- Background sync failures: webhook id, topic, short error message.
- Shopify sessions: shop domain, and the access token and refresh token, which the app encrypts before storing them.
Fragify also writes app-owned metafields in the merchant’s store; they contain no customer records. When Fragify changes a variant’s price it also writes a small note on that variant in the merchant’s store (metafield fragify_pricing.base_price: the original price and the price Fragify set, in minor units). It lives in the merchant’s own store, not in our database, and Fragify cannot remove it after the app is uninstalled.
Where data is stored
Data is stored in Supabase Postgres, reached through Cloudflare Hyperdrive, and the app is hosted on Cloudflare Pages. Each database transaction is scoped to the authenticated shop with row-level security. The storefront never connects to this database. Our hosting provider also keeps standard request logs (for example IP address and requested URL) to operate and secure the service.
Retention
Settings, rules, boxes, the catalogue mirror, the price-change log, sync failures and OAuth sessions are kept until the merchant uninstalls or Shopify sends shop/redact, which delete the shop’s rows. customers/redact and customers/data_request: Fragify stores no customer personal data and no order data, so there is nothing to delete or export; the request is acknowledged and logged.
If you uninstall Fragify while the packaging fee is on, the prices it raised stay raised in your store; turn the fee off first.
Merchant rights
Uninstall removes that shop’s Fragify data. GDPR webhooks customers/data_request, customers/redact, and shop/redact are registered. Shoppers should contact the merchant; we do not store shopper identities.
Security
Webhook HMAC is verified before the body is trusted. Shop identity comes from the verified session or HMAC shop header, never from a client-supplied domain alone. Secrets are not in the storefront bundle.
Contact
privacy@frontierbeelabs.com
FrontierBee Labs · frontierbeelabs.com