Privacy Policy
This policy explains what information the OneKit Shipping app ("the app", "we", "us") receives, uses and keeps when a Shopify merchant installs it, and what happens to it. Ballena App, run by Alberto Runas in Costa Rica, provides the app.
1. What the app does
OneKit Shipping adds a shipping rate to your store's checkout through Shopify's Carrier Service (carrier-calculated shipping). For each kit product you set up, it charges the one fixed shipping price you set and doesn't charge again for the items inside the kit. Other items in the cart are priced together by weight tiers you set. If the merchant turns the option on, the app can also hide the store's other shipping options when a kit is in the cart.
2. Summary
- The app receives some personal information as part of how Shopify and Cloudflare work (described below), but it stores only your kit settings and your app subscription status, keyed by your shop domain.
- Buyer details in checkout rate requests (destination address and any name, email or phone Shopify includes) are processed in memory to answer the request and are not saved by the app.
- We don't sell personal information or share it for advertising.
3. Information the app receives
| Information | Where it comes from | Why | Stored by the app? |
|---|---|---|---|
| Customer location: the shipping destination (address, city, province, postal code, country) and, when Shopify includes them, the buyer's name, email and phone | Shopify, in each carrier-calculated shipping rate request sent at the checkout shipping step | Shopify sends the destination with every carrier rate request so the shipping app can quote a rate for it. OneKit Shipping's current rates are based on the cart items (variant IDs, quantities, weights) and the currency, not on the destination. | No. Processed in memory for that request only, then discarded. |
| Store owner / store contact details: the store's name, address, email and phone (the shipping origin) | Shopify, as the origin in each carrier rate request | Part of the standard rate request; not needed for the current rate calculation | No. Processed in memory only. |
| Store owner / staff account details (such as name and email of the person using the app) | Shopify, when the embedded settings page signs you in (session token and access-token exchange) | To confirm the request comes from your store and to call Shopify's API on your behalf | No. Used only during the request; the app keeps only your shop domain. |
| IP address, browser and operating system (user agent) and approximate location derived from the IP address | Your browser when you open the settings page, and Shopify's servers when they call the app. Cloudflare receives these with every request. | Needed to deliver the app over the internet, and for security and troubleshooting | The app's code doesn't read or save them. Cloudflare may include them in short-lived request logs (see section 5). |
| Product and variant details (titles, SKUs, variant IDs) | Your store, through Shopify's API, when you use the settings page | So you can pick the kit and the items in it | Only the variant IDs (and optional kit labels) you save in your kit configuration |
4. Information the app stores
| Information | Where it is stored | Why | How long |
|---|---|---|---|
| Your kit configuration: kit labels, kit product variant IDs, the variant IDs of the items in each kit, kit shipping prices, weight tiers, currency, and the "hide other rates" setting | An app-owned metafield in your Shopify store, plus a copy in Cloudflare Workers KV keyed by your shop
domain (for example your-store.myshopify.com) |
To calculate the shipping rate at checkout | Until you uninstall the app (see section 7) |
| Your app subscription status (shop domain, plan name, whether the subscription is active, Shopify's subscription ID and status, whether the store is a development store, the app handle, and when this was last checked) | Cloudflare Workers KV, keyed by your shop domain | To check whether the app should return rates for your store | Until you uninstall the app (see section 7) |
The app has no other database. It does not store buyers' names, addresses, email addresses, phone numbers or IP addresses, and it does not store payment details or order data.
5. Logs
For troubleshooting, the app writes short log lines, for example: for each checkout rate request, your shop domain, the number of items and the rate it returned; for each Shopify webhook, the topic and shop domain; and error messages. The app's log lines don't include the buyer's address, name, email or phone.
Cloudflare, which runs the app, may also record request details such as the IP address, user agent and approximate location in its Workers logs. These logs are kept by Cloudflare for a limited time (3 days on Cloudflare's Workers Free plan, 7 days on Workers Paid) and then deleted automatically.
6. How we use information
- To calculate and return shipping rates at your store's checkout.
- To show and save your settings in the app.
- To check your app subscription status.
- To keep the app secure and fix problems.
We don't sell personal information, share it for advertising, or use it for any other purpose.
7. Retention and deletion
- Uninstalling (
app/uninstalledwebhook): when you uninstall the app, it automatically deletes your kit configuration and subscription record from Cloudflare KV. - Shop data deletion (
shop/redactwebhook): when Shopify asks us to delete a shop's data, the app deletes that shop's kit configuration and subscription record from Cloudflare KV. - Customer data requests (
customers/data_request) and customer deletion (customers/redact): the app receives and acknowledges these Shopify webhooks but takes no further automatic action, because it stores no customer data, so there is nothing to export or delete. If you or one of your customers needs a written confirmation, email us (section 12) and we will reply. - Logs: deleted automatically by Cloudflare as described in section 5.
The app-owned metafield lives in your Shopify store, not on our systems. When you uninstall, Shopify deletes the app's metafield definitions; Shopify may keep the values for a short time and then removes them. We don't keep a copy of that metafield outside your store other than the KV copy described above.
8. Sharing and service providers
We share information only with the service providers that run the app, acting on our behalf:
- Shopify provides the store, checkout, app sign-in and app billing, and sends the app the rate requests and webhooks described above. Shopify handles that data under its own privacy policy.
- Cloudflare hosts the app (Cloudflare Workers), stores the KV data (Cloudflare Workers KV) and keeps the request logs described in section 5.
We don't sell personal information or share it with anyone else, except if the law requires it.
9. Security
All traffic between Shopify, your browser and the app uses HTTPS. The app checks Shopify's signature on carrier rate requests and webhooks, and Shopify's session token on settings requests, before acting on them.
10. Where data is processed
Cloudflare runs the app on its global network, so data may be processed in countries other than yours.
11. Your rights (including GDPR)
Merchants can see and change their kit configuration on the app's settings page at any time, and can remove it by uninstalling the app. Depending on where you live (for example under the GDPR in the EU/EEA and UK), you may have the right to access, correct, delete or object to the processing of your personal information. Buyers should normally contact the store they bought from; Shopify passes customer requests to us through the webhooks in section 7. Merchants and buyers can also email us directly at the address below.
12. Contact
Ballena App (Alberto Runas), Costa Rica
Email: negocioalternativo@proton.me
Website: https://kit-ship-rate.albertocurciolinares.workers.dev
13. Changes to this policy
If we change this policy, we'll post the new version on this page and update the effective date.