MoySklad
Odoo
amoCRM
Tizimlashtirish
Marketing
AI agentlar
BUline
MoySklad
Odoo
amoCRM
Систематизация
Маркетинг
Маркетинг: обзор
Стратегия и контент
Стратегия и планКонтент и SMM
Рекламные каналы
Google AdsYandex DirectРеклама в TelegramInstagram и FacebookМаркетплейсы
Органический рост
SEO
Измерение и аналитика
Аналитика и KPI
AI-агенты
BUline
MoySklad
Odoo
amoCRM
Systematization
Marketing
AI agents
BUline
Home/Odoo/Building materials trade
Odooimplemented by BUline
Odoo · Industries · Building materials trade

Building materials trade — one product, several units, warehouse, delivery and receivables in one system

Tiles are sold by the square meter, delivered in boxes and counted in the warehouse in yet another unit. Odoo keeps one product in several units, reserves the order, checks the load volume and tracks receivables. Tax documents and the waybill are connected separately.

m², m³, pcs, packagingWarehouseDeliverReceivablesIKPU (MXIK) and VAT
Problems

Typical obstacles in building materials trade

The range is wide, orders are bulky, and the customer often works by project site. Excel and a paper ledger break down at this scale.

Product and unit

  • One product is recorded in square meters, boxes and pieces in different documents
  • Variants by color, size and batch make the catalog unmanageable
  • The warehouse stock is in m², sales are in boxes: the records do not match

Order and delivery

  • A large order is delivered by several trucks over several days
  • Nobody checks whether the weight and volume fit in the truck
  • The foreman phones from the site to say the goods have not arrived

Receivables and documents

  • Receivables and payment terms are kept in a ledger
  • The electronic invoice, waybill and cash receipt are prepared separately
  • The product has no IKPU (MXIK) code, or it is wrong
Industry package

Odoo's Hardware Store package: a ready setup for a store, not a wholesale solution

Odoo S.A. lists the “Hardware Store” industry package in the Apps Store (technical name hardware_shop; present in versions 17.0 through 20.0). The page describes it as being for stores with a broad range: plumbing, tools, garden, carpentry, electrical and household goods. According to the description, the package combines POS, inventory, sales, purchase, accounting, contacts, employees, a dashboard, barcodes and documents; the mandatory dependencies are Contacts, Knowledge, Discuss, Invoicing, Inventory, Sales, Point of Sale and Purchase. The package requires Odoo Enterprise and is available on Odoo Online, Odoo.sh and your own server. The page states that accounting is not preinstalled, warehouse settings stay simple and country localization is not included.

Odoo's Hardware Store industry page lists POS, inventory, invoicing, planning, purchase and eCommerce. Unit of measure, packaging, business-customer terms and customer receivables are not mentioned there. These are exactly the parts at the core of wholesale building materials trade and delivery to project sites, so we describe them separately below.

Odoo has other packages for building contractors (General Contractor, Property Developer): they are for project-site and estimate work, not for trade. Building contractor page →

  • The package is a starting setup: rules for units, packaging, receivables and delivery are built separately
  • The Uzbekistan localization is not part of the package; the fiscal receipt and the waybill are not described on the page
  • Hosting type: Online, Odoo.sh or your own server
—
—
—
In Odoo

Which apps cover building materials trade

The core is sales and inventory. The rest tie them to the POS, purchasing, delivery and accounting. Which apps are needed is determined at the diagnostic.

Sales

Quotation, order, advance payment, price list, delivery and invoice.

Warehouse

Multiple warehouses, reservation, picking, delivery, packaging, stock count.

POS

Store counter: cash, card, customer account, shift.

Purchase

Supplier order, minimum stock rule, purchase unit.

Accounting

Invoice, payment terms, receivables and reminders, bank reconciliation.

Barcode

Scanner for receiving and counting, packaging barcode. Included in Enterprise.

Fleet

Your own trucks and their weight and volume limits; used in delivery planning.

Online store (eCommerce)

Catalog, stock levels, ordering for business and individual customers.

Hardware Store (industry package)

A ready-configured database for a store. Requires Enterprise.

Unit and packaging

m², m³, pcs and packaging: how to keep one product in several units

