How the inventory sync works

How the inventory sync works

The inventory sync keeps Odoo's stock aligned with what the warehouse actually holds - down to individual batch numbers and expiry dates - and leaves an auditable report of every sync it runs. This page explains the two master modes, the two apply modes, what a sync report shows, the special un-batched bucket, and how to force a sync now.

What a sync does

On schedule (default daily) or on demand, the connector pulls the 3PL's full stock snapshot for the mapped warehouse and compares it, product by product and batch by batch, against the warehouse's stock location in Odoo. Every reported (product, batch) becomes a line on an Inventory Sync report (Operations > Inventory Syncs) recording:

  • the Odoo quantity before,
  • the quantity the 3PL reported,
  • the difference,
  • and the action taken (adjusted, staged for review, discrepancy recorded, unchanged, or error - e.g. a SKU with no Odoo product).

Batch numbers the 3PL reports that Odoo has never seen are created as lots on the fly, with expiry dates where the 3PL supplies them. The report header counts adjusted / staged / discrepancies / unchanged / errors so you can read a sync's outcome at a glance, and the whole run is also in the Sync Log with payloads.

On Amazon MCF instances the Stock Measure option (see Settings reference) decides which FBA quantity is compared: the fulfillable quantity - what can be picked, packed and shipped today, the default - or the total quantity including inbound and reserved stock.

Batch-level or product-level?

The instance's Products Use Batch/Lot Tracking setting (Synchronisation tab) decides how deep the reconciliation goes:

  • On (recommended when your products are lot-tracked in Odoo): stock is reconciled per batch - each reported batch becomes its own report line with the Odoo quantity, the 3PL quantity and the adjustment, and new batches are created in Odoo with their expiry dates.
  • Off: stock is reconciled at product level and no lots are written - but every batch the 3PL reports still appears on the report as a Reported Batch line (informational, no adjustment), so the batch picture is never lost. The run summary reminds you the setting is off.

If your report shows empty Lot/Batch columns on the adjustment lines, check this setting first.

Finding and exporting the report

Every run creates a report under Operations > Inventory Syncs, and the run's Sync Log entry links straight to it (the Open Record button; the entry's summary names the report). From the report:

  • Export XLSX downloads the whole report as one workbook: Summary, Odoo Stock by Product, 3PL Stock by Product, Stock by Batch (products without batch detail appear with an empty lot), Discrepancies by Product and Discrepancies by Batch.
  • Export CSV asks which of those datasets you want - one dataset downloads as a single CSV file, several as a zip with one CSV per dataset.