A backend system keeping inventory counts consistent across an online store, marketplace listings, and a POS system.
Inventory counts frequently drifted out of sync across the online store, third-party marketplaces, and in-store POS, leading to overselling.
We built a central inventory service with webhook-driven sync across all sales channels, giving the business one authoritative stock count.
Stock counts now stay consistent across every sales channel automatically, removing the manual reconciliation that previously caused overselling.
The business sold the same stock through three channels that each believed they owned the source of truth: a Shopify storefront, two marketplace listings, and an in-store POS. Each kept its own counter, and each was updated by a different process on a different schedule.
The visible symptom was overselling — a customer buying the last unit online minutes after it sold in-store. The underlying problem was that no system could answer the question "how many do we actually have?" without a person exporting three reports and reconciling them by hand.
Any fix had to work without pausing sales. Retail does not get a maintenance window in the run-up to a peak season.
We introduced a central inventory service that owns stock levels outright. Every channel became a consumer of that number rather than a keeper of its own. Deciding what owns the truth is the whole problem in a sync system; everything after it is plumbing.
Rather than storing a quantity and overwriting it, the service records immutable stock movements and derives the current level. Overwriting loses history and makes concurrent updates unsafe; an append-only ledger makes every discrepancy explainable after the fact.
Webhooks arrive late, twice, or not at all. Every inbound event carries an idempotency key, and a scheduled reconciliation pass re-checks each channel against the ledger to catch anything the event stream dropped.
Stock is reserved at checkout rather than decremented at fulfilment, so the window in which two channels can sell the same unit closes at the point of intent instead of the point of dispatch.
Stock counts now stay aligned across the storefront, marketplaces, and POS without anyone exporting a report. The manual reconciliation that used to precede every busy weekend is gone.
Because the ledger is append-only, when a count does look wrong the team can trace exactly which movement caused it instead of guessing — which turned inventory disputes from an investigation into a lookup.
The channel-adapter boundary has since let the business add a sales channel without changes to the core service.
Tell us about your project, product idea, or business challenge. Dvexo can help transform your vision into reliable, scalable software.