Build-to-order PostNL connector for Odoo: live rates, labels, tracking, cancellation & pickup points. Built and supported by ECOSIRE. One-time license from $199.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Build-to-order PostNL connector for Odoo: live rates, labels, tracking, cancellation & pickup points. Built and supported by ECOSIRE.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
PostNL Shipping Connector is a build-to-order Odoo module engineered by ECOSIRE for Netherlands and Benelux e-commerce sellers who ship with PostNL. This is not an instant download from apps.odoo.com — our engineers scope it against your PostNL contract, build it, install it on your Odoo 17, 18 or 19 instance, and support it. Typical delivery is 2 to 4 weeks from a signed brief and PostNL API credentials.
PostNL live rate quotation on the sale order and website checkout, calling PostNL's tariff API with real weight, dimensions and destination
Automatic shipment registration and print-ready PDF label generation from the Odoo delivery order (stock.picking) via PostNL's labelling endpoint
One-click shipment cancellation that voids the PostNL label before handover so you are never billed for unused labels
Track-and-trace barcode written back to the picking and shown on the customer's Odoo portal order page
Scheduled tracking sync (ir.cron automated action) that polls PostNL status and updates the delivery timeline in Odoo
Pickup-point (PostNL retail location) selection so buyers can choose a nearby collection point at checkout
The module wires PostNL's official APIs directly into your Odoo Inventory and delivery workflow. It ships as a proper Odoo addon with its own __manifest__.py declaring dependencies on delivery and stock, a delivery.carrier extension exposing postnl as a rate-and-ship delivery method, dedicated models.Model classes for shipments and tracking events, and computed fields that keep rate and status data in sync via @api.depends. Every capability is surfaced through native Odoo — the standard delivery-method picker on the sale order, a Generate Labels button on the stock.picking (delivery order), and a tracking reference that customers see on their portal.
Live rating happens at checkout and on the sale order: when a customer picks PostNL, the connector calls PostNL's rate service with the shipment's weight, dimensions and destination and returns the correct product tariff (domestic parcel, mailbox parcel, evening delivery, EU and international). Once the warehouse validates the delivery order, the module requests a shipment from PostNL, stores the returned barcode/track-and-trace code on the picking, and attaches the print-ready label (PDF, generated through PostNL's labelling endpoint) as an ir.attachment ready for the packing station. If an order is cancelled before handover, one click calls PostNL's cancellation flow and voids the label so you are not billed. A scheduled automated action (ir.cron) polls PostNL's status API and writes delivery events back to Odoo, updating the tracking timeline and — optionally — firing the order-status email to the buyer.
Security is done the Odoo way: access rights are declared in ir.model.access.csv and record rules keep shipment data scoped to the right company in a multi-company setup, so warehouse users can print labels without seeing your PostNL API secret. Credentials live in encrypted system parameters, and all PostNL calls are logged for audit and troubleshooting. Because we build to your spec, we can also expose the connector over Odoo's XML-RPC/JSON-RPC API so an external OMS or marketplace bridge can request labels programmatically.
The build supports both Community and Enterprise (rate-at-checkout on the eCommerce website requires the Website Sale flow; back-office rating and labelling work on either edition). You get the full source, so there is no black box and no per-label SaaS surcharge on top of your PostNL contract. ECOSIRE handles installation, sandbox testing against PostNL's test environment, go-live cutover and a post-launch support window.
Runs a Netherlands or Belgium online store on Odoo Website Sale and needs accurate PostNL rates at checkout plus one-click labels from the delivery order, without exporting orders to a separate shipping tool.
Validates delivery orders in Odoo Inventory all day and wants to print PostNL labels, drop tracking numbers onto pickings and cancel mistaken shipments directly from the stock.picking screen — no copy-paste into the PostNL portal.
Ships from the Netherlands into Germany, Belgium and the wider EU and needs the connector to pick the right PostNL international product, capture customs fields and give buyers pickup-point and evening-delivery choices.
Owns the Odoo instance (Community or Enterprise, self-hosted or Odoo.sh) and wants a maintainable, source-available module with proper ir.model.access security, encrypted credentials and an audit log — not a black-box SaaS add-on.
Buy the license on ecosire.com and download the PostNL Shipping Connector for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for PostNL Shipping Connector for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Live PostNL rates at checkout and on the sale order | Possible but you build the PostNL API integration yourself | Sometimes, but tied to a generic multi-carrier layer | ||
| One-click PostNL label PDF from the delivery order | Only if you code the labelling endpoint call | Often gated behind a paid tier or SaaS add-on | ||
| Shipment cancellation that voids the PostNL label | Rarely built — usually manual in the PostNL portal | |||
| Automated tracking sync back into Odoo (ir.cron) | You must design and schedule the polling job | |||
| Pickup points, evening delivery and EU/international products | Each option is extra bespoke work | Varies by module; often partial | ||
| Full source you own, no per-label SaaS surcharge | Yes, but at full in-house build cost | Usually no — locked module or per-shipment fees | ||
| Built, installed and supported for Odoo 17/18/19 | Only if you staff Odoo engineers | Self-install; support quality varies | ||
| Odoo-native security (ir.model.access.csv + record rules, encrypted keys) | Depends on your team's rigor |
This is a build-to-order module, not an instant download. After you send a signed brief and your PostNL API credentials, typical delivery is 2 to 4 weeks: we scope against your PostNL contract, build the addon, test it in PostNL's sandbox, then install and cut over to production on your Odoo 17, 18 or 19 instance. A tighter timeline is sometimes possible for a standard domestic-only scope — ask us.
Every build includes a post-launch support window covering bug fixes and adjustments if PostNL changes their API during that period. You receive the full module source, so nothing is locked behind a subscription. Beyond the included window we offer ongoing support and Odoo-version upgrade retainers, and because the code is yours your own team or any Odoo partner can maintain it.
The core rating, labelling, cancellation and tracking all run on Odoo Community. Rate-at-checkout on your public eCommerce site uses the Website Sale flow. We confirm your edition (Community or Enterprise) and hosting — self-hosted or Odoo.sh — during scoping and build against it.
Yes. The connector uses PostNL's official APIs with your merchant credentials and your negotiated tariffs — we do not resell shipping. You keep your direct PostNL contract and billing; the module simply automates rating, labels, cancellation and tracking inside Odoo. There is no per-label surcharge from us.
Yes. Buyers can select a PostNL pickup (retail) location or an evening-delivery slot at checkout, and the module maps each choice to the correct PostNL product code. International and EU shipments are supported with the required customs data fields, and mailbox-parcel versus standard-parcel logic is driven by weight and dimensions to pick the cheapest valid tariff.
It is a standard Odoo addon: a __manifest__.py declaring dependencies on delivery and stock, a delivery.carrier extension that registers 'postnl' as a rate-and-ship method, custom shipment and tracking models with @api.depends computed fields, an ir.cron for status polling, QWeb-based dispatch emails, and security via ir.model.access.csv plus multi-company record rules. Credentials are stored encrypted, and every PostNL call is logged for audit.
Build-to-order PostNL connector for Odoo: live rates, labels, tracking, cancellation & pickup points. Built and supported by ECOSIRE.