The head office buys goods and distributes them to branches, every sale at a POS is deducted from stock immediately, and batches nearing expiry are visible in advance. The fiscal receipt and marking requirements are covered separately, based on official sources.
There are many products, turnover is fast and shelf life is short. As the number of branches grows, managing through Excel and the phone stops working.
The core set for a chain. Which apps are needed is determined during the diagnostic.
Branch POS, shift, returns, loyalty, weighed goods. Cash register and POS page →
Central warehouse and branch warehouses, internal transfers, goods in transit, stocktaking.
Receiving, transfers and counting with a scanner. Part of Enterprise.
Central purchasing, supplier terms, minimum and maximum stock rules.
Expiry by batch (lot), alert date, issuing goods with the nearest expiry first (FEFO).
Loyalty card, coupon, “buy X, get Y free,” gift card.
Journals by branch, supplier invoices, payment and bank reconciliation.
Scale, USB printer, customer display, cash drawer. Part of Enterprise.
Scheduling cashiers and warehouse staff into shifts. Part of Enterprise.
Every step leaves a document in Odoo, so the head office sees a branch’s stock level on its own screen.
A minimum and maximum rule is set for fast-moving goods, and the rest is bought to order. Odoo 20 suggests the minimum and maximum based on demand history.
Goods are received with a scanner, and the batch number and expiry are entered. The quantity is matched against the supplier’s invoice.
A transfer document is created from the central warehouse to the branch. Goods in transit sit in the “transit” location and remain the company’s property.
At the branch, goods are put on the shelf. Weighed goods are weighed on the scale, and the rest are sold by barcode.
Each sale is deducted from the branch warehouse, loyalty points are credited, and the journals are closed at the end of the shift.
When the alert date arrives, the goods become visible. A discount label is applied, or the goods are removed from stock and the write-off reason is recorded.
A periodic count interval is set for locations. The count result is recorded separately as a difference and leaves an audit trail.
The manager sees sales, stock levels, write-offs and differences by branch and category.
The example is illustrative. A batch of yogurt was entered at receipt with a lot number and an expiration date. In the product card, the alert and removal periods are set in days, and the FEFO strategy is selected for the location.
Most chain processes are covered by the standard apps. Marking, the fiscal receipt and automatic discounts based on expiry are a separate matter. The information follows the Odoo 20 documentation; if your version differs, we check it during the diagnostic.
| Goal | In standard Odoo | Extra work (BUline) |
|---|---|---|
| Multiple branches, a warehouse for each branch | Available: several warehouses, replenishment from another warehouse (Resupply From) | Branch structure, locations, roles |
| Transfers between branches | Available: internal transfers, a transit location for goods in transit | Linking to the waybill — estimated |
| Central purchasing and replenishment | Available: minimum and maximum rules, triggered manually or automatically. In Odoo 20, the values are suggested based on demand history | Initial values by branch and category |
| Expiration date | Available: only for goods tracked by lot or serial number; four dates, FEFO. The Odoo 20 POS warns about goods past their expiry date | Decide which product groups to enable it for |
| Automatic discount based on remaining shelf life | Not confirmed in the documentation: the POS has a discount label barcode, but tying the price to the lot expiry is not mentioned | The discount rule and the label printing process, with a custom module if needed |
| Loyalty | Available: loyalty card, coupon, “buy X, get Y free,” gift card | The rules and reporting are adapted to your policy |
| Weighed goods, customer display, electronic price tags | Available: scale, customer display, integration with the Pricer platform | Testing device models |
| Stock counts | Available: physical inventory, periodic counts by location, counting with a scanner | Count schedule and grouping of products |
| Fiscal receipt | Not mentioned in the official documentation: connecting to Uzbekistan’s fiscal module | Connecting to cash register equipment from the registry. Cash register and POS page → |
| Marked goods (Asl Belgisi) | Not mentioned in the official documentation: connecting to Asl Belgisi | Only if a marked group is sold: estimated as a separate project |
The following has been checked against official sources. What applies to your product range, we list in writing during the diagnostic.
Each connection is assessed and built separately. We do not promise that a “ready-made connector exists.”
Reports are not copied into a separate spreadsheet; they are generated from the documents in the same database.
The stages follow the general BUline Method. The timeline is agreed in writing after the diagnostic. Implementation process →
We study the central warehouse, one or two branches and the POS process, the groups of goods with limited shelf life, and whether marked goods are present. Outcome: a business requirements document (BRD).
We confirm the branch and warehouse structure, the legal entities, the roles, and the POS and document integrations.
First, one branch works with real sales: receiving, POS, expiry control, counting. The remaining branches are then connected one by one.
Cashiers, warehouse staff, branch managers and buyers are trained by role. Instructions and video lessons are provided.
Enhanced support, then connecting new branches and extending reports.
This list speeds up the diagnostic. We can start even if not everything is ready.
| Mistake | Consequence | How we prevent it |
|---|---|---|
| Turning the POS and the warehouse into two separate worlds | Sales and stock levels do not match | A single source of stock data from day one |
| Enabling tracking for all products | Extra data entry grows at receiving and sale | Enable it only for groups with expiry dates |
| Not setting up FEFO | The old batch stays on the shelf | The FEFO strategy for a location or category |
| Processing the invoice and the warehouse receipt on different days | A quantity difference | Both on the same day and by the same responsible person |
| Not testing the discount label prefix | The scanner does not apply the discount | Testing the nomenclature rule at the POS |
The head office and each branch are separate warehouses. A branch is replenished from the center, goods in transit sit in a transit location and remain company property. If branches are separate legal entities, Odoo 20 supports inter-company replenishment and delivery.
The documentation does not confirm such automatic price reduction. Odoo shows the expiry date, raises a warning and, under FEFO, issues the older batch first. The point of sale has a barcode for the discount label. If the price has to be tied to the expiry date, it is assessed separately at the diagnostic.
These groups are on the Tax Committee's marking list. They require a 2D scanner, registration in the Asl Belgisi marking system and a code on the receipt. Odoo's documentation does not mention a connection to this system, so if marked goods are sold, the connection is assessed as a separate project.
A fiscal receipt is issued by an online or virtual cash register listed in the official register. The Odoo point of sale (POS) handles sales, inventory and accounting. How to connect the two is chosen at the diagnostic. POS page →
In Odoo, counts are planned by location and by product, and a location can be given a periodic count interval. Counting with a scanner speeds up the warehouse clerk's work. How to run a count while the store is open depends on your procedures and is agreed at the diagnostic.
Odoo Online is not compatible with third-party and custom modules. If you need a fiscal receipt, electronic invoice or marking module, Odoo.sh or your own server is chosen. Hosting types →
The Odoo license depends on the number of users and apps (terms on odoo.com). The scope of BUline's service depends on the number of branches and cash registers, apps, customization, integrations, data volume and training. The exact cost and timeline are given in a written proposal after the free diagnostic.
During the diagnostic, we review your processes and tell you where standard Odoo is enough and where configuration is needed — with an app list, edition and phases.