01
Starting point
The company runs its catalog, orders and stock in Odoo, with a vendor portal that needs the catalog in a fixed format.
The catalog update was a manual job, order queue labels could point at the wrong product, and an earlier migration had left duplicate product records behind.
02
Constraints
- The system is live, with receiving and ordering work running every day.
- The vendor portal accepts one format, so the sync had to match it exactly.
- The cleanup had to preserve the open order book.
03
Scope
- A nightly catalog sync to the vendor portal, with a failure queue for records the portal rejects.
- Order queue labels keyed to the immutable product id, so a scan resolves to the right product.
- A cleanup module that finds duplicate products, re-points open order lines and blocks new duplicates at import.
- Ongoing fixes and small changes, delivered inside the monthly plan hours.
04
Approach
Stack
Odoo 19 Enterprise · vendor portal catalog sync · custom label printing · data-cleanup module
- 01
Read the live system
The catalog, the order queue and the product records were read before any change, and the fragile points were written down.
- 02
Build the sync
The nightly catalog sync was built against the vendor portal format, with a queue for records that fail instead of a silent drop.
- 03
Fix the labels and the duplicates
Order queue labels were keyed to the immutable product id, and the cleanup module repaired open order lines and blocked new duplicates.
- 04
Keep it running
Fixes and small changes continue inside the monthly plan, with notes for every change and staging before production.
05
Evidence
The nightly catalog update runs without a person, and rejected records wait in a queue with the reason attached.
Order queue labels resolve to the right product, and new duplicates are blocked at import rather than discovered later.
06
Limitations
- This is an ongoing support relationship, so the write-up covers the shipped items and makes no end-of-project claim.
- No quantified business outcome is published.