Selling in-store and online from one Shopify account sounds simple. In practice, keeping inventory in sync across your POS and online store has specific failure points that catch most retailers off guard. This guide covers how POS inventory works, the five most common sync issues, how to set everything up correctly, and how to choose a third-party inventory app that will not overwrite your POS adjustments.
Shopify POS and your online store share the same inventory database. There is no separate stock count for in-person sales — both channels draw from the same pool. When a product sells at the register, it deducts from the same count that your online store shows. When an online order is fulfilled, it deducts from the location assigned to fulfil it.
This shared inventory model is Shopify's biggest advantage for omnichannel retailers. You do not need to manually reconcile two separate systems. The sync is real-time within the Shopify platform.
Shopify POS sync works reliably in normal conditions. These are the specific situations where it breaks down — and what to do when it does.
A staff member receives a return at the POS and adds 3 units back to stock. Hours later, a connected inventory app pulls Shopify data and pushes its own stock count — overwriting the adjustment. The return disappears from your records.
Choose inventory apps that read from Shopify but do not write back to stock counts automatically. Apps that only update stock when you manually receive a purchase order are safe for POS stores.
Usually caused by a sync delay or a POS session that was not properly closed. Items sold at the register appear sold out locally but still purchasable online for a few minutes — or longer if the session was left open.
Always close POS sessions properly at end of day. Enable "automatically deduct inventory" in your POS settings. Check that your POS location is correctly assigned to your online sales channel in Shopify Admin.
A stock transfer was initiated in Shopify Admin but never marked as received at the destination location. The sending location shows the units gone. The receiving location never logged them. The stock appears to have vanished.
Always complete both sides of a stock transfer — mark as sent AND mark as received. Incomplete transfers are the most common cause of mysterious inventory discrepancies in multi-location stores.
A customer returns a product at your retail store but the return is processed in Shopify without specifying the location. The stock gets added back to your default location — which might be your warehouse, not your retail floor.
When processing returns on POS, verify the return is being logged to the correct location before completing. Check your default return location setting in POS preferences.
A CSV inventory import updated quantities for a product but mapped variant sizes incorrectly — small quantities went to large, large to small. In-store staff sell based on physical count. The numbers diverge quickly.
Always do a test import with 2-3 products before bulk importing. After any CSV import, spot-check 5-10 variants against physical stock before opening the next day.
Most POS inventory problems come from setup shortcuts taken at the beginning. These six steps, done in order, prevent the majority of sync issues before they happen.
In Shopify Admin → Settings → Locations, create a named location for every physical selling point — your retail store, any popup locations, your warehouse. Do not lump everything into one default location. Separate locations give you accurate per-location stock counts.
After creating locations, assign the actual physical stock to each one. A product with 100 total units split between a warehouse (70) and retail floor (30) should show 70 and 30 respectively — not 100 in one place. This is the most commonly skipped setup step.
In Shopify Admin → Settings → Shipping and Delivery → Locations, set which location fulfils online orders first. Typically your warehouse, not your retail floor. This prevents online orders from pulling stock that your retail staff need for in-person sales.
Shopify does not track inventory by default. Go to Products → select product → Inventory → enable "Track quantity." Do this for every product variant sold in-store. Without tracking enabled, POS sales do not deduct from your stock count.
In POS settings, set a low stock threshold that makes sense for your retail location specifically — not the same threshold as your online store. A retail floor running low at 5 units might be a full online reorder at 50 units. Set them independently.
End every trading day by properly closing the POS session, reviewing the daily sales report, and reconciling any manual adjustments made during the day. A 5-minute close routine prevents most sync discrepancies before they compound overnight.
If you operate more than one retail location or combine a retail store with a warehouse, Shopify's multi-location inventory is what keeps everything straight. Each location has its own stock count. Online orders pull from whichever location you set as the fulfilment priority. If you're running multiple physical warehouses with complex routing between them, Shopify's native multi-location tools may not be enough — see our guide on Shopify warehouse management to find out whether you actually need a full WMS.
What is physically available for in-person purchase. POS sales deduct from this location. Transfers from warehouse replenish it.
Your main inventory reserve. Typically set as the fulfilment location for online orders. Transfers to retail floor when in-store stock runs low.
Controls which location handles online orders first. Set warehouse as priority so online orders do not deplete your retail floor stock.
Shopify POS handles stock sync. What it does not do is tell you what is running low relative to how fast it sells, when to reorder, or which products are approaching dead stock. That is where third-party inventory apps add value.
The critical requirement for POS stores: the app must not overwrite your inventory counts automatically. Apps that push their own stock figures back to Shopify on a schedule will overwrite adjustments your POS staff make during the day — returns received, damaged units removed, manual corrections. This is the most common complaint from retail stores using inventory apps.
Debnix reads your inventory data from Shopify but never automatically pushes stock counts back. The only time Debnix updates inventory is when you manually mark a purchase order as received — and even then it uses Shopify's own inventory adjustment API so the change shows correctly in your location history. POS adjustments made by your staff are never overwritten.
Yes — Shopify POS and the online store share the same inventory system. When a product is sold at the register, the stock count decreases immediately and the change is reflected online. When an online order is fulfilled from a specific location, the stock at that location decreases. The sync is real-time within the Shopify platform, though brief delays of a few seconds can occur during high-volume periods.
Yes, but you need to be careful which one you choose. Some inventory apps write directly back to Shopify stock counts on a schedule — this can overwrite adjustments your POS staff made during the day. Choose apps that only update stock when you explicitly receive a purchase order, rather than apps that automatically sync or push their own count to Shopify. Always check the app's documentation for how it handles POS stores before installing.
Create a separate named location in Shopify Admin for each physical location. Assign stock quantities to each location independently. Set fulfilment priority to control which location handles online orders. Use stock transfers in Shopify Admin to move inventory between locations — and always mark transfers as both sent and received to avoid discrepancies. Shopify POS Pro includes additional multi-location features like staff management and reporting per location.
The most common causes: an incomplete stock transfer that was marked sent but never received; a return processed to the wrong location; a third-party inventory app that overwrote a manual adjustment; a product with inventory tracking disabled; or a POS session that was not properly closed. Run a physical count for the specific products showing discrepancies, compare to your Shopify Admin inventory history, and look for the adjustment event that caused the gap.
POS Lite (included with all Shopify plans) covers basic inventory tracking, sales processing, and stock sync. POS Pro adds staff management with individual permissions, detailed reporting per location, unlimited register support, and advanced exchange workflows. For inventory management specifically, both tiers sync with the same Shopify inventory system — the difference is in reporting depth and staff access controls, not in how stock is tracked.
Set your inventory policy to "Stop selling when out of stock" for all products in Shopify Admin. Assign stock to locations accurately so Shopify knows the true available quantity per channel. Set your online fulfilment location to your warehouse rather than your retail floor, so in-person and online sales draw from separate stock pools where possible. For products with shared stock, real-time sync handles the deduction — but a brief processing window means very high-velocity products can occasionally oversell. Safety stock buffers help prevent this.
Debnix adds AI demand predictions, reorder points, dead stock detection, and profit tracking to your Shopify store — without touching your POS adjustments. $21.99/mo, 30-day free trial.
Built solo.