Wholesale Gate
Privacy policy
Wholesale Gate takes wholesale applications for a Shopify store, turns approved ones into Shopify B2B companies, and assigns each company a price tier. That means we handle personal data belonging to the people who apply. This page says exactly what, and for how long.
Two different people
This app has two kinds of user, and they are treated differently.
- The merchant — the Shopify store owner who installs the app.
- The applicant — a buyer who fills in the merchant's public wholesale application form. The applicant has no account with us. We act as a processor on the merchant's behalf.
What we store about the merchant's store
- The shop domain.
- Shopify access and refresh tokens, encrypted at rest with AES-GCM.
- App settings: the form headline, the notification address, whether a tax number is required, whether the form is open, and the price tiers with their percentages and Shopify catalog ids.
What we store about applicants
Exactly what the form collects, and nothing derived from it:
- Company name, website, tax registration number.
- Contact first and last name, work email address, phone number.
- Business address: street, city, state or province, postal code, country.
- The tier they asked for, any note they wrote, and the decision the merchant made.
We do not use a tracking pixel, an analytics script or a cookie on the application page. The page carries no JavaScript at all.
We keep a one-way keyed hash of the applicant's email address for up to 90 days so that pressing "send" twice does not create two companies. The address itself is not recoverable from it.
What we do with your store's data
The app holds write_companies, write_products and read_customers scopes. It uses them only to:
- create a B2B company, company location and company contact when the merchant approves an application, and give that contact permission to order;
- create and update the B2B markets, catalogs and price lists that make up your price tiers, and move company locations between them;
- read the shop's name, plan, currency and primary domain, so the app can show the right limits and address buyers correctly.
We do not read or store your product catalog, your orders, your checkouts, or your existing customer records. We never write to products, orders or customers.
Who else sees it
- Cloudflare Workers & KV — hosting and storage for everything listed above.
- Resend — delivery of the two emails this app sends: a "new application" notice to the merchant, and a decision notice to the applicant. Resend receives the destination address and the message body.
- Shopify — the company, location, contact, catalog and price list we create on the merchant's behalf live in the merchant's own Shopify admin.
We do not sell, rent or share this data with anyone else, and we do not use it for advertising or to train models.
Retention and deletion
- When the merchant uninstalls the app, Shopify sends an
app/uninstalledwebhook and we delete the tokens, the settings and every application, including all applicant personal data. shop/redactdeletes the same set.customers/redactdeletes every application whose email address matches the customer being redacted.customers/data_requestis recorded and forwarded to us so the merchant receives the applicant's stored data within the period Shopify requires.
Companies, locations and catalogs created in Shopify are the merchant's own records and are not deleted by uninstalling this app — remove them in the Shopify admin.
Applicants can ask for deletion directly at cardi.workshop@gmail.com; we will act on it and tell the merchant.
Abuse limits
The public form accepts at most 100 submissions per store per day and carries a hidden field that automated submitters fill in. No IP address is stored.
Contact
Questions about this policy, or about data we hold: cardi.workshop@gmail.com.