Buy by the carton, sell by the piece, and keep a stock balance the warehouse can explain. The starting point is a clear relationship between the item you count, the packaging you receive, and the quantity you deliver. In the Odoo application, those definitions should connect the documents without requiring staff to calculate the contents again at every handoff.

Odoo 19.0 documentation describes inventory and purchase units, sales packagings, and conversions on warehouse documents 1. GS1 US explains packaging levels and the commercial identification of a case and its contents 2. We use these sources to separate stock quantity from packaging identity, then build an acceptance exercise for a Saudi importer or distributor.

At ToDoOps, we start with how your team receives, counts, and dispatches goods. See our Odoo application implementation services in Saudi Arabia, then use a representative product sample to define the units your business actually needs.

Map one product before importing balances

Choose a product that customers buy both individually and in cartons. Write down its inventory unit, every packaging used, and the fixed quantity each packaging contains. “Carton” is an incomplete definition: one product may have twelve pieces in a carton while another has ten.

Information Hypothetical example Decision to make
Product A particular spare part An internal code identifying the item
Inventory unit Piece The basis for counting and movements
Current supplier carton 12 pieces A checked conversion relationship
Sales options Piece or carton of 12 What buyers and warehouse staff see
Another supplier carton 10 pieces A distinct, recognizable definition
Packaging identifier, if used Its own GTIN A match to the physical packaging

Opening balances need the same discipline. Record whether “20” in the migration file means pieces or cartons, then convert once into the agreed inventory unit. Twenty pieces in the application cannot represent twenty cartons on the shelf merely because both records contain the same number.

Keep the source count, its date, its unit, and the conversion decision together. This makes a reconciliation possible when the imported balance differs from the warehouse count. It also gives the product owner something concrete to approve before the rest of the catalogue is loaded.

How purchasing and sales connect to inventory

In the Odoo 19.0 reference, Units of Measure & Packagings is enabled, the inventory unit is defined on the product, supplier units are associated with purchasing information, and sales packagings are defined for the product. Receipt and delivery documents express the requested quantity in the inventory unit. We check that relationship against your installed version and actual documents.

The documentation says purchase units must share the category of the default unit. It also describes custom units with a quantity relative to a reference unit. Rather than treating a familiar unit name as proof, verify the permitted relationship and conversion before accepting it. The documented Sales Price and Cost unit fields are linked; they should not be treated as independent settings.

Using pieces for inventory does not mean every purchaser must manually enter pieces. It means the underlying quantities agree while the transaction uses an appropriate unit or packaging. Kilograms and pieces need a separate decision when item weight varies: an invented fixed ratio cannot accurately represent variable-weight goods.

Worked example: twenty cartons become 182 pieces

Assume each carton contains 12 pieces, the opening balance is zero, and there are no other movements or reservations. The business receives the full purchase, dispatches five cartons, then receives two inspected, saleable pieces back. These are hypothetical inputs, not customer results.

Movement Calculation Physical balance in pieces
Receive 20 cartons 20 × 12 240
Deliver 5 cartons 240 − 60 180
Return 2 inspected pieces 180 + 2 182

For a separate, simplified cost illustration, assume a carton costs SAR 144. That is 144 ÷ 12 = SAR 12 per piece, and 20 × 144 = SAR 2,880 for the purchase. The 180 pieces before the return represent SAR 2,160 under this arithmetic assumption. We do not value the return here: its accounting value depends on the valuation method and actual return transaction. Freight, tax, and margin are outside this example.

Use the implementation project calculators to explore the scope of product setup, migration, and training. They estimate the project; they do not determine carton ratios or replace your stock reconciliation.

Partial receipts and returns reveal weak definitions

Suppose eight cartons arrive first and twelve later. The first receipt represents 96 pieces and the second 144, giving 240 in total. The receiving team should be able to explain those quantities and the outstanding purchase quantity from the documents. Checking only a supplier invoice misses what the warehouse actually received.

A return also has a destination and condition. Two pieces awaiting inspection are not automatically two pieces available for sale. Agree the return reason, inspection step, and location with the warehouse owner, then examine total physical stock separately from saleable availability.

Now suppose the supplier introduces a carton of ten. Twenty new cartons represent 200 pieces rather than 240: a difference of 40. Give the new packaging a distinguishable definition and decide when its use begins. Reusing a historical ratio to reinterpret old transactions makes it harder to reconcile the two physical packagings when both remain on the shelf.

A packaging barcode does not define quantity by itself

GS1 US distinguishes a case containing units of one product from a mixed case containing different products. Its case-creation guidance explains that changing an in-use case’s contents or quantity requires a new case and GTIN under that process 2. That does not mean a piece and its shipping case share an identifier.

An internal SKU, a commercial GTIN, and an inventory unit describe different things. Test the individual item and carton barcodes using the actual device and interface, and record the quantity each scan adds. Broader scanning requirements can be reviewed within Odoo applications; this guide focuses on the packaging-to-quantity relationship rather than becoming another general barcode guide.

Prepare a data sample and acceptance checks

For each sample item, provide its code, description, inventory unit, purchase and sales packagings, quantities per packaging, supplier, available packaging identifiers, and opening count with its unit and date. Include a photograph where similar carton names could mislead users. Resolve those decisions before expanding the migration to every item.

Test Evidence to review
Full and partial purchasing 96 then 144 pieces, with the outstanding quantity tracked
Sales by carton and piece Order and delivery quantities reconcile
Partial return Destination, condition, and availability are understood
Cartons of 12 and 10 Both remain distinguishable without rewriting history
Packaging scan Correct product, packaging, and quantity on the real device
Opening balance Source count and conversion reconcile to the imported total

We configure the definitions and document flow, while the requirements study determines variable-weight handling, exceptions, permissions, and integrations. Relate this work to your industry workflow. The guided sales and inventory demonstration shows its limited published flow; it is not acceptance testing of your own packaging data.

Frequently asked questions

Do I need a GTIN to use packagings?

Internal packaging definitions and commercial identifiers are separate decisions. Trading-partner requirements determine the identifier you need; quantities and conversion relationships still need accurate setup.

Should I change the old carton from twelve to ten?

Distinguish the new packaging and agree its start date. Do not use a new ratio to reinterpret earlier documents, particularly while both packagings remain in use.

Can I buy by kilogram and sell by piece?

Study the weight-to-count relationship first. If weight varies, a presumed fixed conversion is insufficient for reliable stock and pricing decisions.

Does returned stock become available immediately?

That depends on its condition, destination, and inspection procedure. Test physical quantity separately from the quantity approved and available for sale.

Who approves the definitions before migration?

The product owner, warehouse, and purchasing team should agree the quantities. Finance joins the review when values are reconciled. Each should be able to explain the same item across the documents.

Start with your difficult products

Select items involving cartons and pieces, partial receipts, returns, and a recent packaging change. Explore Odoo application implementation, use the project estimate calculators, then discuss your units and packaging map. The useful next step is an agreed data definition and acceptance checklist before wider rollout.

References

[1] Odoo — 19.0 documentation: Units of measure and packagings, including purchasing and sales conversions into inventory quantities. A reference for configuring and testing the installed workflow.

[2] GS1 US — Packaging levels and case creation: Commercial identification of packaging and its contents, including homogeneous and mixed cases. This is identification guidance, not a general Saudi regulatory requirement.