Tiles are counted in the warehouse in square meters, sold to the customer in boxes, and at the POS rung up by the box or by the piece. According to Odoo's documentation, this requires enabling “Units of Measure & Packagings” in the Inventory settings. Three units sit in three places: the inventory unit (stock is counted in it), the sales unit (the Packagings field on the product's Sales tab) and the purchase unit (the Purchase tab). Odoo performs the conversion between units itself: if a sales order is in a different unit, the quantity is converted to the inventory unit at delivery.

Packaging is product-specific: it is defined by a name, the quantity inside and a unit of measure (a hypothetical example: one box is 1.44 m²), and it can also be given a barcode. If the unit you need is not in the table, a new one is created on the Units & Packagings page, with a name and its equivalent in another unit. The product category's Logistics section has a “Reserve Packagings” field. “Reserve Only Full Packagings” reserves only whole packages, while “Reserve Partial Packagings” also reserves partially. According to what is new in Odoo 20, packaging-specific pricing in sales has also been added.

Rounding the quantity on a sales line to a whole box is not described in the documentation. For a product like tile, we test this on a test database and, if needed, cover it with a rule.

  • The inventory, sales and purchase units can differ: the supplier ships by the ton, you sell by the bag
  • Lines in m² and in pieces are mixed within one order
  • Grouping products in the same unit onto one line at the POS: “Group Products in POS” (enabled in developer mode)
  • Lot tracking for products that differ by color, shade or batch (tile, paint): lot and serial
—
—
—
Process

From measuring to settled debt: eight steps

Each step leaves a document in Odoo, so the manager, warehouse clerk, driver and accountant all look at the same order.

01Payments

The customer provides a product list or the site area. The manager builds the quotation with the sales unit and packaging.

02Order and advance payment

The quotation becomes an order. The advance payment and payment terms (due date, staged payment) are set here.

03Reservations

The warehouse reserves goods in whole packages or partially. A purchase order is opened for the missing part (depending on the rule and route).

04Picking

The warehouse clerk picks the order and brings it to the loading point. A large order is split into several deliveries.

05Loading and delivery

The truck is recorded as a delivery method; the maximum weight and volume limit is checked. The site address is stored on the customer record as a separate delivery address.

06Document

The invoice is issued for the order or for the delivered quantity (depending on the policy). The electronic invoice in the tax system and the waybill are connected separately.

07Payment and receivables

The due date is tracked against the payment terms; reminder stages start on overdue invoices.

08Returns and reporting

Returned goods are processed with a credit note and a stock movement. Management sees revenue and receivables by product group, customer and delivery.

Hypothetical case

A foreman's order: three products, two deliveries

The example is hypothetical, without figures. A foreman orders tile, adhesive and profiles for a site. Part of the adhesive is out of stock.

  • The manager enters the tile in the sales unit (box); at delivery, Odoo converts the quantity to the inventory unit (m²)
  • The part of the adhesive that is in stock is reserved, and a purchase order is opened for the shortfall
  • The first truck leaves with the goods on hand: the invoice is issued for the delivered quantity, and the rest follows in the second delivery
  • The driver, truck and site address are needed for the waybill: these fields are planned on Odoo's delivery document
  • The foreman buys on “by the end of next month” terms; if the due date passes, a reminder goes out
  • If a box breaks on site, the return and credit note are processed separately
—
—
—
Honest scope

What Odoo includes as standard and what we add

Units, packaging, inventory and receivables tracking are in the standard setup. Rounding, tax documents and IKPU (MXIK) are separate work. The data follows the Odoo 19 and 20 documentation; if your version differs, we check it at the diagnostic.

GoalIn standard OdooExtra work (BUline)
One product, several units (m², box, pcs)Available: inventory, sales (packaging) and purchase units, automatic conversionBuilding the catalog with units and packaging, checking on import
Whole-package reservationAvailable: “Reserve Only Full Packagings” on the category, or partial reservationDeciding which mode is needed in which category
Rounding quantity to a whole boxNot described in the documentationA test, and if needed a rule or Studio
Variants and batches (color, size, shade)Available: product variants and batch (lot) trackingVariant structure, the procedure for recording the batch number at receiving
Delivery method and load limitAvailable: delivery methods, maximum weight and volume. Dispatch management needs the Fleet and Mapbox integration (19.0 documentation)Truck capacity, product weight and volume fields, route
Delivery to a project site (several addresses for one customer)Available: separate delivery addresses on the customer recordFields for the site name and the responsible person (foreman)
Receivables control and payment termsAvailable: payment terms, reminder stages, an aged receivables report. The customer account limit at the POS only warns. Blocking by limit on an order is not confirmed in the documentationThe limit rule and the approving person (outside the POS)
Price lists for wholesale, foremen and the storeAvailable: price lists and discounts; in Odoo 20, packaging-specific pricingCustomer groups and rules
Electronic invoice and waybillNo: the Odoo documentation does not mention a connection to an Uzbekistan operatorChoosing an operator, fields. Electronic documents and tax
IKPU (MXIK) code in the product formNo: not mentioned in the localization documentationA field on the record, and a check of the 11-digit base code on import
Fiscal receipt (online or virtual cash register)No: the Odoo documentation does not mention a connection to an Uzbekistan fiscal moduleConnecting to a cash register device from the registry. POS page
Receivables

