A distributor sells on terms that match the customer group, ships goods by batch and expiry date, and keeps documents and receivables under control. FMCG and building materials have a separate page; pharmaceutical distribution is covered on this page, with its pharmaceutical requirements.
Industry-specific processes and Uzbekistan's requirements for FMCG and building materials are on separate pages. Pharmaceutical distribution is below, on this page.
Customer groups and price lists, agent orders, batches, receivables control, electronic invoices and waybills. FMCG page →
A wide assortment, units of measure (m², m³, pcs, pack), warehouse, ordering and delivery. Building materials page →
License, storage conditions, batch and expiry date, labeling. Below, on this page →
The basis of distribution is the same: order, warehouse, document, receivables. The difference is where the risk lies and in the additional requirements.
| Area | Main risk | Odoo tool | Additional requirement |
|---|---|---|---|
| FMCG | Expiry, receivables and agent control | Batches and FEFO, price lists, payment terms, picking (batch, wave: Enterprise) | Labeling, electronic invoice and waybill |
| Building materials | Units of measure and bulky-goods delivery | Units of measure and packaging, warehouse locations, delivery | Industry requirements are identified at the diagnostic |
| Medicines | Expiry, storage conditions and license | Lot, FEFO, a separate location, quality control on receipt | Pharmaceutical license, temperature log, labeling |
In wholesale of medicines, three things matter at once: the license, storage conditions and batch expiry. The wholesale procedure (Cabinet of Ministers Resolution No. 185, Annex 1) requires a license for pharmaceutical activity. Under the regulation, temperature and humidity in the warehouse are recorded every day, heat-sensitive products are stored at the temperature stated on the label, and records are kept by expiry date. Substandard or counterfeit products are held in a separately isolated area under a written act; returned products are identified and kept in a separate place. The latest version of the regulation has been in force since 3 July 2026.
Part of these requirements is available out of the box in Odoo. Each medicine is tracked by lot (batch), expiry is managed with four dates, and FEFO (first expired, first out) issues the batch closest to expiry first. A separate warehouse location is set up for returned or rejected products. The quality control point on receipt (Enterprise) asks for a “Pass–Fail” or “Instructions” check; in Odoo 20, a failed check records the defect location (Failure Location).
The daily temperature and humidity log is extra work. Odoo's documentation describes no such tool, and the list of IoT devices (printer, scale, display, measuring instruments, camera, foot switch) does not name a temperature sensor. The log is kept in a Studio form or with a “Measure” check; connecting a sensor is estimated separately. Medicines belong to the digital labeling group (since 1 September 2022); Odoo's documentation does not mention a connection to Asl Belgisi (the national digital labeling system), so it is a separate project.
Each stage leaves its own document in Odoo. The sequence below is an example; your own workflow is defined at the diagnostic.
The receipt document records the lot number and quantity. If you try to validate without a number, Odoo returns an error.
The quality control point requests a check. If a defect is found, the batch is moved to a separate location.
The goods are put into a suitable location, and stock is visible by location and batch.
A temperature and humidity log is kept. This is extra work: a Studio form or a “Measure” check.
When the order is confirmed, the goods are reserved and FEFO issues the batch closest to expiry first.
The lot number can appear on the delivery slip. The electronic invoice and waybill are issued separately.
Returned products are kept in a separate place (a requirement of the regulation). So that they do not go on sale before a decision is made, the location is created in a separate structure; we define this at the diagnostic.
The example is hypothetical. A supplier reports a defect in one batch. You find the lot number on the “Lots/Serial Numbers” page. The “Transfers” button shows the delivery lines that included this lot, and the “Location” button (if multiple locations are enabled) shows the stock still in the warehouse.
Most of the sales chain is in the ready-made apps. The temperature log, labeling and electronic documents are separate work. The data follows the Odoo 20 documentation; if your version differs, we check it at the diagnostic.
| Goal | In standard Odoo | Extra work (BUline) |
|---|---|---|
| Lot, expiry date, FEFO | Available: lot, four dates, alert, FEFO | Setting up product groups with expiry dates |
| A separate place for returned and rejected products | Available: warehouse locations | Location structure and access rights |
| Quality control on receipt | Available (Enterprise): control points, Pass–Fail, Instructions; in Odoo 20, the defect location | Adapting the checklist to your workflow |
| Daily temperature and humidity log | Not described in the documentation | A Studio form or a “Measure” check; sensor connection is estimated |
| Monitoring the license number and validity period | No dedicated tool is described | A field and an expiry alert (Studio), estimated |
| Digital labeling of medicines (Asl Belgisi) | A connection is not mentioned in the documentation | Separate project: checking the operator's capabilities |
| Electronic invoice and waybill | Not mentioned in the localization; Apps Store has third-party e-Faktura modules (for example, “Uzbekistan e-Faktura”, 20.0) | Test the module or connect through the operator's API |
| Customer groups, price list, receivables control | Available; the credit limit at the POS only warns | The setup described on the FMCG page |
The items below have been checked against official sources. Those that apply to your line of business, we list in writing at the diagnostic.
Reports are not copied into a separate spreadsheet: they are generated from documents in this same database.
| Mistake | Consequence | How we prevent it |
|---|---|---|
| Tracking expiry from the invoice only | A batch nearing expiry is not seen in time | Enter the lot and four dates on receipt, use FEFO in daily operations |
| Putting returned goods back into the main location | A substandard batch can end up on sale | A separate location; the decision is documented by a written act |
| Keeping the temperature log on paper | During an inspection, the data is not in one place | Keep the daily log in the database (Studio or Measure) |
| Issuing the electronic invoice and shipping the goods on different days | The document and the goods do not match | One person responsible and one process |
This list speeds up the diagnostic. We can start even if not everything is ready.
The documentation describes no dedicated pharmaceutical app. Batches, expiry dates, a separate location and quality control on receipt are in the standard apps. License monitoring, the temperature log and labeling are extra work; we estimate them at the diagnostic.
The documentation describes no such tool. The log can be kept in a Studio form or with a “Measure” check. The list of IoT devices does not name a temperature sensor, so connecting a sensor is estimated separately.
Odoo's documentation does not mention a connection to Asl Belgisi. Medicines have been in the labeling group since 1 September 2022, so we assess the connection method at the diagnostic together with the operator's capabilities.
The main difference is in units of measure and bulky-goods delivery: goods may be sold by square meter, cubic meter, piece or pack. This direction is covered on a separate page.
Odoo's official Uzbekistan localization (Fiscal Localization → “uz Uzbekistan”) is built for accounting: accounts, taxes and reports. A connection to electronic invoicing is not mentioned in it. Apps Store has third-party modules; we test them or connect through the operator's API.
Odoo Online is not compatible with third-party and custom modules. If you need an electronic invoice module, a temperature sensor or a labeling module, Odoo.sh or your own server is chosen. Hosting types →
The Odoo license depends on the number of users and apps (terms are on odoo.com). The scope of BUline's work depends on users, warehouses, customer groups, 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.