Odoo apps & modules

Inventory Management Software in Saudi Arabia: Odoo Inventory (2026)

Rizwan IftikharOzonLayer · Odoo Silver Partner Updated 10 min read

Inventory management software in Saudi Arabia should track stock by warehouse and location, handle lots, serial numbers and expiry dates, value stock in SAR with FIFO or average cost, and pass every sale through to a ZATCA-compliant invoice. Odoo Inventory does this in one database with Sales, Purchase and Accounting, in Arabic and English.

Summary answer: Odoo Inventory is a warehouse management system built into the Odoo ERP. It lets a Saudi business run several warehouses, split each one into locations and bins, and choose one-, two- or three-step receiving and shipping routes. Stock can be tracked by lot or serial number, with expiry dates and first-expired-first-out picking for food, pharma and cosmetics. Reordering rules create purchase orders when forecast stock drops below a minimum. Each product category uses a costing method (standard price, average cost or FIFO), and landed costs add freight, insurance and customs duties to the value of imported goods. Physical counts can be scheduled per location, and the Barcode app runs receiving, picking and counting from scanners or phones. Because Inventory shares one database with Sales and Accounting, delivered quantities flow into invoices that Odoo’s Saudi localization can report to ZATCA.

What a Saudi warehouse needs from inventory software

Most stock problems we see in Saudi companies are not about missing software. They come from stock living in one tool, invoices in another and purchase orders in spreadsheets. The result is the same everywhere: the system says 40 units, the shelf has 28, and nobody knows which lot went to which customer.

Before comparing products, list what your warehouse actually has to do. For most Saudi trading, retail and light manufacturing businesses, the list looks like this:

  • Several warehouses in different regions of the Kingdom, plus a showroom or branch stock, all visible in one place.
  • Imported goods where freight, insurance and customs duties change the real cost of each unit.
  • Traceability for goods with lots, serial numbers or expiry dates, such as food, medical supplies, perfume, spare parts and electronics.
  • Arabic and English on screens, labels and delivery documents.
  • VAT invoices that match what was actually delivered and meet ZATCA e-invoicing rules.
  • Stock value in SAR that agrees with the balance sheet at month end.

Odoo covers each of these with standard features. The sections below explain how they work and where configuration choices matter.

Warehouses, locations and routes

Multi-warehouse setup

Each warehouse in Odoo has its own address, stock, operation types and routes. A distributor might run a main warehouse, a regional depot and a small branch store, and see on-hand and forecast quantities for all three on one product screen. Stock moves between them as internal transfers, so goods in transit are never lost between two systems.

Locations, bins and putaway rules

Inside a warehouse you can create as many sub-locations as you need: zones, aisles, racks and bins. Putaway rules then decide where incoming goods go. For example, all products in the “Cold chain” category can be sent to the chilled zone automatically, so receiving staff do not have to choose a shelf each time.

Receiving and shipping in one, two or three steps

Routes define how goods physically move. You pick the level of control per warehouse:

SettingIncoming goodsOutgoing goodsSuits
1 stepReceive straight into stockDeliver straight from stockSmall stores and simple warehouses
2 stepsReceive at input, then storePick, then shipMost distributors
3 stepsReceive, quality check, then storePick, pack, then shipHigh-volume or regulated goods

Removal strategies

Removal strategies tell Odoo which units to pick first. FIFO picks the oldest stock, LIFO the newest, FEFO the units that expire first, and “closest location” shortens walking paths. You can set a different strategy per product category or per location.

Barcode scanning and Arabic labels

The Odoo Barcode app turns receiving, picking, internal transfers and stock counts into scan-and-confirm tasks. It runs on dedicated handheld scanners or on an ordinary Android or iOS phone through the browser. Staff scan the location, then the product, then the lot or serial number, and Odoo checks each scan against the expected order. Wrong product or wrong quantity is flagged before the goods leave the shelf.

Odoo’s interface is available in Arabic with a right-to-left layout, and product names and descriptions can be stored in both Arabic and English. That means product labels, picking lists and delivery slips can print in the language each team or customer needs. Labels can be printed as PDF on office printers or in ZPL format for thermal label printers.

The Barcode app is part of Odoo Enterprise, which is included in both paid Odoo plans. It is not part of the free Community edition.

Lots, serial numbers and expiry dates

