Connect your Shopify store
Keep your Shopify site and add a Bottl.Service storefront alongside it. DISTRYB reads your Shopify products and stock so you do not have to re-enter your catalogue. It never writes to Shopify — your orders, fulfilment and customer emails there stay entirely yours.
Two ways in — pick by what you need
| Upload a CSV | Connect the store | |
|---|---|---|
| answers | "what products do I sell?" | "how many are on the shelf today?" |
| how often | once, at setup | any time, as often as you like |
| per location | no | yes — you choose which Shopify location |
| needs a key | no | yes, a token you create yourself |
Uploading a CSV is the quickest way to get your catalogue in: export your products from Shopify and upload the file at Catalog → Import. Nothing to authorise, and it is all most people need to get started.
Connecting the store is for keeping stock counts current. Instead of re-exporting a file every time something sells, DISTRYB asks Shopify directly. The rest of this guide is that setup.
You do it with a custom app, which you create inside your own Shopify admin. There is no app to install from the Shopify App Store and nothing to approve.
1. Allow custom apps (first time only)
In Shopify: Settings → Apps and sales channels → Develop apps. If you have never done this before, click Allow custom app development and confirm.
2. Create the app
Click Create an app, name it something you will recognise — Bottl.Service — and create it.
3. Give it read access
Open Configuration → Admin API integration → Configure, and tick exactly these scopes:
read_products— your products and their barcodesread_inventory— how many of each you holdread_locations— which of your locations the stock sits at
Nothing else is needed, and nothing that writes is requested. Save.
4. Install it and copy the token
Go to the API credentials tab and click Install app. Under Admin API access token, click Reveal token once and copy it. It starts with shpat_.
Shopify shows this token once. If you navigate away without copying it, delete the app and create a new one — there is no way to see it again.
5. Paste it into DISTRYB
In DISTRYB: My Org → Connectors → Shopify. You need two things:
- Store address —
your-store.myshopify.com. This is the address Shopify gave you, not your custom domain. If your shop is at www.example.com, the store address is still the myshopify one; you will find it in your browser's address bar while you are in the Shopify admin. - Admin API access token — the
shpat_value from step 4.
DISTRYB checks the token with Shopify before saving it. If a scope is missing or the token was mistyped, you are told straight away rather than at the first import.
6. Bring the stock across
Inventory → Import from Shopify. Choose which Shopify location this shelf is, then import.
That choice matters and has no default. Shopify tracks stock per location and so does DISTRYB — if you have a warehouse and a shop, adding both together would put bottles on your Bottl.Service shelf that are sitting in the other building, and the platform would sell what you cannot pick.
Run the import again any time you want the numbers refreshed.
What happens to the numbers
Stock imported from Shopify is treated as a copy of a number that lives in Shopify, not as your own count. In practice:
- Bottl.Service offers a bounded slice of the shelf rather than all of it, so a sale rung up in Shopify between imports does not oversell you.
- A line pauses on its own once its count is too old to trust.
- Nothing you record in DISTRYB is overwritten by an import.
What does not come across
- Anything that is not a drink. A Shopify store usually carries glassware, merchandise and gift cards. Those are recognised and left off the shelf, and the import tells you how many it skipped.
- Draft and archived products. Only active ones are read.
- Products with no stock record at the location you chose. They are reported rather than counted as zero, so a short shelf is a number you can question instead of a silent gap.
- Products with stock tracking switched off in Shopify. Shopify treats those as always available, so there is no count to bring across. They are left off rather than imported as sold out, and the import tells you how many.
Your store must sell in USD
Shopify sends prices as plain numbers with no currency attached, so a store priced in another currency would import 42.00 and DISTRYB would read it as $42.00 — every retail price, cost basis and margin wrong by the exchange rate, with nothing that looks like an error. Connecting is refused if your Shopify store's currency is not USD, rather than importing prices we cannot trust.
Naming
Shopify products come across under your product names. Where DISTRYB's catalogue already holds the same bottle, use Inventory → Match to catalog to point those rows at it — they then take the catalogue's name, size and ABV, and you do not have to fill any of that in by hand. DISTRYB remembers each answer, so the next import does not ask again.
Disconnecting
My Org → Connectors → Shopify → Disconnect. Your stored token is destroyed. Stock already imported stays where it is; it simply stops being refreshed, and the CSV upload still works. Delete the custom app in your Shopify admin too if you want the access gone at their end as well.


