Odoo Inventory Management in Jordan: Aqaba Lead Times and JOD Costing

How Jordanian importers, garment factories and committee-run buyers can set up Odoo Inventory: reordering for containers through Aqaba, purchase approval, JOD costing, JoFotara credit notes for returns, and cycle counts that tie to the books.

Published 2026-10-11 · METCH

Reordering for containers that take weeks through Aqaba

Menu paths here come from the Odoo 19 documentation. Odoo 20 was released in September 2026, so if your database runs Odoo 20, check the labels on your own screens.

A reordering rule has a Min and a Max. When forecasted stock falls below Min, Odoo creates an RFQ on the Buy route that brings it back up to Max. Odoo looks ahead to today plus the vendor lead time plus any horizon days, so enter that lead time in the Lead Time field of the vendor line on the product's Purchase tab: the real days from order confirmation to receipt, including sea freight, clearance at Aqaba and trucking.

Size Min for demand over that time. If you sell about 40 units a day and a container takes 45 days door to door, demand over the lead time is about 1,800 units, so a Min of around 2,000 leaves room for a delay. Review it after the first shipments.

  • Auto rules act when the scheduler runs, once a day by default, or when a confirmed sales order pushes the forecast below Min. With developer mode on you can run it from Inventory > Operations > Run Scheduler, which also runs other scheduled actions.
  • The Multiple field rounds orders up to full cartons or sacks, even beyond Max.
  • Manual rules only list the need on the replenishment dashboard until someone clicks Order, which suits NGOs and other buyers whose committee approves purchases.

Odoo 20 also suggests Min and Max from demand history.

Costing in JOD: perpetual or periodic, decimals and the Odoo 19 posting change

In Odoo 19, valuation is set under Accounting > Configuration > Settings > Inventory Valuation, as a company default that each product category can override:

  • Perpetual (at invoicing) or Periodic (at closing). A separate Periodic Valuation setting generates the closing entry manually, daily or monthly. Odoo leaves the choice to the company, so agree it with your auditor.
  • Cost method: Standard Price, AVCO or FIFO. LIFO and FEFO are removal strategies and do not change value. Landed costs (customs, freight, clearance) only apply to AVCO or FIFO categories.

Odoo 19 also changed perpetual posting: the stock valuation account moves at invoice level, plus a closing entry for the remaining gaps, instead of an entry on every stock move as in Odoo 18. Inventory adjustments and manufacturing orders can still post when done if loss or production accounts are set. Accounting > Review > Inventory Valuation compares the two values.

For JoFotara, the company currency must be JOD. Odoo stores dinar amounts to three decimals while the Income and Sales Tax Department expects nine, and Odoo notes the gap stays below 0.001; that concerns invoice values. Unit costs follow Product Price decimal accuracy: 1,000 screws bought for 3.5 JOD cost 0.0035 JOD each, which needs four decimals. With developer mode on, check Product Price under Settings > Technical > Database Structure > Decimal Accuracy before entering opening costs.

Whether sales tax paid at customs (general rate 16%) is cost or reclaimable input tax is for your accountant to decide.

Returns that end in a JoFotara credit note

JoFotara receives invoices, credit notes and debit notes, not stock moves. A customer return therefore has two halves in Odoo, and each needs an owner.

The stock half brings the goods back. In Odoo 19 you start it from the validated delivery with the Return button; Odoo 20 removed the return wizard and simplified the flow, so check your screens. Receive resellable items back into stock, move items that need inspection to a returns location you create, and scrap what cannot be sold.

The money half is the credit note. Create it from the posted customer invoice, enter the reason, post it, then open the Send window and select JoFotara. After validation, the QR code from JoFotara is embedded in the credit note PDF. Odoo's Jordan documentation adds two rules that matter for returns:

  • The reason for a debit or credit note should align with ISTD regulations, so agree a short list of standard return reasons with your accountant.
  • JoFotara does not accept negative quantities or negative prices on invoice lines, so do not net a return off the next invoice as a minus line. Discounts must be a percentage on each line.

Sales and refunds made at a till go through Point of Sale instead. Odoo's version 20 release notes list JoFotara-compliant POS receipts as available from 18.0, so test a till refund on your own database before go-live.

Garment factories: quality control on receipt and lots for fabric rolls

