Odoo label printing: server actions, PostgreSQL views and file exports
Print product, lot, location and delivery labels from Odoo (Community or Enterprise, on-premise or Odoo.sh) via server actions calling the REST API, read-only PostgreSQL views and file exports — with scenarios and a checklist.
Odoo's Inventory and Manufacturing apps generate labels from QWeb reports, which is fine for a laser printer and painful for thermal printers of mixed brands across several warehouses. EtikStudio takes the same events — a receipt validated, a manufacturing order done, a delivery confirmed — and prints on any thermal printer in any language, keeping the label design outside QWeb.
Which integration paths fit Odoo
| Path | Fit | Why |
|---|---|---|
| REST API from a server action | Best | An automated action (Python) on stock.picking or mrp.production calls the REST API with the record's fields; works on-premise and on Odoo.sh through the connector. |
| Embedded data (PostgreSQL) | On-premise | Read-only views on product.product, stock.lot and res.partner; the label pulls description, lot and customer by key. |
| Watched folder | Good | Scheduled export of a list view (CSV) to a folder or FTP; EtikStudio prints the batch. No development. |
Typical scenarios
| Process | Label | Trigger |
|---|---|---|
| Receipts | Product and lot labels at validation | stock.picking validated (incoming) |
| Manufacturing | Finished-goods labels with lot and expiry | mrp.production marked done |
| Deliveries | Package and shipping labels | stock.picking validated (outgoing) |
| Locations | Rack and bin labels | stock.location created |
Recommended flow
An automated action of a few lines of Python is enough: on validation, build the payload and call the REST API; store the returned job id on the picking for traceability. Map warehouses to printers in a small configuration model or in EtikStudio's printer sharing.
Implementation checklist
- On Odoo.sh or Odoo Online, install the connector at each warehouse; on-premise can also use direct PostgreSQL views.
- Keep automated actions minimal and idempotent (re-validation must not print twice).
- Send lot and expiry for GS1-128; EtikStudio formats the AIs and check digits.
- Test with the longest product names in your catalog.
How EtikStudio handles it
The label design, printer language and fleet stay out of Odoo. Odoo sends the record; EtikStudio renders and prints on the right printer at the right warehouse, with print history per job.
Integration details vary by ERP version, deployment and licensing. Adapters and worked examples are provided during implementation.