Guide · Wine & spirits retail
When your liquor store website shows bottles that aren't on the shelf, the sync is rarely broken outright. One of four things is usually wrong: more than one system is allowed to change stock, bottles aren't matched one to one between the POS and Shopify, the wrong store location feeds the website, or a sale or return was recorded in only one system. The fix is to make your POS the only place stock and prices change, match every SKU, and read the adjustment history on the bottles that keep drifting.
Most POS-to-Shopify connectors work the same way. The POS holds the count and the connector pushes it to Shopify. Online orders flow back to the POS so the count comes down. That loop breaks in four predictable places.
Decide where counts and prices are allowed to change. For most stores that's the POS, because receiving, counts, and register sales already happen there. Lightspeed says this plainly in its Shopify integration guide: once the two are connected, the POS "should be treated as the system of record," and updates made in Shopify "may be overwritten or cause syncing issues."
Then make it a rule. Nobody adjusts stock or price in Shopify. If the website needs a change, it gets made in the POS. If your Shopify plan allows it, remove inventory editing from staff accounts that don't need it.
Each item you sell needs one record in each system, linked by the same SKU. Wine makes this harder than most retail:
Export products from both systems to a spreadsheet and compare SKUs side by side. Look for duplicates in Shopify, SKUs that exist in only one system, and blank SKUs. Lightspeed's guide also recommends backing up product data from both systems and making sure shared products have matching SKUs and handles before you link them.
If you run more than one store, or count a warehouse separately, confirm which POS location feeds which Shopify location. A bottle sitting at your second store will show as available online if that location is mapped into online inventory, even if you don't ship or offer pickup from there. Map only the locations you actually fill online orders from.
Pick five products that were wrong on the site this month. In Shopify, open each one, choose the variant, and click View adjustment history. Shopify records who or what made each change, whether a staff member, an app, or a sales channel, and shows the last 180 days on the product page.
Look for the pattern:
Sync only moves the number your POS already has. If the POS count is wrong, the website is wrong too. Set a short recurring count for fast movers, allocated bottles, and anything that sells online often. Enter counts straight into the POS, not on a clipboard that gets typed in later.
This is an illustrative example with made-up numbers, not a client story.
A two-location shop sells a Sancerre online. The website shows 6 bottles. The shelf has none.
Run the same check across the whole catalog and you usually get a list, not a single bottle. That list is the work.
A bottle shown in stock that isn't there costs more than one order. The customer drives over or calls, and your staff spend the time apologizing. It can also cost you off your own site. If you list products on Google, its Merchant Center rules say availability has to match across your product data, your product page, and checkout, and a mismatch triggers a product disapproval.
Clean, matched product records fix both problems at the source. More on that in product data cleanup and enrichment.
If you add an AI chat assistant to your website, this matters even more. When a customer asks "Is the Sancerre in stock?", the chatbot can only answer from the stock data it can see. If the Shopify count is wrong, the chatbot's answer is wrong too, and it gives that answer just as confidently as a right one. The duplicate product in the example above, with its stale count of 6, would become a wrong "yes."
So the order stays the same. Fix the sync first: one system of record, every bottle matched, the right locations feeding the site. Then make sure the chatbot reads the same live stock the website does, not a copy that gets refreshed now and then. We cover the wider point in why your AI chatbot gives wrong answers.
Hauslight, the AgentHaus website assistant, answers typed and voice questions from your pages, policies, and business information. When it's connected to the relevant systems, it can use current catalog and inventory information. A clean POS to Shopify sync is what makes that inventory information right.
If you've worked through these steps and the site still drifts, or the catalog is too big to compare by hand, this is the work we do for wine and spirits stores: match the records, connect the POS to the website, and keep it right after launch. AgentHaus founder Jonathan Gonsenhauser is an Advanced Sommelier, certified by the Court of Master Sommeliers, and most AgentHaus projects are delivered remotely.
Get a free store check. We'll run real customer searches on your site, check how your product data reads to Google and AI tools, and tell you the three fixes we'd make first.
Usually because stock gets edited in more than one place, the Shopify product isn't linked to the POS SKU, or the wrong store location feeds online inventory. The adjustment history on the product in Shopify shows which one it is.
For most stores with a register, the POS. Receiving, counts, and in-store sales already happen there. Make every stock and price change in the POS and let the connector push it to Shopify.
As close to every sale as your connector allows. Timing depends on the connector and the size of the catalog, so check your provider's documentation. A regular recount of fast movers keeps the number being synced right.
Because it reads the same stock data as your website. If your POS and Shopify counts don't match, the chatbot repeats the wrong number. Fix the sync first, then have the chatbot read the same live stock the website uses.
Not usually. Most fixes are in the product records and the connection between your POS and Shopify, not the site design.
Growth creates friction. We remove it.