A retailer with one shop has an inventory question. A retailer with six shops, a warehouse in Obour and an online store has an inventory problem. The difference is not arithmetic. Stock now moves between places, and every movement is an opportunity for the record and the reality to separate.
Design inventory and branch sync for the connection you actually have
The most common architectural mistake we see is a point of sale system that requires the internet to sell. Think of a branch in a mall basement, a unit in Upper Egypt on a congested link, or a shop during a scheduled power cut. The connection will drop. If the till stops taking money when it does, the system has failed at the only job that matters.
Build offline first. Transactions queue locally and sync when the link returns. Any conflict surfaces to a human, rather than a system silently resolving it in favor of whichever record arrived last. Then decide deliberately what each branch may do while disconnected. Selling from local stock, yes. Issuing a refund against a purchase made at another branch, probably not.
Count movements, not just quantities
Stock transfers must have two steps. Dispatch from the sending location, then receive at the destination. The gap stays visible as goods in transit until somebody confirms. Single step transfers hide every loss between the two doors. Stock teleports the moment a manager clicks a button, and shrinkage becomes impossible to locate. Mainstream ERP tools such as Odoo support in transit locations, and the Odoo documentation shows how the flow works.
Replace the annual shutdown stocktake with weekly cycle counts by category. Twenty lines counted every Tuesday finds a problem within days rather than eleven months later. It does not cost you a trading day.
Then write down who owns the last unit. When the website and the shop floor can both sell the same item, you need an explicit reservation rule. Online orders hold stock for a set number of hours. Walk in customers take priority in the branch. The buffer is a number somebody chose, not an accident.
Returns need their own treatment. On cash on delivery orders in fashion and accessories, a meaningful share of what leaves the warehouse comes back. It sometimes arrives a week later and often not in sellable condition. Returned goods should land in a quarantine location and get inspected. Only then should they return to sellable stock. Retailers who skip that step spend the year selling items they do not have. Our note on cash on delivery and ad measurement shows how the same returns distort your marketing numbers.
Ramadan and Eid break your averages
Reorder points calculated from a trailing ninety day average will understock you every single year in this market. Grocery, confectionery and home goods surge in the fortnight before Ramadan. Apparel and footwear peak in the last ten days before Eid. Trading hours shift so far into the night that a delivery schedule built for daytime traffic falls apart.
Use the same period last year as the planning curve, adjusted for growth. Then set the buying calendar backwards from it. That single change usually does more for availability than any reorder algorithm. Our Ramadan calendar shows when demand starts to build, so purchasing and marketing can plan from the same dates.
Online sales add one more pressure. Customers now expect an honest delivery date at checkout, which only works when the stock figure is true. We cover that in delivery expectations and your marketing.
None of the above is exotic. It is discipline expressed in software. It is what our ERP and inventory systems work is built around, for multi branch retailers who cannot afford to guess what is on their own shelves.