- Home
- Apps
- Multichannel & PIM Tools
- bpost Shipping Connector for Odoo
Illustrative previewA build-to-order Odoo delivery carrier that connects your bpost business account for negotiated-rate quoting,
label generation, parcel-locker and pickup-point selection, and automatic tracking status sync.
ECOSIRE scopes, builds, installs, and supports it for you.
What is bpost Shipping Connector for Odoo?
A build-to-order Odoo delivery carrier that connects your bpost business account for negotiated-rate quoting, label generation, parcel-locker and pickup-point selection, and automatic tracking status sync. ECOSIRE scopes, builds, installs, and supports it for you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Belgian and Benelux merchants running Odoo hit a wall the moment they try to ship with bpost. Out of the box, Odoo's delivery carriers cover the big global integrators (and, on Enterprise, a handful of regional ones), but there is no native bpost connector. That leaves warehouse teams copying weights and addresses into the bpost Shipping Manager portal by hand, guessing at rates on the sales quote, printing labels in a second system, and pasting tracking links back into Odoo one order at a time. Every one of those steps is a place to fat-finger a postcode, ship on a non-negotiated rate, or leave a customer without a tracking number.
ECOSIRE builds a proper bpost delivery.carrier provider for your Odoo. We extend delivery.carrier with a new delivery_type selection (bpost), store your bpost account ID, passphrase and contract reference on the carrier record, and implement the provider methods Odoo expects — bpost_rate_shipment, bpost_send_shipping, bpost_get_tracking_link and bpost_cancel_shipment. Rating calls your negotiated bpost contract so the price shown on the sale order and the delivery order is the real bpost price for that weight, destination and product (bpack 24h, bpack World, etc.), not a flat guess.
Technically, the connector sits on Odoo's stock and delivery layer. When a warehouse user validates the stock.picking, the module calls the bpost Shipping Manager API, receives the label (PDF or PNG), stores it as an ir.attachment, and writes the returned barcode into the picking's carrier_tracking_ref so the QWeb delivery slip and the customer email both carry it. A scheduled action (ir.cron) polls bpost for tracking events and updates a status field via a computed method decorated with @api.depends, so "Shipped → In transit → Delivered" flows into the chatter without anyone refreshing a portal. Parcel-locker and pickup-point shipments are handled by capturing the chosen point (with its bpost point ID) on the order and passing it through as the delivery address on the label call — including the eCommerce checkout path when you run Odoo Website. International shipments carry the required customs data (contents, value, HS code fields) so bpack World labels are accepted. All credentials and endpoints are stored in res.config.settings, and access is locked down with ir.model.access.csv plus record rules so only Inventory users touch carrier configuration.
Because this is a build-to-order module, you are not downloading a fixed app and hoping it fits. We start from your actual bpost contract, your Odoo version (17.0, 18.0 or 19.0), your Community or Enterprise edition, and your real shipping flows (drop-ship, multi-warehouse, returns), then build, test on a staging copy, and hand over installable source. Typical delivery is one working week from confirmed scope. You keep the git repository and full source — nothing is obfuscated or license-locked.
What you get
- Installable Odoo module source code targeted to your exact version (17.0, 18.0 or 19.0) and edition (Community or Enterprise)
- Installation and configuration on your environment, including bpost account, contract and sender-address setup in `res.config.settings`
- Technical documentation: model extensions, provider methods, cron behavior, endpoints and field mapping
- End-user guide plus a live training session for warehouse and sales staff on quoting, label printing and tracking
- UAT on a staging copy of your database with a documented rollback plan before touching production
- Post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history — you own the source
- Odoo-version compatibility notes and an upgrade advisory for future core releases
Who this is for
Benelux eCommerce merchant on Odoo Website
Runs an online store shipping domestically and cross-border with bpost. Needs pickup-point selection at checkout, negotiated rates shown to buyers, and automatic tracking emails so support isn't chasing parcels.
Warehouse / logistics manager
Owns the daily pick-pack-ship flow. Wants labels generated straight from the delivery order, barcodes on the slip, and status updates that appear in Odoo instead of a separate bpost portal.
Odoo integration lead or ERP admin
Responsible for a clean, upgrade-safe deployment. Wants a proper `delivery.carrier` extension, `ir.model.access.csv` security, cron-based sync, and source they control rather than a black-box app.
Finance / operations controller
Cares that quoted shipping equals invoiced shipping and that costs match the bpost contract. Values negotiated-rate accuracy and auditable API logging over flat-rate approximations.
How bpost Shipping Connector for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| bpost integration | Purpose-built `delivery.carrier` provider for bpost | Possible but you design the provider contract from scratch | Generic carrier app, bpost often absent or partial | No bpost carrier in Odoo core |
| Rate accuracy | Live negotiated-contract quoting per weight/zone | Depends on how the developer wires the rate call | Often flat or list rates, not your contract | Manual flat rates only |
| Label + tracking | Labels on picking validation, barcode + cron status sync | Built to spec but must be designed and tested | Basic labels; tracking sync varies | None — done in the bpost portal by hand |
| Parcel lockers / pickup points | Point capture + optional website checkout picker | Buildable, added scope and testing | Rarely covers point selection cleanly | Not supported |
| Odoo version fit | Built for your exact 17/18/19 + Community/Enterprise | Whatever the developer targets | Fixed builds; may lag your version | Ships with core, no bpost |
| Source ownership | Full git repo + unobfuscated source handed over | You own it, but you built and staffed it | Often license-locked or obfuscated | Core source, but no bpost feature |
| Support & upgrades | Post-go-live window + upgrade path on request | Your team maintains it | Vendor SLA varies; upgrades tied to their roadmap | Covered by Odoo, but feature doesn't exist |
| Time to value | one working week, scoped, tested on staging | Longer — hiring, spec, build, QA | Instant install but poor bpost fit | Immediate, but manual shipping forever |
Frequently Asked Questions about bpost Shipping Connector
How long does delivery take? Is this an instant download?
No — this is a build-to-order module, not an apps.odoo.com download. After a short scoping call we confirm scope, then build, test on staging and hand over. Typical delivery is one working week from confirmed scope, depending on your Odoo version, edition and how many shipping flows (returns, drop-ship, multi-warehouse) are involved.
Which Odoo versions and editions do you support?
We build for Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. The connector is a self-contained `delivery.carrier` provider, so it works whether or not you have Enterprise's stock/delivery extras. We tell you up front if your version reaches end of support during the engagement.
Do I need a bpost business account and contract?
Yes. The connector authenticates against your bpost Shipping Manager account (account ID and passphrase) and quotes against your negotiated contract. We do not resell bpost or set up your account — you keep your own commercial relationship and rates; the module simply drives them from Odoo.
How does tracking status get into Odoo?
A scheduled action (`ir.cron`) polls bpost for tracking events and updates a computed status field on the delivery order, posting transit milestones to the chatter. The barcode is written to `carrier_tracking_ref` at label time, so the customer's shipping-confirmation email and the delivery slip both carry a working tracking reference.
Can customers choose a parcel locker or pickup point?
Yes. Pickup-point / parcel-locker delivery is a core capability. The selected bpost point is captured on the order and passed through on the label request, and we can add a pickup-point picker to the Odoo Website checkout so eCommerce buyers select a locker before paying.
What about support and future Odoo upgrades?
Every build includes a post-go-live support window for defect fixes and config adjustments. Because you receive the full git repository and unobfuscated source, your own team or ECOSIRE can maintain it. When you upgrade Odoo (e.g. 18.0 → 19.0) or bpost changes its API, we can quote a migration; the code is structured to make that straightforward.
Will the shipping price shown to customers match what bpost invoices?
That's the point of quoting against your contract instead of a flat rate. `bpost_rate_shipment` calls bpost with the real weight, destination and product so the sale-order and delivery-order cost reflect your negotiated pricing. We validate this during UAT against sample shipments so quoted and invoiced amounts line up.
Related Modules

