Privacy policy
This policy explains what FitmentKit collects when a Shopify store installs the FitmentKit app, and when that store's shoppers use FitmentKit on the storefront: what we collect, why, where we keep it, how long, and how it is deleted.
"FitmentKit", "we" and "us" mean the operator of the FitmentKit app and fitmentkit.com. "Merchant" means a Shopify store that installs the app. "Shopper" means a visitor to a merchant's store.
1. In short
- We store the store and product data needed to show fitment, plus, for each order, the car the shopper chose, the VIN if they entered one, and their answers to option questions.
- We don't request or store shopper names, email addresses, phone numbers or mailing addresses.
- Data is stored in the United States (Utah), on servers we host ourselves.
- When Shopify asks us to redact a customer, we remove the car, VIN and answers from their orders. After a merchant uninstalls, Shopify asks us to delete the shop's data and we delete all of it.
- We don't sell data, and we don't send any data to an AI provider.
2. What we collect and why
From the merchant's store, through Shopify
| Data | Why |
|---|---|
| Store details: the shop's myshopify domain and primary domain, the store name, the permissions (scopes) granted to the app, the plan, and settings chosen in the app (such as whether to hold orders, a brand color and allowed website addresses). | To run the app for that store, allow the storefront widget only on the store's own websites, and apply the plan. |
| The Shopify access token for the store, and the store's FitmentKit keys. | To call Shopify on the store's behalf (read products and orders, write fitment metafields, tag, note and hold orders) and to authenticate the store to our API. |
| Products: product and variant IDs, title, handle, vendor, product type, tags, the first SKU, and the description (up to 5,000 characters). This includes draft and archived products. | To attach fitment to products and show fit results. |
| Fitment: the rules saying which vehicles a product fits, fitment groups, custom vehicles, and a history of fitment changes. | This is the service itself: the data behind fit badges, "Fits these cars", the cart check and order checks. |
| CSV files the merchant imports, and the import's error report. | To process the import and show which rows had problems. |
| The Shopify staff user ID (a number, not a name or email) of the person who changes a product's fitment or releases a held order, with an optional note on a release. | So the merchant can see who changed fitment or released an order. |
From orders
When a new order is placed, Shopify sends it to FitmentKit. From each order we store an order check:
- the Shopify order ID and order number (for example "#1001");
- the vehicle the shopper chose, their answers to option questions (for example "steel brakes"), and the VIN if they entered one;
- the result for each product line (fits, doesn't fit and why, not confirmed, or kept by the shopper), and whether the order is on hold or was released.
We use this to check that the parts on the order fit the car, to tag, note or hold the order in Shopify, and to show the merchant why an order was held. A VIN together with an order can identify a person's vehicle, so we treat it as personal data.
From shoppers on the storefront
- The vehicle a shopper selects (year, make, model and variant), their answers, and their recent cars are saved in the shopper's own browser storage on their device. They're sent to our API to check fit and are not stored on our servers, except on an order as described above.
- A VIN lookup sends the VIN to our API, which decodes it on our own servers using a copy of the US government's (NHTSA) vehicle database. The VIN is not sent to any other company. The VIN is masked in our logs and is stored only if it ends up on an order.
- The widget adds the chosen car, VIN and answers to the Shopify cart as cart attributes, so they reach the order. Shopify stores them on the order as part of the merchant's store data.
- The widget does not set cookies and does not track shoppers across sites.
Logs
Our servers log each API request's method, path (with any VIN masked), response status, timing and the store it belongs to. Logs of privacy requests can include order IDs and vehicle details, with VINs masked. We use logs to run, secure and debug the service. Shoppers' IP addresses are used briefly in memory to limit request rates and are not written to our logs.
3. What we don't collect
FitmentKit does not request Shopify's customer permissions and does not store shopper names, email addresses, phone numbers, mailing addresses or payment details. We don't run analytics or advertising trackers in the storefront widget, the app or this website.
4. Where data is stored and how it is protected
FitmentKit's database and services are self-hosted in the United States (Utah), on servers we operate ourselves (not a public cloud provider). They accept connections only through a Cloudflare tunnel; the database itself is not reachable from the internet.
- Requests from browsers and Shopify are encrypted in transit: over HTTPS between the browser (or Shopify) and Cloudflare, and over the encrypted tunnel between Cloudflare and our servers. Cloudflare decrypts each request at its edge to route it, so request contents are visible to Cloudflare while in transit. Our own calls to Shopify use HTTPS.
- Shopify access tokens and each store's secret key are encrypted at rest (AES-256-GCM). FitmentKit API keys are otherwise stored only as one-way hashes.
- Every store's data is kept separate with row-level security in the database.
- We make a nightly backup of the database on the same servers.
5. How long we keep it
- Store, product, fitment and order-check data: for as long as the app is installed, and until the shop's data is deleted after an uninstall (see below).
- Car, VIN and answers on an order: until Shopify asks us to redact that customer, or the shop's data is deleted, whichever comes first.
- Backups: each nightly backup is deleted after 7 days. Data deleted from the database can therefore remain in backups for up to 7 days.
- Logs: up to 90 days.
6. Uninstalling and shop deletion
When a merchant uninstalls, Shopify tells us right away. We mark the store as uninstalled, delete its Shopify access token and set it back to the Free plan (Shopify cancels the app's subscription). From then on we stop processing that store's products and orders. The store's data is kept for now, in case it reinstalls, and so we can still answer Shopify's privacy requests for it.
48 hours after the uninstall, Shopify sends a shop/redact request. We then delete the store and everything we hold for it in a single database transaction: its keys, its connection and encrypted secret, products, fitment rules and groups, custom vehicles, fitment history, imports and order checks. If the deletion fails, nothing is partly deleted and we retry. If the store reinstalled before the request arrived, we keep its data, because it is using the app again.
Copies in backups are deleted within 7 days after that. Data we wrote into the merchant's Shopify store (fitment metafields on products, the order tags and notes, and the cart attributes on orders) is part of the merchant's store and stays there until the merchant removes it.
7. Customer data requests and redaction
Shopify passes on requests from a store's customers through two mandatory privacy webhooks. Both work even after the merchant has uninstalled the app, until the shop's data is deleted.
customers/data_request(a customer asks the merchant for their data): Shopify sends us the customer's order IDs. We collect the order checks for those orders that hold a car or a VIN and provide them to the merchant, who responds to the customer. Merchants can also email [email protected] for a copy.customers/redact(a customer asks for their data to be erased): Shopify sends us the order IDs to redact. We remove the VIN, the car and the answers from those order checks, and remove the car's name from the stored fit reasons. The rest of the order check (order ID, order number, line results and hold status) contains no customer data and stays until the shop's data is deleted.
8. Service providers
| Provider | What they do | Data involved |
|---|---|---|
| Shopify | The platform the app runs on. Shopify hosts the storefront blocks, the embedded admin, billing and the merchant's store data. | Everything the app reads from or writes to the merchant's store, under Shopify's own privacy policy. |
| Cloudflare (United States) | Networking: the encrypted tunnel to our servers, DNS, hosting of this website, and routing of email sent to fitmentkit.com addresses. | All requests and responses to our servers, including a VIN a shopper enters. They're encrypted between the browser and Cloudflare and between Cloudflare and our servers, but Cloudflare decrypts them at its edge to route them, so it can see their contents in transit. Emails to our addresses are forwarded through it. |
No AI provider. FitmentKit's AI drafting is not enabled, and no store, product, order or shopper data is sent to an AI provider such as Anthropic. If we enable an AI feature in the future, we'll update this policy first.
9. Sharing and sale of data
We don't sell or rent personal data, and we don't share it for advertising. We share data only with the providers above, to run the service, or when the law requires it. If FitmentKit is ever sold or merged, the data would move with the service under this policy, and merchants would be told first.
10. This website
fitmentkit.com is a static site. It sets no cookies and runs no analytics, trackers or third-party scripts. Cloudflare, which hosts it, processes standard request data (such as IP addresses) to deliver and protect the site.
11. Your choices and rights
- Merchants can uninstall at any time, which leads to deletion as described above. You can also email us to ask for a copy of your data, a correction, or earlier deletion.
- Shoppers can clear the saved car from their browser by clearing site data. For data on an order, contact the store you bought from; it can ask us through Shopify, and we act on it as described in section 7.
- Depending on where you live, you may have rights under laws such as the California Consumer Privacy Act. Contact us and we'll help.
FitmentKit is for businesses and is not directed at children.
12. Changes to this policy
If we change this policy, we'll update the effective date above. For significant changes, we'll tell installed merchants before they take effect.
13. Contact
Email [email protected] with any privacy question or request.