Wired to the shelf.
A Shopify shop and a workshop run two stock systems that never talk. Online orders get retyped after dinner, or not at all. The shop keeps selling jars that were never made, and the first sign of trouble is an oversold weekend.
Connect the shop once, on Shopify’s own authorize page. From then on its orders arrive as sales orders that reserve stock, and the shop is only offered what you can actually ship.
Every pull, on the record
Orders are pulled on a schedule and on demand, and every pull answers for itself. This morning’s saw 3 orders: it imported #1042 as a confirmed sales order, applied the edit a buyer made on another, and held one whole because its listing is not mapped yet. The waiting row names the listing, links to the mapping queue filtered to it, and a Retry button finishes the job. No order half-imports, and no order ever imports twice.

One loop, both directions
An imported order is a normal sales order: reference minted, the buyer kept as a customer, the Shopify number linked back to the shop’s admin. From there, the rest of the system already knows what to do.
- Confirming reserves stock the moment an order arrives, so the weekend’s online sales hold their jars before you open the workshop.
- Stock push writes one figure, Available. After a production day the jar listing reads 22; once a wholesale order promises 30 of them, the next push writes the honest zero.
- A batch held for its release check is invisible to the shop. Releasing it is what puts it on sale.
Your shop stays yours
BatchDash writes exactly one thing to Shopify: inventory quantities, for the listings you mapped, at the location you chose. Push starts off, runs on a button when you want it, and goes automatic within minutes when you trust it.
Prices, titles, images and the shop’s continue-selling policy are never touched. When the shop cancels or refunds an order, pull history says so in plain words and leaves your figures to you.