Base Shipping Partner
A shared foundation layer for Odoo shipping integrations — one place to hold carrier credentials, packaging, and delivery-method configuration that every connector reuses. Built to order by ECOSIRE, installed and supported after you request a quotation.

Bol.com Marketplace Connector (Benelux)
Two-way Bol.com (NL/BE) connector for Odoo: offers, orders, stock, prices, shipments and returns — built and installed by ECOSIRE.

Bulk Catalog Import / Migration Toolkit
A build-to-order Odoo toolkit that migrates entire product catalogs from Shopify, Magento, WooCommerce or CSV/Excel into Odoo eCommerce — variants, images, attributes, categories and SEO preserved. ECOSIRE scopes, builds, installs and supports it for Odoo 17.0, 18.0 and 19.0.

Canada Post Shipping Connector for Odoo
A build-to-order Odoo carrier connector that wires Canada Post into your delivery workflow for live Sell Online API rates, contract and non-contract pricing, label and manifest generation, tracking sync, and international customs forms. ECOSIRE scopes, builds, installs and supports it for your Odoo 17, 18 or 19 database.
bpost Shipping Connector
A build-to-order Odoo delivery carrier that connects your bpost business account for negotiated-rate quoting, label generation, parcel-locker and pickup-point selection, and automatic tracking status sync. ECOSIRE scopes, builds, installs, and supports it for you.
- New `bpost` `delivery_type` on `delivery.carrier`, implementing the full provider contract: `bpost_rate_shipment`, `bpost_send_shipping`, `bpost_get_tracking_link`, `bpost_cancel_shipment`
- Negotiated-rate quoting against your bpost Shipping Manager contract, so sale-order and delivery-order shipping cost reflects your real account pricing per weight/zone
- Label generation on `stock.picking` validation — bpost returns PDF/PNG, stored as an `ir.attachment` and printable via the standard delivery workflow
- Barcode written back to `carrier_tracking_ref`, surfaced on the QWeb delivery slip, portal and customer shipping-confirmation email