Sales on credit: payment terms, reminders and restrictions

In building materials, credit sales are the norm. What matters is to move them out of the ledger and run them with a document and a due date.

Payment terms

  • Due date, splitting into parts and end-of-month adjustment (Payment Terms)

Reminders and control

  • Reminder stages tied to days overdue (Follow-up Levels): email; SMS, WhatsApp and post require additional credits (19.0 documentation)
  • Aged receivables report by customer and due date
  • The bank statement is reconciled before a reminder goes out, so no reminder is sent on an invoice that has been paid

Limitation

  • Customer account at the POS: the limit only warns and does not stop the sale (Odoo 20 documentation)
  • Blocking by limit at the order level is not confirmed in the documentation: the rule and the approver are defined in the diagnostic
  • Details: payment terms and credit notes
Uzbekistan requirements

Local requirements for building materials trade

The following has been checked against official sources. What applies to your product range, we list in writing during the diagnostic.

Electronic invoice and waybill

  • Electronic invoices have been mandatory for all business entities since 1 January 2020; cash trade with a cash register receipt falls outside this procedure
  • If goods are shipped together with the sale, the invoice and the electronic waybill can be issued as one combined document (Resolution No. 168, from 19 March 2025). If the goods are collected without a vehicle, the documents cannot be combined
  • From 1 January 2026, electronic invoices are assigned a risk level: VAT on a high-risk invoice is credited to the buyer only after it has been paid to the budget in full (Resolution No. 830)
  • Combining the invoice and the waybill, e-faktura and Odoo

Cash register and MXIK

  • A shop or counter with cash receipts uses an online or virtual cash register from the registry (Resolution No. 943, PF-5813)
  • The new wording of clause 4 of Resolution No. 943 has been in force since 22 October 2026: secondary accounting systems are restricted alongside the registry-listed cash register. We will ask the tax service in writing how this clause applies to the Odoo cash desk
  • The receipt and the invoice must show the MXIK code (IKPU, the product and service identification code); if the first 11 digits of the code do not match the base code, the code is considered non-compliant (Resolution No. 263, clause 47): how MXIK works
  • If the assortment includes a labeled product group (household appliances, from 15 April 2022), the digital marking rules apply

Tax

  • The standard VAT rate is 12 percent (Tax Code, Article 258). Odoo's official Uzbekistan localization (Fiscal Localization → “uz Uzbekistan”) includes the 12 percent tax in the accounting settings: VAT settings
  • Optional 6% VAT regime (PF-100, 26 May 2026; from 1 June 2026 to 1 January 2030): for trade, catering and service businesses. 6% applies to all turnover, profit tax is 0%, VAT paid on purchases cannot be credited, and the decree sets no turnover threshold for entry. An accountant confirms whether it applies; this regime is not mentioned in the Odoo localization documentation

Product conformity and information

  • A declaration of conformity is required for products that are not high-risk and a certificate for high-risk products (Cabinet of Ministers Resolution No. 502 of 14 August 2024). We check from the official source which product group requires which document
  • An individual customer's phone and address are personal data: where the database must be hosted
Integrations

Systems that connect to building materials trade

Each connection is assessed and built separately. We do not promise that a “ready-made connector exists.”

Tax and documents

  • Electronic invoice operator and ERI (e-signature) key
  • Electronic waybill: driver, vehicle, loading and delivery address
  • Cash register equipment from the registry and its API

Delivery and routing

  • For route building, Dispatch management requires a Mapbox integration (19.0 documentation): this is a third-party service
  • The ready-made delivery connectors in the Odoo documentation (DHL, FedEx, UPS, Sendcloud and others) are for international and other countries' couriers; a courier in Uzbekistan is not named in the documentation and is separate work
  • Fleet capacity limits for your own vehicles