Each physical site gets its own warehouse with a short name of up to five characters, such as AMM for Sahab, ZRQ for Zarqa and IRB for Irbid. Through the Resupply From option, the Irbid branch can draw stock from Sahab instead of buying from suppliers; it needs Multi-Step Routes, the matching supply route on each product and a reordering rule to trigger it.

A small Amman distributor can keep the default one-step receipt. A garment factory in one of Jordan's industrial cities usually cannot, because fabric has to be checked before it is cut. Enable Multi-Step Routes under Inventory > Configuration > Settings > Warehouse, which also turns on Storage Locations, then choose three-step receipts on the factory warehouse. If its short name is FAC, rolls move from FAC/Input to FAC/Quality Control and only reach stock once someone validates the inspection. Rolls that fail can go to a quarantine location you create until they are returned to the supplier.

Inside stock, keep separate locations for fabric and trims and for finished garments, so you can count them on different days and see their quantities separately.

Enable Lots & Serial Numbers under Settings > Traceability and receive each roll or dye batch as a lot, so a shade difference found on the cutting table traces back to the supplier delivery. A factory that needs its own GTINs for garment labels gets them through GS1 Jordan, the Jordan Numbering Association, not from Odoo.

Cycle counts that reconcile to the trial balance, and go-live checks

Counts are entered under Inventory > Operations > Physical Inventory: type the counted quantity, then Apply.

Cycle counting in Odoo works by location. Each location has an Inventory Frequency in days, 0 by default, under Inventory > Configuration > Locations, and Odoo sets the next count date once adjustments there are applied. So group stock by value and risk: give warranty appliances in an Amman showroom their own location, counted every 30 days, count a factory's fabric location monthly and its finished goods on a different day, and leave slow consumables to the Annual Inventory Day. It defaults to 31 December under Inventory > Configuration > Settings; change it if your financial year ends on another date.

With perpetual valuation in Odoo 19, an applied adjustment posts straight away if the inventory adjustment location has a loss account; agree that setting with your accountant. After each count, compare Accounting > Review > Inventory Valuation with the stock account in the trial balance.

Before go-live:

  • Set Product Price decimals and enter opening unit costs in JOD.
  • Count every location on a low-activity cut-off date, then apply.
  • Reconcile stock value with the trial balance before the first live receipt.
  • In the first week, take one real return through to an accepted JoFotara credit note with your accountant.

METCH, a certified Odoo partner serving Jordan, sets up Inventory, valuation and the JoFotara link as one project. Book a free consultation and bring your product list; we will review it with you before you count.

Frequently asked questions

Which cost method should a Jordanian importer choose in Odoo: Standard, AVCO or FIFO?

Odoo offers only these three. If you import through Aqaba and want customs, freight and clearance added to product cost with landed costs, the category must use AVCO or FIFO, since Standard Price does not take landed costs. Standard suits costs fixed in advance. On AVCO, low-value items bought by the thousand need enough Product Price decimals to avoid rounding the average. Set the default under Accounting > Configuration > Settings, override it per category, and test the choice on one real import before the opening count.

How do customer returns connect to JoFotara?

JoFotara receives invoices, credit notes and debit notes, not stock moves. A return moves the goods back into a location. To refund an invoiced customer, send the credit note from the Send window by choosing JoFotara; its PDF then carries the QR code JoFotara returns after validation. Odoo's Jordan documentation advises that the note's reason align with ISTD regulations. Refunds at a POS till go through Point of Sale; Odoo's version 20 release notes list JoFotara-compliant POS receipts as available from 18.0, so test one before go-live.

Our procurement committee must approve every purchase. Can Odoo enforce that?

Partly. Use manual reordering rules so Odoo lists needs on the replenishment dashboard without raising RFQs on its own. Then enable Purchase Order Approval under Purchase > Configuration > Settings and set a minimum amount: orders above it, confirmed by a user without purchase manager rights, wait in To Approve status until a manager approves them. Odoo records one manager's approval, not a committee vote, so decide who holds that role and attach the committee minutes to the order.

How do we avoid running out while a container is at sea or held at Aqaba?

Make the lead time realistic first: the Lead Time on the vendor line should cover sea transit, clearance and trucking, because Odoo's forecast looks that many days ahead. Then set Min near daily demand times those days, plus safety stock. When a shipment slips, change the scheduled date on the pending receipt so the product's forecast shows when stock will really arrive, then check the replenishment dashboard for items that now fall short.

Need help with this?

METCH is a certified Odoo partner serving Jordan — book a free consultation.

Get a proposal