Traceability is switched on per product. You can track by lot (a batch of identical units, such as a production run of cosmetics) or by serial number (one unique code per unit, such as a generator or a laptop).

When the expiration dates option is enabled, each lot can carry an expiry date, a best-before date, a removal date and an alert date. Combined with the FEFO removal strategy, Odoo proposes the lots closest to expiry first and warns you before stock passes its alert date. This matters for food importers, pharmacies and beauty retailers, where expired stock is a direct loss.

Every lot and serial number has a traceability report. In a recall, you can see which supplier receipt it came from, which locations it passed through and which customer delivery it left on.

Reordering rules and replenishment

Reordering rules keep stock between a minimum and a maximum level. When the forecast quantity (stock on hand plus incoming, minus outgoing) falls below the minimum, Odoo proposes or creates a purchase order to bring stock back toward the maximum. If the product is made in-house, the same rule creates a manufacturing order instead.

Three practical points for Saudi buyers:

  • Set vendor lead times. If a supplier abroad needs six weeks including shipping and clearance, enter it on the product’s vendor line. Odoo then orders early enough.
  • Use packaging multiples. If a supplier only sells in cartons of 24, the rule can round orders to full cartons.
  • Review the replenishment report. It lists every product below its minimum in one screen, so a buyer can confirm or adjust orders in a few clicks instead of running a spreadsheet each week.

Reordering rules can also be set per warehouse, so each branch keeps its own minimum without overstocking the main warehouse.

Inventory valuation: FIFO, AVCO and landed costs

Choosing a costing method

Each product category in Odoo uses one costing method. The choice affects your cost of goods sold, your gross margin and the stock value on your balance sheet, so agree it with your accountant before go-live.

MethodHow cost is calculatedTypical use
Standard priceA fixed cost you set and update manuallyManufacturers with stable costs
Average cost (AVCO)Weighted average, recalculated on each receiptDistributors with frequent price changes
First in, first out (FIFO)Oldest purchase cost is used firstImporters and businesses that need cost per batch

Stock valuation can post journal entries to Accounting automatically, so stock received and delivered updates the inventory and cost of sales accounts without manual entries.

Landed costs on imported goods

For an importer, the supplier price is only part of the real cost. Odoo’s landed costs feature adds shipping, insurance, customs duties and other fees to the value of the goods they relate to. It works with products whose category uses AVCO or FIFO.

The usual flow is simple. The freight forwarder’s or customs broker’s bill is entered as a vendor bill with a landed cost product. From that bill you create a landed cost record, link it to the validated receipt, and choose how to split the amount: equally, by quantity, by current cost, by weight or by volume. Odoo then updates the unit cost and posts the valuation entry.

Recoverable import VAT is a tax, not a product cost, so it is normally recorded through Accounting rather than as a landed cost. Confirm the treatment for your business with your tax adviser.

Cycle counts and stock reports

Counting everything once a year closes the warehouse and still leaves errors for eleven months. Odoo supports cycle counting instead. Each location can have its own counting frequency in days, so fast-moving or high-value bins are counted often and slow shelves less often. Counts can be assigned to a user, entered by scanning, and applied in one step. Odoo records the difference and posts the stock adjustment.

The reports operations managers use most are:

  • Stock report: on-hand, reserved and forecast quantities by product, location or lot.
  • Forecasted report: a product’s future stock based on confirmed sales, purchases and manufacturing orders.
  • Moves analysis and moves history: every movement, with dates, users and source documents.
  • Stock valuation: stock value in SAR at any date, which finance reconciles with the general ledger.

All reports can be filtered, grouped and exported to a spreadsheet, or pinned to a dashboard.

From stock move to ZATCA invoice

Inventory does not issue invoices itself. In Odoo, a sales order creates the delivery, and the invoice is created from the sales order in Accounting. You can invoice ordered quantities or delivered quantities. Most distributors choose delivered quantities, so the customer is only billed for what actually left the warehouse.

The invoice then follows the Saudi localization: 15% VAT, bilingual Arabic and English layout, and ZATCA e-invoicing. Odoo’s Saudi localization supports reporting invoices to ZATCA under Phase 2 once the journal is onboarded. We explain the onboarding steps in our guide to ZATCA e-invoicing in Odoo, and the accounting side in Odoo accounting software for Saudi Arabia.

The same link works for retail. Sales through Odoo Point of Sale reduce stock in the shop’s location in real time. Online orders from a store connected through our Salla integration can reserve stock in the warehouse that ships them.