Accounting and equipment

For managers

What the manager sees

Reports are not copied into a separate spreadsheet: they are built from the order, warehouse and accounting documents in the same database.

Sales

  • Sales by product group, customer and manager

Warehouse and delivery

  • Stock levels and items below the minimum
  • Orders that are reserved but not yet delivered
  • Delivery status and overdue orders

Receivables

  • Receivables by customer and due date
  • Overdue invoices and reminder status
The BUline Method

How we implement it in building materials trade

The stages follow the general BUline Method. The timeline is agreed in writing after the diagnostic. Implementation process →

01Diagnostic1–2 weeks

We study the catalog and units of measure, the warehouse structure, the delivery method, the debt policy, the current cash register device and the document flow. Result: a business requirements document (BRD).

02Architecture1–3 weeks

We confirm the unit and packaging structure, the warehouse and delivery scheme, the debt rules, the document integrations and the hosting type.

03Testing and sprints8–16 weeks

The catalog is imported, and unit conversion and reservation are tested. Then a real pilot with one warehouse or one customer group.

04Training

Managers, warehouse staff, cashiers, driver-forwarders and accountants are trained by role; the practice runs on your own catalog. Guides and video lessons are provided.

05Post-launch support30 days + ongoing

After launch, 30 days of enhanced support, then agreed ongoing assistance. When the rules change, the document connection is checked again.

Preparation

What to gather before we start

This list speeds up the diagnostic. We can start even if not everything is ready.

Catalog

  • Product list, barcodes and MXIK codes, or their status
  • Each product's warehouse, sales and purchase unit, and the quantity per package

Warehouse and delivery

  • List of warehouses, locations and cash desks
  • Trucks and their limits, delivery zones

Receivables and documents

  • Customer groups and payment terms
  • Who approves debt, and how
  • The current electronic invoice operator and cash register device
Mistakes

Common mistakes and how to avoid them

MistakeConsequenceHow we prevent it
Creating a separate product for every sizeThe catalog and reports fragmentDesign the variant and packaging structure at the start
Mixing the warehouse unit with the sales unitStock and sales do not matchRecord the warehouse, sales and purchase unit for each product in writing
Relying on the POS warning to control the debt limitA sale above the limit goes throughA rule and an approver at the order level
Uploading products without an MXIK codeAn error on the receipt and the invoiceCode validation on import
FAQ

Frequently asked questions

Is there a ready-made package in Odoo for building materials trade?

For shops, yes: Odoo S.A. publishes a “Hardware Store” package. It requires Enterprise and is also available in Odoo Online. Units and packaging, corporate customer terms, and debt and delivery limits are not mentioned on the page; they are built separately. The country localization is not part of the package.

Can I count tiles in m², sell them by the box and deliver them?

Yes. The warehouse unit, the sales unit (package) and the purchase unit are set separately, and Odoo converts between them. Rounding to a whole box is not described in the documentation, so we test it in a test database.

Can a whole box be reserved?

In the product category you choose “Reserve Only Full Packagings” or “Reserve Partial Packagings”. The first mode reserves only whole packages, the second also partial ones.

Does Odoo calculate truck capacity?

Dispatch management compares the maximum weight and volume of the vehicle category with the weight and volume of the product. This requires the Fleet app, product data and a Mapbox integration for the route (19.0 documentation). If the data is incomplete, no calculation is produced.

Can a customer's debt be limited?

Payment terms, reminders and a receivables report are in the standard. The customer account limit in POS only warns. Blocking by limit at the order level is not confirmed in the documentation: the rule and the approver are defined in the diagnostic.

Are the electronic invoice and waybill sent from Odoo?

The Odoo documentation does not mention a connection to an operator in Uzbekistan. The connection path depends on the operator's documentation and on how the ERI (e-signature) key is used. We confirm it in writing during the diagnostic. Electronic documents and tax →

Odoo Online, Odoo.sh or your own server?

The industry package is available in Odoo Online, but Online is not compatible with third-party and custom modules. If an electronic invoice module or a custom route with Mapbox is needed, Odoo.sh or your own server is chosen. Hosting types →

How much does the service cost and how long does it take?

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 warehouses and cash desks, the size of the catalog, apps, customization, integrations and training. The exact cost and timeline are given in a written proposal after the free diagnostic.

Free diagnostic

Let’s decide together which Odoo apps to start with

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.

Free diagnostic