In a retail environment where a Point of Sale is involved, inventory is constantly changing. Inventory can fluctuate due to sales, returns, exchanges, damaged goods, adjustments, receiving Purchase Orders, reconciliation, layaways, special orders, work orders and more.
Larger organizations may find that inventory is changing every second in their Retail environment.
With any integration, 1 system is typically the Master System of Record and the others are extensions of that system (e.g. channels). You cannot have 2 systems be the Master, otherwise 1 system will overwrite the other in error.
To correctly sync inventory, one system should overwrite stock in the other system and the other extension or channel should send sales orders back to the Point of Sale (which either adds or removes stock (+-) from the existing stock count).
A business has a Point of Sale where the stock for Product XYZ is 4 units. You have 3 channels integrated to your Point of Sale (eBay, Amazon and Magento). You also get 1 sale today on each channel for 1 unit of Product XYZ.
The Point of Sale is the Master System of Record. It will sync 4 units of stock to eBay, Amazon and Magento making sure each one stays up to date when any stock change occurs in the Point of Sale. This will occur every 5 minutes.
When sales occur on these 3 channels (eBay, Amazon and Magento), the sale orders will sync back to the Point of Sale. Most Point of Sale platforms have an internal process where a sale will reduce the stock level for line items on the sale when received. Stock is reduced in real-time which guarantees that there are no sync errors.
So in real time, the Point of Sale adjust the stock level accordingly for the eBay sale, the Magento sale and the Amazon sale (4-1-1-1 = 1).
Can I turn off the inventory sync to a channel?
Yes. Our integrations support that feature, but this means that no inventory will sync to the channel when changes to stock occur in the Point of Sale.
Can I turn off sales order downloads from the channel back to the Point of Sale?
Yes. Our integrations support that feature, but this means stock will not be adjusted in the Point of Sale from sales that occur on the channels.
Can I only sync inventory from the channel back to the Point of Sale?
We do not support that option. That opens the door for inventory errors.
Consider this scenario.
Product XYZ has 10 units in the Point of Sale. Product XYZ has 10 units in the web store.
A Cashier receives 5 units and another Cashier sells 1 unit. This changes stock in the POS to 14 (10+5-1=14).
At the same time, a customer places an order online for 7 units. The channel sends an API request to overwrite the stock from 10 units in the POS to 3 (10-7=3).
Inventory in the POS is now 3, when in fact it should be 7.
Even a system that could sync inventory every second will still have the same issue. Systems occasionally go down, API's are not flawless. It is better to plan for the unexpected and implement an architecture that will remain error free even if one system is slow to update the other.