Plans, pricing and how to implement

Odoo Inventory is included in every Odoo plan. At the time of writing (November 2026), Odoo’s pricing page lists:

PlanPrice per user per month (billed yearly)Relevant for inventory
One App FreeUS$0Inventory alone, no Sales or Accounting link
StandardUS$16.90 (about SAR 63)All apps, including Barcode, on Odoo Online
CustomUS$32.00 (about SAR 120)Adds multi-company, Studio, external API and Odoo.sh or on-premise hosting

SAR figures are converted at SAR 3.75 per US$1. Odoo also shows a first-year discount for initially ordered users.

Implementation is a separate cost. As an indicative market range, not a quote, a small Saudi business with one warehouse and standard flows typically spends SAR 20,000 to 60,000, and a mid-size company with several warehouses, lots and imports SAR 60,000 to 180,000. Our Odoo implementation cost guide for Saudi Arabia explains what drives the number, and the implementation price calculator gives a first estimate.

A typical inventory rollout follows five steps:

  1. Map warehouses, locations and routes as they work today, then decide how they should work.
  2. Clean product data: units of measure, barcodes, Arabic names, tracking type and costing method.
  3. Load opening stock by location and lot, valued at agreed costs.
  4. Test receiving, picking, counting and invoicing with real orders before go-live.
  5. Train warehouse and finance users on their own screens. See our Odoo training services in Saudi Arabia.

For a related project, see our Odoo ERP case study for a trading and distribution company, where Sales, Inventory, Purchase and Accounting were set up together with stock across several product categories and storage locations. Our Odoo implementation services in Saudi Arabia page explains how we run projects.

Want to see your own warehouse flow in Odoo before you decide? Book a free consultation with our Odoo Silver Partner team. We will review your warehouses, products and import process and show you how they would run in Odoo Inventory.

Frequently asked questions

Is Odoo Inventory suitable for businesses in Saudi Arabia?

Yes. Odoo Inventory supports multiple warehouses, locations, lots, serial numbers and expiry dates, and it works in Arabic and English. Because it shares one database with Sales and Accounting, delivered goods flow into VAT invoices that Odoo's Saudi localization can report to ZATCA under Phase 2 e-invoicing.

Can Odoo manage several warehouses across Saudi Arabia?

Yes. Each warehouse has its own stock, locations, routes and reordering rules, and you can see on-hand and forecast quantities for every warehouse on one product screen. Goods moving between warehouses are recorded as internal transfers, so stock in transit stays visible.

Does Odoo track expiry dates and batch numbers?

Yes. You can track products by lot or by serial number. With the expiration dates option enabled, each lot can hold expiry, best-before, removal and alert dates. Using the FEFO removal strategy, Odoo proposes the lots that expire first when you pick orders.

Which inventory costing methods does Odoo support?

Odoo supports standard price, average cost (AVCO) and first in, first out (FIFO), set per product category. The method affects cost of goods sold and stock value, so agree it with your accountant before go-live. Landed costs require AVCO or FIFO.

How does Odoo handle freight and customs costs on imports?

Use the landed costs feature. Enter the freight or customs bill as a vendor bill with a landed cost product, create a landed cost record from it, link it to the receipt and choose a split method such as by quantity, weight or volume. Odoo then updates the unit cost of the imported goods.

Do I need special hardware for barcode scanning in Odoo?

No. The Odoo Barcode app runs in the browser on handheld scanners or on ordinary Android and iOS phones. Thermal label printers using ZPL are optional. The Barcode app is part of Odoo Enterprise, which is included in both the Standard and Custom plans.

How much does Odoo Inventory cost in Saudi Arabia?

At the time of writing (November 2026), the Standard plan is US$16.90 (about SAR 63) per user per month billed yearly, and the Custom plan is US$32.00 (about SAR 120). Implementation is separate; as an indicative range, not a quote, small projects typically cost SAR 20,000 to 60,000.

Share this article
Written by Rizwan Iftikhar

Published by OzonLayer, an official Odoo Silver Partner that helps businesses in Saudi Arabia and the United Kingdom implement, customise, migrate and support Odoo ERP.

Want to see this working in your business?

Talk to a certified Odoo consultant about your requirements. We’ll give you a straight answer on scope, timeline and budget, with no obligation.