Skip to Content
Retour aux modules
Sales & Purchase

Made-to-Measure Pricing (Dimensions, m², Price Grids)

Sell products by size: width × height on quotation lines, billed in m², m or m³ or from a width × height price grid, with minimums, rounding, surcharges and a cutting fee.

20.0 19.0 18.0 17.0 16.0
Made-to-Measure Pricing (Dimensions, m², Price Grids)
Made-to-Measure Pricing (Dimensions, m², Price Grids)

Présentation du module

Nalios
Odoo Gold Partner · Belgium

/ Odoo 20 · Sales

Sell by size, priced in one click

Blinds, glass, banners, worktops, fabrics, metal sheets: your customers order a width and a height, not a quantity. Made-to-Measure Pricing puts the dimensions on the quotation line, computes the m², metres or m³ to bill, or reads the price in your supplier's width × height grid, and carries the size to the invoice, the delivery and the workshop.

m², m, m³ or price grid Minimums & rounding Surcharges & cutting fee Pricelists still apply Webshop add-on French included

Standard Odoo vs this app

What Odoo does, what we add

Standard OdooUnits of measure (m², m, m³), pricelists, product attributes with a free-text custom value (the customer types a size), the product configurator and, from Odoo 18, combo products. The quantity and the price stay manual: Odoo does not compute them from a size.
This app addsNumeric width, height, depth or length on the order line, the billed quantity computed in the unit of the product, price grids, minimum and rounding of the billed quantity, limits per dimension, surcharges above a size, a cutting or setup fee line, and the size in every document. It builds on the standard units of measure and pricelists: nothing is duplicated.

Product setup

One tab, five pricing modes

The Made to measure tab of the product chooses how a size becomes a price.

By area, length or volume

Width × height in m², length in m, or width × height × depth in m³. The sales price is the price per m², m or m³, and the line quantity is computed in the unit of measure of the product.

Price grid

The price of one piece is read in a width × height table. Each dimension is rounded up to the next step of the grid, as on your supplier's price list.

Dimensions in mm, cm or m

Choose the unit your team and your customers use, with a minimum and a maximum per dimension. Out-of-range sizes are refused with a clear message.

Billing rules

Minimum billed per piece (e.g. 0.5 m²), rounding of the billed quantity (e.g. up to 0.1 m²), surcharges above a size (e.g. width over 2 m: +10 %), and a cutting or setup fee, per line or per piece.

Made to measure tab of a product priced by area

Quotations

Type the size, the line does the maths

Width, height, depth, length and number of pieces are columns of the order lines. The quantity is locked: it always comes from the dimensions.

Quantity computed

3 panes of 1200 × 800 mm give 2.88 m². With a 1 m² minimum, 4 banners of 60 × 40 cm are billed 4 m². The description says why.

Pricelists still apply

Customer discounts, fixed customer prices and quantity breaks work on the price per m² or on the grid price, with the discount shown or included as you set it in Odoo.

Cutting fee line

The fee is added as a separate line under the product, with the same taxes. Its quantity follows the pieces. Set its price to 0 to waive it.

Checked before confirmation

A quotation can be saved without all the sizes, but cannot be confirmed until every made-to-measure line has valid dimensions.

Quotation with widths, heights, lengths, pieces and fee lines

Price grids

Your supplier's grid, imported in seconds

Sales > Products > Price Grids: one grid per range, shared by as many products as you need. Edit the cells, see the matrix, or import a CSV file laid out as a matrix (widths in the first row, heights in the first column) or as a list. Semicolons or commas, decimal comma or point.

Price grid matrix of roller blinds

Price grid matrix of roller blinds

CSV import of a price grid

CSV import of a price grid

Documents

The size follows the order everywhere

The dimensions are part of the line description: printed on quotations, orders and invoices, shown in the customer portal, copied to the delivery operations and, with Manufacturing, to the Custom Description of the manufacturing order. Inventory and Manufacturing are optional: the app only depends on Sales.

Quotation PDF with the dimensions of each line
Manufacturing order with the size of the blind
Delivery with the size of each piece

eCommerce add-on

Made to measure, sold online

The free eCommerce add-on is installed automatically when you use eCommerce.

Dimensions on the product page

Width, height, depth or length with their limits, and the number of pieces, on the page of every made-to-measure product.

Live price

Quantity, price, cutting fee and total update as the customer types, with the visitor's pricelist and taxes.

Priced on the server

Add to cart only sends the product, the dimensions and the pieces: the size is checked and the price computed by Odoo, never taken from the browser.

Cart and portal

The size is shown in the cart and in the customer portal. The quantity of a made-to-measure line and its fee cannot be changed in the cart, only removed.

Product page of a roller blind with the dimensions and the live price

Webshop

A cart that speaks in sizes

Cart with the dimensions and the cutting fee

Setup

Ready in ten minutes

1

Choose the mode

Open a product, tab Made to measure: by area, length, volume or price grid, the unit of the dimensions and the limits.

2

Set the price

Sales price per m², m or m³, or a price grid. Add a minimum, a rounding, surcharges and a fee if needed.

3

Quote

Add the product to a quotation and type the dimensions. Your pricelists do the rest.

4

Sell online

Publish the product: the webshop shows the dimension inputs and the live price.

Made-to-measure products with their pricing mode

Under the hood

How it works

QuantityPer piece: dimensions converted to metres, multiplied, raised to the minimum, rounded up to the rounding step; then multiplied by the number of pieces and converted to the unit of measure of the line (m², ft², L...).
Price gridEach dimension is rounded up to the next width and the next height of the grid (no interpolation). Sizes above the largest step are refused. The grid price replaces the sales price; extra prices of attribute values are added.
PricelistsRules based on the sales price, or on another pricelist, apply on the price per m² and on the grid price. Rules based on the cost ignore the grid. Surcharges are applied after the pricelist.
FeeA separate line with the service product set in Sales > Configuration > Settings, the amount of the product (not discounted by pricelists) and the taxes of the product line.
Modulesmade_to_measure_pricing (this app, depends on Sales) and the free made_to_measure_pricing_website (eCommerce add-on, installed automatically).
Access rightsSalespeople read the price grids; sales managers create and import them and edit surcharges. Multi-company: grids per company or shared.

FAQ

Good to know

Can I keep my current products?

Yes. Products stay Per unit until you choose another mode. A product priced by size needs a unit of measure of the same kind: m² for an area, m for a length, m³ for a volume, units for a grid. Installing the app enables units of measure.

Does it work with variants?

Yes: the dimensions are entered on top of the variant, and variant extra prices are added to the grid price. Made-to-measure products are not priced by size inside combo products (Odoo 18 and later).

Small volumes?

Quantities are stored with the decimal accuracy of Odoo (2 decimals by default). For small volumes in m³, raise the Product Unit of Measure accuracy to 3 decimals, or sell in litres.

Webshop limits?

Made-to-measure products are added to the cart from their product page. Attributes that create variants work; attributes that never create variants and free-text custom values are not passed by the made-to-measure add to cart. Reordering a made-to-measure line from the portal is disabled: the customer orders again from the product page.

Which languages?

English and French (also used for fr_BE).

A question? A problem? Talk to the people who built it.

We will get back to you within 8 business hours.

Contact us

Email us directly at

[email protected]

Published by

Nalios — Odoo Gold Partner, Belgium — nalios.be