Inventory accuracy is one of the less glamorous parts of running a retail store, and it is often one of the first concerns that comes up when a merchant considers adding a second checkout path. The question is reasonable: if transactions can now close through a shopper's phone instead of the counter POS, how do you ensure the inventory counts in Shopify stay accurate and do not diverge between the two paths?
The short answer is that Leav posts transactions to Shopify the same way Shopify POS does, so inventory counts update from a single system of record regardless of which path closed the transaction. But the mechanics behind that are worth understanding, because there are a few places where the data model matters and decisions you make in your Shopify catalog setup can affect how well it works.
How Shopify inventory works for a single-location store
Shopify's inventory model treats stock quantities as owned by locations, not by the product itself. A product with a quantity of 24 units is actually holding 24 units at a specific location ID. When a sale happens through Shopify POS, the system posts an inventory adjustment against that location: the quantity decrements by the number of units sold. This happens whether the sale came from a staffed counter terminal or from Leav.
Leav connects to Shopify using the standard Admin API and the same permission scopes that a Shopify channel app uses. When a shopper completes a mobile checkout transaction, Leav creates a Shopify order via the API with the items in the cart, at the quantities scanned, associated with the location the merchant configured during setup. Shopify processes that order and decrements inventory the same way it would for a POS sale. From Shopify's perspective, there is no difference between a sale that came through the counter terminal and one that came through Leav. They are both orders in the same system.
The timing question: when does inventory update
One question merchants ask is about timing. If a mobile checkout transaction and a counter POS transaction close nearly simultaneously for the last unit of a particular item, is there a race condition?
In practice, this is managed by Shopify's inventory reservation system. When a shopper adds an item to their Leav cart and proceeds to payment, Leav places a soft hold on that inventory quantity. The hold is released if the shopper abandons the cart; it converts to a committed inventory deduction when payment completes. This is functionally similar to how inventory is managed in Shopify's online checkout, where a quantity is reserved for a checkout session before the transaction closes.
For a typical independent store with more than a handful of units of any given item, the race condition scenario is uncommon. For stores that carry items with a single digit quantity on hand of specific variants, like a wine shop with two bottles of a particular vintage, this matters more. In those cases, the inventory reserve behavior is the protection layer, but it is worth knowing that the hold is time-limited. If a shopper leaves their cart open for an extended period without completing, the hold expires and the unit becomes available again.
Multi-location stores and location assignment
Shopify merchants who operate multiple physical locations on a single account need to be deliberate about location configuration when setting up Leav. The integration requires that you designate which location each mobile checkout transaction should deduct from. For a merchant with one physical store, this is automatic. For a merchant with three locations on one Shopify account, you configure the correct location for each store's Leav deployment separately.
Getting this wrong produces the right order count and revenue figures but the wrong inventory numbers at each location, because deductions are happening against the wrong location ID. We have seen this happen in early setups where a merchant has a warehouse or fulfillment location in their Shopify account in addition to retail locations, and the incorrect location is selected by default. The fix is straightforward, but inventory counts need to be corrected manually after the fact, which is why getting it right at setup is worth the extra attention.
Products with no inventory tracking enabled
Shopify allows individual products to be set to "do not track inventory," a common configuration for products sold in variable quantities (bulk goods, made-to-order items) or for items where stock management is handled externally. These products will appear in Leav's catalog and can be scanned and purchased, but no inventory deduction event is generated because Shopify does not track a quantity to deduct from.
This is expected behavior, but it is worth auditing your catalog before going live to make sure items that should be tracked are actually configured with tracking enabled. It is relatively common to find products where tracking was disabled as a workaround for some older issue and never re-enabled, and those products will silently drop off any inventory reporting without indicating a problem.
Returns and refunds across checkout paths
When a shopper returns a product from a Leav transaction, the refund and restocking process works through Shopify's standard refund flow. The Leav order appears in Shopify's order management view, and a merchant can initiate a refund from there the same way they would for any other order. Restocking the item to inventory is a checkbox option in the Shopify refund flow. There is no separate Leav-specific process for returns, which is intentional. One system, one refund workflow, one inventory adjustment record.
The practical implication for store operations is that staff handling a return from a shopper who checked out on their phone should look up the transaction in Shopify orders the same way they would for any other return. The order will be tagged to identify it as a Leav transaction, so it is easy to find. After that point, the return process is identical.
Inventory sync is one of those things that should work in the background without requiring daily attention. The design goal is that your Shopify inventory counts at the end of each day reflect everything that was sold, regardless of how it was sold. That is what we built toward, and it is what most well-configured deployments achieve.
Try Leav free
Mobile checkout for your Shopify store. 14 days free.
No credit card required. Connect your store and go live in 48 hours.
Start Free Trial