Skip to main content
bpost Shipping Connector for Odoo — A build-to-order Odoo delivery carrier that connects your bpost business account for nego — 1/1Illustrative preview

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.

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

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
Parcel-locker and pickup-point (bpost collection point) selection captured on the order and passed as the ship-to point on the label call
Optional pickup-point picker on the Odoo Website checkout so eCommerce buyers choose a locker before payment
Scheduled `ir.cron` tracking poller that updates delivery status and posts transit events to the picking chatter
Computed status field via `@api.depends` mapping bpost event codes to a readable state (Announced / In transit / Delivered / Exception)
International bpack World support with customs fields (contents description, declared value, HS code) validated before label request
Support for multiple bpost products (bpack 24h Pro, bpack World Business, etc.) selectable per carrier or per order rule
Shipment cancellation from Odoo that voids the bpost label when a delivery order is cancelled before dispatch
Configuration in `res.config.settings` for account ID, passphrase, contract, sender address and sandbox-vs-production endpoint toggle
Security via `ir.model.access.csv` and record rules restricting carrier credentials and label actions to Inventory roles
Multi-company / multi-warehouse aware — carrier credentials and sender addresses resolved per company
Clean error surfacing: failed bpost API calls raise readable `UserError` messages instead of silent failures, with request logging for support

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

CriterionECOSIRECustom BuildCompetitorOdoo Native
bpost integrationPurpose-built `delivery.carrier` provider for bpostPossible but you design the provider contract from scratchGeneric carrier app, bpost often absent or partialNo bpost carrier in Odoo core
Rate accuracyLive negotiated-contract quoting per weight/zoneDepends on how the developer wires the rate callOften flat or list rates, not your contractManual flat rates only
Label + trackingLabels on picking validation, barcode + cron status syncBuilt to spec but must be designed and testedBasic labels; tracking sync variesNone — done in the bpost portal by hand
Parcel lockers / pickup pointsPoint capture + optional website checkout pickerBuildable, added scope and testingRarely covers point selection cleanlyNot supported
Odoo version fitBuilt for your exact 17/18/19 + Community/EnterpriseWhatever the developer targetsFixed builds; may lag your versionShips with core, no bpost
Source ownershipFull git repo + unobfuscated source handed overYou own it, but you built and staffed itOften license-locked or obfuscatedCore source, but no bpost feature
Support & upgradesPost-go-live window + upgrade path on requestYour team maintains itVendor SLA varies; upgrades tied to their roadmapCovered by Odoo, but feature doesn't exist
Time to valueone working week, scoped, tested on stagingLonger — hiring, spec, build, QAInstant install but poor bpost fitImmediate, 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.

Request a quote

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

Request a Quotation

Tell us about your bpost Shipping Connector requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.