Building a Multi-Branch Inventory and Sales Management System
How stock really moves between a godown and branches: transfers, in-transit stock, branch pricing, consolidated sales and tracing discrepancies.

A multi-branch inventory and sales management system tracks every unit of stock as it moves: received at a warehouse, dispatched to a branch, in transit on a truck, received and checked, sold at a branch price, returned or written off, and it rolls all branches' sales into one consolidated view. Tarka Raj Jaishi, a full-stack web application developer in Lamki, Kailali, builds these systems with the stock movement mechanics at the centre, because that is where multi-branch businesses in Nepal lose track of goods and money.
Why stock movement is the hard part
#Selling from one shop is simple: stock comes in, stock goes out. The moment a business has a godown in Dhangadhi and outlets in Lamki, Tikapur and Attariya, stock spends a lot of its life between places. A carton leaves the godown on Monday on a pickup, sits at a hotel stop overnight, and arrives in Tikapur on Tuesday with two pieces broken. If the system only knows "godown" and "Tikapur", those two days and two pieces vanish.
That is why this post focuses on the mechanics of movement rather than general branch management. For the organisational side, covering branch managers, reporting and permissions, see multi-branch business management software. Here the question is narrower: how does each unit get from one location to another without the numbers drifting?
The stock movement types a system must record
#Every change in stock should be a movement with a type, a source, a destination, a quantity, a user and a time. Stock on hand is never typed in directly; it is calculated from movements. This one rule prevents most discrepancies.
| Movement | From | To | Who records it |
|---|---|---|---|
| Purchase receipt | Supplier | Warehouse or branch | Store keeper, against a purchase bill |
| Transfer dispatch | Sending location | In transit | Sending store keeper |
| Transfer receipt | In transit | Receiving location | Receiving branch, after counting |
| Transfer shortage or damage | In transit | Loss or damage account | Receiving branch, with photos and reason |
| Sale | Branch | Customer | Billing counter |
| Customer return | Customer | Branch (saleable or damaged) | Counter, with original bill |
| Adjustment | Branch | Adjustment account | Manager only, with reason |
Inter-branch transfers, step by step
#A transfer is not one event but two, separated by time and distance. Treating it as a single "move 50 units" action is the most common design mistake.
- Request: the Tikapur branch requests 20 cartons of cooking oil and 10 bags of rice from the Dhangadhi warehouse.
- Approval: the warehouse or head office approves, possibly reducing quantities based on available stock.
- Dispatch: the warehouse picks and loads goods, records the dispatch with vehicle and driver details, and prints a transfer note. Stock leaves the warehouse and enters an in transit state.
- Receipt: when the goods arrive, the Tikapur branch counts them and records what actually arrived. Only then does stock enter the branch.
- Variance: if 20 cartons were sent and 19 arrived, the missing carton is recorded as a transit shortage, linked to the transfer and the driver, and flagged for the manager.
Because in-transit stock is its own location, the owner can always see what is on the road. If a transfer has been in transit for four days, something has gone wrong and the system can raise an alert.
Per-branch pricing
#Prices are rarely identical across branches. Transport costs make goods dearer in a remote outlet, competition makes them cheaper in a busy bazaar, and a clearance sale may run at one branch only. A practical pricing model:
- A base price for each product set by head office.
- Branch price overrides where a branch must differ, with the date range and who set them.
- Promotions limited to selected branches and dates.
- Branch staff can sell at the configured price but not change it.
- Transfer cost: transfers can carry an internal transfer price, so each branch's margin can be measured fairly.
Consolidated sales and stock reporting
#With every branch writing to the same database, the owner can see the whole business at once:
- Today's sales by branch, by product and by payment method.
- Stock on hand per location, including in transit, and its value.
- Slow-moving stock at one branch that is selling well at another, a natural candidate for a transfer.
- Reorder suggestions for the warehouse based on combined branch sales.
- Transfer variance by route and by driver over time.
For branches where the internet is unreliable, sales can be recorded locally and synced when the connection returns, with the system handling the order of events so stock is never double-counted.
Finding and fixing stock discrepancies
#Discrepancies will happen. The goal is to find them early and know which step caused them.
Cycle counts instead of one annual count
#Counting everything once a year at Chaitra end means a whole year of errors is mixed together. Cycle counting picks a few product groups each week per branch. The system lists what to count, staff enter the physical count, and the difference is shown immediately.
Tracing a difference
#When the count differs, the movement history for that item at that branch shows every receipt, transfer, sale and return since the last count. Usually the cause appears quickly: a transfer received without counting, a return put back on the shelf without being recorded, or a sale billed under the wrong item.
Common causes
#- Receiving transfers "as sent" without physically counting.
- Selling a similar item under another product's code because the right one was not in the system.
- Unit confusion: cartons sent, pieces received.
- Damaged goods thrown away without an adjustment entry.
The deeper inventory features, such as batches, expiry and reorder levels, are covered in inventory management web applications.
Frequently asked questions
#What does "in transit" stock mean?
#It is stock that has left one location but has not yet been counted in at another. Tracking it separately shows exactly what is on the road and makes it obvious when goods go missing between branches.
Can each branch have different prices for the same product?
#Yes. Head office sets a base price, and branch overrides or promotions can apply to specific branches and dates. Branch staff can sell at those prices but not change them.
What happens if a branch receives fewer goods than were sent?
#The receiving branch records what arrived. The difference is logged as a transit shortage linked to that transfer, vehicle and driver, and the manager is notified to investigate.
Can a branch keep selling when the internet is down?
#Yes, if offline billing is built in. Sales are stored locally and synced when the connection returns. This needs careful design and testing, so decide early whether it is required.
How is the cost of a multi-branch inventory system decided?
#It depends on the number of branches and warehouses, product count, whether batches or expiry are tracked, offline needs and reporting requirements. The cost guide explains these factors.
Discuss your project with Tarka Raj Jaishi
#If stock keeps going missing between your godown and branches, get in touch to work out how transfers should flow in your business.
- Phone: 9865760285 / 9812636744
- WhatsApp: +977 9865760285
- Website: tarkarajjaishi.com.np
- Facebook: facebook.com/TarkarajJaishi
Newsletter
New posts in your inbox. Confirm by email, unsubscribe any time.
More in Business Software
View all
Custom Logistics, Delivery and Parcel Management Web Application Development
Parcel statuses, rider runs, COD reconciliation, tracking pages and hub manifests: how a delivery management web application fits Nepali courier work.
Tarka raj Jaishi · 6 min

How to Develop a Web-Based Learning Management System in Nepal
Courses, low-bandwidth video, mock tests, progress tracking and certificates: how to build an LMS that works for Nepali coaching centres and schools.
Tarka raj Jaishi · 5 min

Custom CRM and ERP Web Application Development for Nepali Businesses
CRM looks outward at customers; ERP looks inward at operations. Here is how to tell which one your business needs first and how to start small.
Tarka raj Jaishi · 5 min

Developing an Online Booking and Appointment Management System in Nepal
Slots, availability, double-booking prevention, reminders, cancellations, advance payments and staff calendars for an appointment system that customers trust.
Tarka raj Jaishi · 6 min
Comments
Posting as a guest