Legal
Privacy Policy
Last updated: 2026-09-04
This Privacy Policy explains what information Nestio - Bundle Add-Ons ("Nestio", "we", "us", "our") collects when you install and use the Nestio app on your Shopify store, how we use that information, and your rights regarding that data.
1. Who This Policy Applies To
This policy applies to Shopify merchants who install and use Nestio. Nestio is a merchant-facing tool — your store's customers do not create accounts in our app, and the app does not collect their personal information. Section 2.7 describes what the storefront bundle widget does and does not do in your customers' browsers.
2. Information We Collect
2.1 Shop & Account Information
When you install Nestio, we receive and store the following information about your store:
- Shop domain (e.g., your-store.myshopify.com)
- Your store's IANA timezone, cached so that campaign start and end times you enter in store-local time can be converted to UTC for storage
- Your store's currency code, learned from order webhooks so that the analytics dashboard can format amounts correctly
- App installation and last-update timestamps
We do not store your shop's contact email address or shop name in our application records.
2.2 Campaign & Bundle Configuration
When you build bundles inside the app, we store the configuration you create. This is catalog and pricing configuration, not personal data:
- Campaigns — campaign name, the Shopify product ID of the parent product, discount mode, active status, scheduled start and end dates, and the ID of the Shopify automatic discount the app creates on your behalf
- Parent variants — the Shopify variant IDs and variant titles the campaign applies to
- Deals — each purchasable option within a campaign: name, display position, and its discount type and value, including a separate discount for the parent product line
- Deal children — each variant line inside a deal: Shopify product and variant ID, quantity, position, and its own discount type and value
- Creation and update timestamps for all of the above
2.3 Order & Refund Data
To show you how your bundles perform, Nestio subscribes to Shopify's
orders/create, orders/cancelled, and
refunds/create webhooks. For orders that contain a bundle
purchase, we record:
- The Shopify order ID and order number (internal Shopify references)
- Which campaign and deal the purchase belongs to
- The revenue attributable to the deal, and its currency
- Any refunded amount, and the order's status (active, cancelled, refunded, or partially refunded)
- The timestamp of the order
We do not collect customer names, email addresses, shipping or billing addresses, payment details, or any other customer personal information from orders. When the app reads an order from Shopify's Admin API, it requests only the order's ID, name, creation and cancellation timestamps, currency, and its line items (ID, quantity, line-item properties, and discounted total). The customer object on the order is never requested.
Note that Shopify limits the read_orders scope to the last 60
days of order history, so the app cannot see or backfill orders placed
before that window.
2.4 Onboarding Progress
We store your progress through the app's setup guide: the current step, the list of steps you have completed, whether onboarding is finished, and the timestamps for when it started and completed.
2.5 Session & Authentication Data
Shopify's OAuth session records are stored in our database by Shopify's official session storage library. In addition to the access and refresh tokens used to authenticate API requests on your behalf, these records may contain the first name, last name, email address, and locale of the merchant or staff account that authenticated the app, as supplied by Shopify. This is the only place in the app where personal data about a person is stored. These records are used solely to authenticate and operate the app.
2.6 Operational Logs & Webhook Records
Our infrastructure writes operational logs for monitoring and debugging, which may include your shop domain and error details. We also keep a record of each webhook delivery the app has processed — the Shopify webhook ID, the topic, the ID of the resource it concerned, the processing status, attempt count, and any error message. These records exist so that Shopify's at-least-once webhook delivery does not cause an event to be counted twice.
2.7 Storefront Bundle Widget
Nestio includes a theme app extension that renders the bundle picker on your product pages, plus an optional "Cart Integrity" app embed. In your customers' browsers:
- No tracking storage — the widget sets no cookies and writes nothing to
localStorageorsessionStorage. - No third-party requests — the widget makes no analytics or beacon calls. Every network request it makes is same-origin to your own storefront: adding to the cart, updating the cart, and re-fetching your theme's own cart section markup.
- Cart Integrity request monitoring — when the Cart Integrity app embed is enabled, the app wraps the browser's
fetchandXMLHttpRequestmethods on pages where the embed is active. It inspects request URLs only to identify cart mutations, and reads a response body only when the response is an error (HTTP status 400 or above), so that it can show your customer a helpful message when a bundle cannot be added. No request or response data is sent anywhere; it never leaves the browser. - Line-item properties — cart lines added by the widget carry a hidden property identifying the deal they belong to, and the parent line carries an additional marker property. These properties travel with the order into your Shopify admin and are what the app reads back to attribute revenue to a bundle.
3. How We Use This Information
- To operate the app — creating and maintaining Shopify automatic discounts and checkout validation rules for your bundles, and writing bundle configuration to a metafield on the parent product so the storefront widget can render it.
- To show analytics — attributing order revenue and refunds to the campaigns and deals that produced them, and displaying that in your dashboard.
- To guide setup — tracking your progress through onboarding.
- To process webhooks reliably — deduplicating repeated deliveries so figures are not double-counted.
- For security and abuse prevention — monitoring to protect service integrity.
- For compliance — responding to data requests and Shopify's mandatory compliance webhooks.
4. Sharing of Information
We do not sell, rent, or trade your data. We may share data only in the following limited circumstances:
- Infrastructure providers — We use third-party hosting and database services (PostgreSQL for application data, Redis for background job processing) that process data on our behalf under appropriate data processing agreements.
- Shopify — We interact with Shopify's Admin API to create and manage discounts, validation rules, and metafields on your store. Shopify's own terms and privacy policies govern data handled on their platform.
- Legal requirements — We may disclose data if required by law, court order, or government authority.
No customer personal information is shared with any third party.
5. Shopify API Permissions
Nestio requests the following Shopify API access scopes, which are necessary for the app to function:
read_products/write_products— to read your products and variants so you can build bundles from them, and to write the bundle configuration metafield onto the parent product so the storefront widget can display itwrite_discounts— to create and manage the Shopify automatic discount that applies your bundle pricingwrite_validations— to install a checkout validation rule that prevents an incomplete bundle from being checked outread_orders— to receive order and refund webhooks and attribute bundle revenue for your analytics dashboard
6. Data Retention
- Shop, campaign & bundle data — retained while the app is installed and for a reasonable period after uninstallation to support data requests and disputes.
- Order analytics — retained as part of your campaign history for as long as you use the app.
- Session tokens — managed by Shopify's OAuth lifecycle; deleted when you uninstall the app.
- Operational logs — retained for a limited period, then automatically purged.
When you uninstall Nestio, Shopify sends an
app/uninstalled webhook and we begin the process of removing
your shop data in accordance with Shopify's partner requirements.
7. GDPR & Shopify Compliance Webhooks
Nestio implements Shopify's mandatory compliance webhooks:
- customers/data_request — we respond to requests for what customer data (if any) we hold.
- customers/redact — we process customer data deletion requests from Shopify.
- shop/redact — we delete shop data upon receiving this signal after uninstallation.
Because Nestio does not collect customer personal data, responses to customer data requests will typically confirm that no customer personal data is held.
8. Security
We implement reasonable technical and organizational measures to protect the data we hold, including encrypted database connections and secure token storage. However, no system is perfectly secure and we cannot guarantee absolute security.
9. Changes to This Policy
We may update this Privacy Policy from time to time. Material changes will be indicated by updating the "Last updated" date above. Continued use of the app after changes are posted constitutes your acceptance of the updated policy.
10. Contact
If you have any questions or requests regarding this Privacy Policy or your data, please contact us at [email protected].