# One stock record. Every place you sell.

> What to agree before connecting your point of sale and online store, including available stock, returns, and failed updates.

- Published: Sep 25, 2026
- Topic: Connected commerce
- Author: RDR Digital
- Original: https://rdr.digital/blog/connecting-pos-and-ecommerce

A customer sees an item online while another shopper brings it to the till. Both channels need an answer to the same question: can we promise this item to this customer?

Connecting the systems is part of the work. First, the business needs an agreed meaning for the quantity being shared. A shelf count, a purchase order, and the quantity available for a new sale are different things.

## Agree what available means

Shopify, for example, distinguishes on-hand inventory from quantities that are available, committed, unavailable, or incoming. Its [inventory-state documentation](https://help.shopify.com/en/manual/products/inventory/fundamentals/inventory-states) explains that on-hand stock comprises available, committed, and unavailable units; incoming stock is separate. Other systems may use different names or rules.

Here is an illustrative record for one product at one location, using those definitions:

| Inventory state | Units | Meaning in this example                  |
| --------------- | ----- | ---------------------------------------- |
| Available       | 8     | Can be offered to a new customer.        |
| Committed       | 3     | Already allocated to unfulfilled orders. |
| Unavailable     | 1     | Held for a quality check.                |
| On hand         | 12    | The total of the three states above.     |

The integration should move the quantity the receiving system actually expects. Sending 12 as the available quantity in this example would disregard the four units already committed or held.

## Give each record an owner

Write down where the team maintains product identifiers, location identifiers, stock adjustments, and order status. “Both systems can edit everything” leaves an unanswered question when their records disagree.

Use a small mapping exercise before development. Take a few representative products, including a size or colour variant, and trace their identifiers across the point-of-sale system and the online store. Decide what should happen when a product exists in only one place.

Ownership can differ by record. A catalog tool might manage descriptions while an inventory platform controls saleable quantities. The useful outcome is an explicit agreement, rather than a requirement to put every record in one application.

## Walk through the exceptions

Start with the ordinary purchase, then test the less comfortable cases:

- An order is cancelled before collection.
- A customer returns an item that cannot be sold again.
- A staff member corrects a count after a stocktake.
- The same product is stocked at several locations.
- The connection is interrupted while sales continue.

For each case, identify the person or system allowed to change the stock record. Decide when an item returns to available stock and whether inspection is required first. Write the expected result in terms store staff can verify.

## Plan for repeated and missed messages

Some integrations receive event notifications called webhooks. Shopify's [delivery guidance](https://shopify.dev/docs/apps/build/webhooks/verify-deliveries) covers duplicate detection and explains why applications should not rely solely on webhook delivery. This makes recovery and reconciliation part of the design.

Ask the implementation team to demonstrate what happens if the same update arrives twice, if a message is missed, and if the receiving system is temporarily unavailable. A repeated message should not blindly apply the same stock movement again.

Agree how differences will be detected, where failed updates will be visible, and who will investigate them. The right checking interval depends on your systems, sales activity, and tolerance for stale information; there is no universal setting that removes every risk of overselling.

## Start with a controlled rollout

Choose a limited product group or location for the first release. Compare the resulting records with the expected outcome, involve the people who handle exceptions, and agree when it is safe to expand.

Useful acceptance checks include a sale, cancellation, return, manual adjustment, and recovery after a connection failure. Keep a record of the results and unresolved limitations.

Our [Retail industry page](https://rdr.digital/industries/retail) shows how storefronts, inventory, and store operations can fit together. A discovery discussion should establish which of those connections your current systems support before committing to a specific design.

## Sources

- [Shopify Help Center: Understanding inventory states](https://help.shopify.com/en/manual/products/inventory/fundamentals/inventory-states)
- [Shopify developer documentation: Verify webhook deliveries](https://shopify.dev/docs/apps/build/webhooks/verify-deliveries)
