TL;DR: Furniture manufacturers procure, store, issue to the shop floor, and invoice the same material in different units of measure. Fabric is procured by the roll, stocked by the running meter, issued in square meters per the cut plan, and sometimes invoiced to designers by the linear meter. Without an ERP that handles UoM conversion natively, every handoff between procurement, the cutting room, and accounts creates a manual recalculation. The result is overstocking, line stoppages on the shop floor, and unreported margin leakage at the SKU level. Odoo handles this through its native multi-UoM framework, which carries multiple units inside a single product master and converts between them automatically across procurement, stores, BoM consumption, and invoicing.

Odoo for Furniture Manufacturing

The UoM mismatch problem for furniture manufacturers

UoM mismatch occurs when the same SKU is tracked in different units across the order-to-cash and procure-to-pay cycles.

Consider a typical upholstery flow. A mill supplies you greige or finished fabric by the roll. Your stores team receipts it in running meters against the GRN. Your CAD nesting layout calls for 4.2 square meters per three-seater. Finance values closing inventory by weight for landed cost reconciliation.

One SKU, four units, and every conversion is a margin event waiting to happen.

What happens when UoM is managed manually or in spreadsheets?

Three patterns recur across furniture plants running on spreadsheets or legacy ERPs without proper UoM logic.

Inflated procurement and overstocking. The buyer plays safe by indenting in the largest pack size because actual consumption per MO is unclear. Working capital gets locked up in slow-moving raw material, and warehouse footprint balloons.

Shop-floor downtime and line stoppages. The cutting room sees 40 meters of a fabric SKU in the system, then discovers those 40 meters are four short fents from earlier MOs that never got reconciled. The cut plan stalls, the upholstery line waits, and the dispatch promise slips.

Margin invisibility at the SKU level. A three-seater is invoiced at $1,200. Its true cost depends on 4.2 square meters of velvet, 1.8 kilograms of HR foam, 8 board feet of beech for the frame, and 14 specific hardware pieces. If those components do not roll up in a consistent UoM basis, the gross margin reported on the sales invoice is an estimate, not a measurement. A 2 percent recurring rounding loss on fabric across an annual production plan is material money leaving the P&L.

How does Odoo solve UoM mismatch problem?

Odoo carries multi-UoM in its core product master. There is no separate module to license. Once the feature is enabled in Inventory settings, every SKU in the system can hold multiple UoMs that Odoo converts between automatically.

Configuration requires three inputs per SKU:

  1. A reference unit of measure (for example, square meters for fabric, kilograms for foam, board feet for timber)
  2. The UoM category the material belongs to (Length, Area, Weight, Volume, or Unit)
  3. The conversion factors for every other UoM the business uses for that SKU within the same category

Once configured, conversions flow across the full transaction lifecycle:

  • Purchase orders are raised in the vendor’s standard pack (rolls, bales, sheets, cartons). The GRN posts the equivalent quantity in the reference UoM automatically.
  • Stock is held in the reference UoM, with the vendor pack visible during inward and putaway.
  • Bills of Material consume the reference UoM at the exact quantity called for in the nest or the cutting list.
  • Manufacturing Orders issue material in the consumption UoM, with backflushing tied to actual usage rather than indented quantity.
  • Sales orders quote the customer in their preferred UoM, whether per meter, per piece, per carton, or per finished unit.

The conversion logic is configured once at the SKU level. Every downstream transaction stays in agreement. The receiving clerk does not need to remember that one roll equals 30 running meters. The cutter does not need to know the GSM-to-square-meter conversion. The system carries that knowledge.

What changes operationally after Odoo handles UoM correctly?

Three shifts show up within the first production cycle after a clean implementation.

Procurement stops over-indenting. Reorder rules and min-max policies fire against true consumption signals in the consumption UoM, not against padded estimates in the procurement UoM. Inventory days come down.

Cutting room and upholstery line stop waiting. No more production delays. The system now checks material availability against the exact units in the cut plan. This means short fents and reserved stock are locked in and accounted for before an MO is even released.

SKU-level margin becomes visible. Standard cost rolls up cleanly because every BoM component is expressed in the same UoM the BoM was designed in. Variant profitability reporting (for example, three-seater in beech-and-velvet versus walnut-and-linen) finally becomes a measurement instead of a guess.

FAQ

Does Odoo support multiple units of measure out of the box?

Yes. Multi-UoM is part of standard Odoo functionality in both Community and Enterprise editions. It is enabled once under Inventory configuration, after which it applies across Purchase, Inventory, Manufacturing, Sales, and the costing engine.

How do you start fixing UoM gaps in your furniture business?

Start with a material map. List every raw and intermediate SKU that changes UoM between vendor invoice and customer dispatch. For most furniture plants, the short list of fabric, foam, timber, and hardware accounts for the bulk of the leakage.

For each SKU on that list, ask one diagnostic question: does the system know the conversion factor, or does a person know it? Wherever a person knows it, you have a recurring margin leak and a single point of failure when that person is on leave.

A clean Odoo implementation will not simplify the underlying complexity of running a furniture plant. It will, however, stop UoM mismatches from being one of the silent costs you absorb every operating cycle.

Want to see this configured for a real furniture operation?

Our team has implemented multi-UoM flows for furniture manufacturers across residential, modular kitchen and storage, and commercial seating segments. Reach out and we will walk you through a working Odoo configuration mapped to your product mix and your shop-floor reality.