Privacy Policy
Last updated: July 9 2026
This Privacy Policy describes how Pantry Club Pty Ltd (“we”, “us”, “our”) collects, uses, and shares information when a merchant installs and uses the PantryClub Connect Shopify application (the “App”), and when that merchant’s customers interact with storefront features powered by the App.
The App connects a Shopify store to the PantryClub fulfillment network to provide real-time, location-based stock availability, checkout validation, carrier-calculated delivery fees at checkout, product synchronization, and two-way order and fulfillment synchronization (including refunds).
1. Who is responsible for your data
For data processed through the App, Pantry Club Pty Ltd acts as a data processor on behalf of the merchant (the data controller) for their store and customer data. For storefront shoppers, the merchant is the controller; we process shopper data only to deliver the App’s functionality to that merchant.
Contact: support@pantryclub.co.za — 92 Andries Pretorius Rd, Eastleigh, Edenvale, 1609, South Africa — https://pantryclub.co.za
2. Information we collect
The App stores in its own database (PlanetScale MySQL): Shopify session credentials, the store-link record (store domain and the assigned PantryClub site identifier), the merchant’s onboarding submission, product- and order-link records (identifiers and sync status), webhook-receipt and dead-letter records, and the job-queue records that drive synchronization. While a sync is pending or retrying, a job-queue record may contain the related Shopify order payload — including the customer delivery details described in section (c). Customer personal data is read from the Shopify order and transmitted to the PantryClub fulfillment backend; in the App’s own datastore it is held only transiently inside these queued job records (see Section 7), not in a separate long-term customer database.
a. Merchant and store information
- Shopify store domain (
*.myshopify.com) and store/shop ID - Shopify API access tokens and session credentials issued during installation
- PantryClub site identifier assigned to the store when its registration is approved and linked (the App does not store a per-merchant PantryClub access token)
- Onboarding/registration details the merchant provides when requesting activation: contact name, store/site name, supplier email addresses and/or WhatsApp numbers, and the purchase-order delivery schedule and stock-holding settings
b. Order information
- Order details, line items, quantities, prices, totals, currency, and order status
- Fulfillment, tracking, refund, and cancellation data
- Order metafields written by the App (sync and lifecycle status)
c. Customer personal information (Protected Customer Data)
Read from a store’s orders (and, for signed-in shoppers, their saved Shopify address) to resolve delivery availability and fulfill orders, and transmitted to the PantryClub fulfillment backend:
- Customer name
- Shipping and billing address, including postal/postcode
- Phone number and email address (where present on the order)
While a corresponding sync is pending or retrying, this data may also be held transiently in the App’s job-queue records (see Section 7).
d. Product information
- Product and variant identifiers, barcodes, and availability, used to validate stock and synchronize products
e. Storefront shopper information
- A postcode entered by a shopper on the storefront — or taken from a signed-in shopper’s saved Shopify address — to check delivery availability and resolve the serving warehouse
- Cart attributes, cookies, and browser storage holding the resolved postcode and warehouse so availability and checkout validation work across pages
- The resolved postcode-to-warehouse mapping is also cached on our infrastructure (Upstash Redis) for approximately 7 days to speed up repeat lookups; stock levels themselves are never cached and are always fetched live
f. Checkout delivery-fee information (carrier-calculated shipping)
When a merchant enables the carrier-calculated delivery fee, Shopify sends the App a shipping-rate request at checkout containing the shopper’s destination address (street address, suburb/city, province, and postal code) and the cart’s line items. To price delivery accurately, the App sends this destination address to the Google Maps Geocoding API to convert it into approximate coordinates (latitude/longitude), and then asks the PantryClub backend to compute the fee for the serving warehouse. The resulting address-to-coordinates mapping is cached on our infrastructure (Upstash Redis) for approximately 7 days; the delivery fee itself is computed live for each request. This feature applies to South African deliveries and ZAR checkouts only.
g. Operational logs
- Synchronization receipts, webhook receipts, dead-letter records, and error messages (which order or product was synced, when, and any failure reason) used for troubleshooting and retry
We do not collect payment card numbers or financial credentials; payments are handled entirely by Shopify and its payment providers.
3. How we use information
We use the information above only to operate the App, specifically to:
- Show real-time, warehouse-specific stock availability based on a shopper’s postcode
- Validate carts and gate checkout for out-of-stock or out-of-delivery-area items
- Synchronize products and orders to the PantryClub fulfillment network
- Send fulfillment, tracking, delivery-progress, refund, and cancellation updates back to the Shopify store
- Calculate a carrier-computed delivery fee for the shopper’s destination address at checkout, where the merchant has enabled this feature
- Diagnose errors, prevent abuse, and maintain the security and reliability of the App
We do not sell personal information, and we do not use it for advertising or profiling.
4. Legal bases for processing (GDPR / EEA / UK)
Where applicable, we rely on:
- Contract — to provide the App’s functionality requested by the merchant
- Legitimate interests — to secure, troubleshoot, and improve the App
- Legal obligation — to comply with applicable law and Shopify requirements
5. How we share information
We share information only with the following categories of recipients:
| Recipient | Purpose |
|---|---|
| PantryClub fulfillment backend | Receives order and customer delivery data to fulfill and ship orders, and computes carrier-calculated delivery fees |
| Shopify | The platform on which the merchant’s store and the App operate |
| Vercel | Application hosting infrastructure (serverless functions and edge network) on which the App runs |
| PlanetScale | MySQL database storing sessions, store-link, onboarding, and synchronization records |
| Upstash | Redis cache of the postcode-to-warehouse mapping and the geocoded address-to-coordinates mapping, and the QStash job queue that briefly carries webhook and order payloads during synchronization |
| The Maps Geocoding API converts a checkout destination address into approximate coordinates so the delivery fee can be calculated |
These providers process data on our behalf under contractual confidentiality and security obligations. We do not otherwise disclose personal information except where required by law or to protect our legal rights.
6. International data transfers
Data may be processed in the United Kingdom, South Africa, the United States, and other regions where our infrastructure providers operate. Where data is transferred across borders, we rely on appropriate safeguards such as Standard Contractual Clauses or an equivalent lawful transfer mechanism.
7. Data retention
- Store credentials and link records are retained while the App is installed and are
deleted following uninstall or a verified
shop/redactrequest from Shopify. - Customer personal data passed for fulfillment is retained only as long as needed to complete and support the corresponding order, then deleted or anonymized.
- Job-queue records (which may contain an order payload while a sync is pending or retrying), operational/sync logs, webhook receipts, and dead-letter records are retained for up to 180 days.
- We honor Shopify’s mandatory data-erasure requests as described in Section 9.
8. Cookies and storefront storage
To deliver availability and checkout validation, the App stores a shopper’s resolved
postcode and warehouse using browser cookies, browser storage (localStorage/
sessionStorage), and Shopify cart attributes — for example the pc_postcode,
pc_warehouse_id, and pc_warehouse_code cookies and the pc_postcode cart attribute.
These are functional / strictly necessary for the delivery-check feature and are not
used for advertising or cross-site tracking. Shoppers can clear them via their browser at
any time.
9. Shopify mandatory data requests (GDPR webhooks)
The App implements Shopify’s mandatory compliance webhooks and verifies each request with its HMAC signature:
customers/data_request— The App does not maintain a separate customer database. The customer data the App processes resides on the Shopify order, transiently in queued job records, and — for fulfillment — in the PantryClub backend; on request we assist the merchant in providing it.customers/redact— We delete any customer personal data held in our systems, including any queued job records containing that order’s data. Customer data held by the PantryClub fulfillment backend for completed orders is erased in line with the retention schedule in Section 7.shop/redact— When a store uninstalls, we delete the store’s data (session credentials, the store-link record, the onboarding submission, product/order link records, and sync logs) after the period defined by Shopify (typically 48 hours).
10. Your rights
Depending on your jurisdiction (e.g., GDPR, UK GDPR, CCPA/CPRA, POPIA), you may have the right to access, correct, delete, restrict, or port your personal data, and to object to certain processing. Shoppers should direct requests to the merchant (the controller). Merchants may contact us at support@pantryclub.co.za, and we will assist within the timeframes required by law.
11. Data security
We protect data in transit using TLS (including gRPC over TLS to the PantryClub backend), restrict access on a need-to-know basis, and store credentials and sensitive records in access-controlled, encrypted storage. No method of transmission or storage is completely secure, but we take commercially reasonable measures to safeguard your information.
12. Children’s privacy
The App is intended for use by businesses and is not directed to children. We do not knowingly collect personal information from children.
13. Changes to this policy
We may update this Privacy Policy from time to time. Material changes will be reflected by updating the “Last updated” date above and, where appropriate, by notifying merchants.
14. Contact us
Questions or requests regarding this Privacy Policy:
Pantry Club Pty Ltd Email: support@pantryclub.co.za Address: 92 Andries Pretorius Rd, Eastleigh, Edenvale, 1609, South Africa