Skip to main content
Product details are displayed in English. Translations coming soon.
Delivery Base Module — A build-to-order foundation module that gives every Odoo shipping-carrier integration a shared, consis — 1/1مثالی پیش منظر

A build-to-order foundation module that gives every Odoo shipping-carrier integration a shared,

consistent base layer — rate abstraction, label storage, tracking hooks, and a common `delivery.carrier` extension pattern.

ECOSIRE scopes, builds, installs, and supports it.

Delivery Base Module کیا ہے؟

A build-to-order foundation module that gives every Odoo shipping-carrier integration a shared, consistent base layer — rate abstraction, label storage, tracking hooks, and a common `delivery.carrier` extension pattern. ECOSIRE scopes, builds, installs, and supports it. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

اہم خصوصیات

Extends `delivery.carrier` with a shared, normalized field set — rate structure, service level, tracking number, tracking URL, and label reference — so every downstream connector uses identical names
Defines an abstract Python carrier interface (`_get_rate()`, `_send_shipping()`, `_cancel_shipment()`, `_get_tracking_link()`) that carrier-specific modules subclass instead of re-implementing plumbing
Standardized label storage via `ir.attachment` with one convention for PDF, ZPL, and PNG formats, linked to the originating `stock.picking`
`@api.depends` computed fields for volumetric (dimensional) weight and landed shipping cost, recomputing on package dimension or weight change
Unit-of-measure conversion layer between warehouse UoM and each carrier's expected weight/dimension units, driven by `uom.uom`
Per-carrier credential storage secured with `ir.model.access.csv` groups and record rules so only shipping managers read API keys
Request/response audit log model capturing outbound carrier API calls and responses for debugging, with configurable retention
Configurable timeout and retry policy with backoff for carrier API calls, so a slow endpoint does not block the picking workflow
QWeb report template for packing slips and labels that carrier modules reuse rather than duplicating report XML
Package-level model for multi-parcel shipments, mapping Odoo `stock.package` data into a carrier-agnostic parcel structure
Rate and label methods exposed cleanly for XML-RPC / JSON-RPC access, enabling headless and e-commerce-driven shipment creation
Automated action hooks on `stock.picking` state changes so carrier modules can trigger label generation or tracking sync without patching core
Multi-company and multi-warehouse aware — carrier records and credentials scoped by company via `company_id` and record rules
Built and tested against Odoo 17.0, 18.0, or 19.0 on Community or Enterprise, with a clean `__manifest__.py` declaring the dependency for connector modules

آرڈر پر تیار، مکمل طور پر آپ کے لیے

خود سیٹ اپ کی ضرورت نہیں — ایک کام کرنے والی ایپ جو ECOSIRE بناتا، انسٹال اور سپورٹ کرتا ہے۔

  1. 1

    آپ آرڈر دیتے ہیں

    ایک بار کی تعمیر کی قیمت سے آغاز کریں۔ آغاز پر ہم آپ کے ساتھ مل کر دائرہ کار طے کرتے ہیں۔

  2. 2

    ہم بناتے اور انسٹال کرتے ہیں

    ECOSIRE اسے آپ کے Odoo پر بناتا، ترتیب دیتا اور انسٹال کرتا ہے۔

  3. 3

    لائیو + معاونت

    آپ تقریباً ایک کاروباری ہفتے میں لائیو ہو جاتے ہیں، گو لائیو کے بعد دو ہفتوں کی معاونت کے ساتھ۔ ہمارے فراہم کردہ کوڈ کی خرابیاں مفت درست کی جاتی ہیں۔

تکنیکی تفصیلات

Odoo ہم آہنگی
Odoo 17, Odoo 18, Odoo 19
ایڈیشنز
Enterprise اور Community
لائسنس
لائسنس کی تصدیق درکار ہے
Python کی ضرورت
Python 3.10+
ڈیٹابیس
PostgreSQL 12+

اس مصنوع کے بارے میں

Once you run more than one courier in Odoo, the cracks show. Odoo's native delivery app models a delivery.carrier and stock.picking handoff, but each carrier connector you bolt on tends to re-invent its own rate-request plumbing, its own label field, its own tracking-reference storage and its own error handling. The result is duplicated code, inconsistent field names across connectors, label PDFs stored three different ways, and a support burden that grows with every new integration. There is no shared contract that says "this is how a shipping carrier talks to Odoo here" — so the tenth connector is as expensive to build and debug as the first.

The Delivery Base Module is the foundation layer that fixes that. It is not a courier connector itself; it is the shared substrate that every ECOSIRE (and your own) shipping integration installs on top of. Technically, it extends delivery.carrier with a common set of fields and abstract methods — a normalized rate-request/rate-response structure, standardized label storage (ir.attachment-backed, one convention for PDF/ZPL/PNG), tracking-number and tracking-URL fields, package-level dimension and weight normalization, and a service-level selector. Carrier-specific modules then subclass a well-defined Python interface (_get_rate(), _send_shipping(), _cancel_shipment(), _get_tracking_link()) instead of each connector improvising its own. Under the hood it uses models.Model inheritance, @api.depends computed fields for landed-cost and volumetric weight, and a thin service layer that carrier modules call — so a new integration is a few hundred lines, not a few thousand.

The module ships with the cross-cutting concerns a fleet of connectors needs but no single connector should own: unit-of-measure conversion between your warehouse UoM and each carrier's expected weight/dimension units, a request/response audit log for debugging carrier API calls, configurable retry and timeout handling, credential storage on the carrier record (with ir.model.access.csv and record rules so only shipping managers read API keys), and a QWeb-driven packing-slip/label report template that carrier modules reuse. Because it exposes its rate and label methods cleanly, they are also reachable over the XML-RPC/JSON-RPC API for headless or e-commerce-driven flows. It is built to your target — Odoo 17.0, 18.0, or 19.0 — and works on both Community and Enterprise (the base itself needs no Enterprise-only dependency; if your carrier flow relies on Enterprise studio or EDI features we call that out during scoping).

Because this is a dependency other modules require, we treat it as an architectural decision, not a plugin drop. During scoping we map which carriers you run now and plan to add, your warehouse UoM conventions, your multi-company and multi-warehouse layout, and any existing home-grown connectors we need to migrate onto the base. We then build against a clean staging clone of your database, run UAT there, and hand over versioned source plus the git repository.

This is build-to-order: nothing is downloaded and switched on instantly. After a short scoping call we confirm scope in writing and typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); the number of carrier interfaces you need supported, multi-company/multi-warehouse layout, UoM and localization depth, and migration of existing custom connectors onto the base all increase the quoted scope. You get a firm fixed quote after the scoping call — never a surprise on the invoice.

What you get

  • Installable source code for your target Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your staging environment, including access-group and record-rule setup
  • Technical documentation covering the carrier interface, field contract, and how to build connector modules on top
  • User guide plus a live training session for your shipping and warehouse team
  • UAT on a staging clone of your database with a documented rollback plan before any production change
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and tagged release
  • Reference connector stub demonstrating how to subclass the base interface for a new carrier

Who this is for

Odoo teams running multiple couriers

Operations or IT teams that already ship with two or more carriers and are tired of each connector storing labels, tracking, and rates differently. They need one shared base so the next integration is cheap and consistent.

Odoo partners and in-house developers

Developers who plan to build their own carrier connectors and want a clean, well-documented interface (`_get_rate()`, `_send_shipping()`, etc.) to subclass rather than reinventing rate and label plumbing per carrier.

Logistics-heavy retailers and 3PLs

Businesses with high shipment volume across warehouses and companies that need consistent volumetric-weight calculation, UoM normalization, and an audit trail of every carrier API call for dispute resolution.

E-commerce operations wiring headless flows

Teams driving shipment creation from a storefront or middleware over XML-RPC/JSON-RPC that need the rate and label logic exposed through a stable, documented API surface.

How Delivery Base Module Compares

CriterionECOSIRECustom BuildCompetitorOdoo نیٹو
What you getPurpose-built shared carrier base, scoped to your carriers and warehousesWhatever your team has time to build and maintainGeneric base bundled with one vendor's connectorsA single `delivery.carrier` model with no shared connector contract
Carrier interfaceDocumented abstract methods every connector subclasses consistentlyInterface quality depends entirely on internal disciplineInterface tied to that vendor's connector conventionsNo abstract multi-carrier interface — each connector improvises
Label & tracking storageOne `ir.attachment` convention for PDF/ZPL/PNG plus tracking fieldsOften inconsistent between connectorsStandardized within the vendor's own connector set onlyBasic tracking reference; no unified label storage
Volumetric weight & UoMComputed volumetric weight and warehouse-to-carrier UoM conversionBuilt per connector, easy to get wrongVaries by vendor; sometimes fixed to their localeNo built-in dimensional-weight or UoM normalization layer
API audit & retriesRequest/response audit log with configurable timeout and retryRarely built until an outage forces itUsually not exposed as a reusable base concernNone at the base layer
Fit & ownershipMade to order; full git repo and source handover to youYou own it, but you also own every bug and upgradeLicensed as-is; limited to the vendor's roadmapShips with Odoo; you extend it yourself
Support & deliveryScoped build, staging UAT, rollback plan, post-go-live support windowYour team is the only line of supportVendor support tiers, generic to all buyersCommunity forums or your Odoo partner
Timeline & costone working week from confirmed scope; from $999 indicative, fixed quote after scopingOpen-ended internal effort and salary costInstant download but generic fit and hidden integration workFree, but every connector concern is your build cost

Frequently Asked Questions about Delivery Base Module

Is this a courier connector I can download and use today?

No. It is a build-to-order foundation module — the shared base layer that individual carrier connectors install on top of. It is not on apps.odoo.com as an instant download; ECOSIRE scopes, builds, installs, and supports it for your specific Odoo environment. On its own it standardizes the carrier contract; you pair it with one or more carrier integrations (ours or your own) to actually ship.

How long does delivery take?

Because every build is made to order, we do not ship a pre-packaged binary. After a short scoping call and written scope confirmation, typical delivery is one working week from confirmed scope. The exact timeline depends on how many carrier interfaces you need supported and whether we are migrating existing custom connectors onto the base.

How does pricing and scoping work?

Pricing starts from $999 as an indicative figure for a single-company base scope. The final number depends on the number of carrier interfaces supported, multi-company/multi-warehouse layout, UoM and localization depth, and any migration of existing custom connectors. We give you a firm fixed quote after the scoping call — the from-price is a starting point, not the invoice.

What about support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and configuration questions, plus the full git repository so your team owns the code. Because we build against a specific Odoo version (17.0, 18.0, or 19.0), version upgrades or ports to a newer Odoo release are handled as a separate scoped engagement — we will quote that when you plan the upgrade.

Does it work on Odoo Community, or do I need Enterprise?

The base module itself has no Enterprise-only dependency and runs on Community or Enterprise. If a particular carrier flow you want relies on Enterprise-only features (for example certain EDI or Studio capabilities), we flag that during scoping so there are no surprises.

Will it conflict with Odoo's native delivery app or my existing connectors?

It extends `delivery.carrier` and the standard `stock.picking` flow rather than replacing them, so native delivery behavior stays intact. If you already have home-grown connectors, we assess them during scoping and, where it makes sense, refactor them to subclass the base interface — that migration is part of the quoted scope.

Can I build my own carrier connectors on top of it later?

Yes — that is the point. The module exposes a documented Python interface and a reusable QWeb report, so your developers subclass `_get_rate()`, `_send_shipping()`, `_cancel_shipment()`, and `_get_tracking_link()` for each new carrier. We include a reference connector stub and technical docs to make that straightforward.

آرڈر پر تیار
Deadstock & Overstock Analytics for Odoo
آرڈر پر تیار
Decathlon Marketplace Connector (Mirakl)
Odoo

Decathlon Marketplace Connector (Mirakl)

Publish offers, import orders and manage returns for the Decathlon marketplace (Mirakl) directly from Odoo 17/18/19. Built, installed and supported by ECOSIRE.

From $999.00ابتدائی قیمت — آپ کے دائرۂ کار کے مطابق مقرر کی جائے گی
آرڈر پر تیار
DHL Express Shipping Connector for Odoo
Odoo

DHL Express Shipping Connector for Odoo

Build-to-order Odoo module connecting DHL Express for live rates, PDF/ZPL labels, tracking and pickup booking on your delivery orders.

From $999.00ابتدائی قیمت — آپ کے دائرۂ کار کے مطابق مقرر کی جائے گی
آرڈر پر تیار
DPD Shipping Connector for Odoo
Odoo

DPD Shipping Connector for Odoo

Custom-built Odoo DPD connector: API labels, live rates, Predict notifications and tracking sync. Built and supported by ECOSIRE in one working week.

From $999.00ابتدائی قیمت — آپ کے دائرۂ کار کے مطابق مقرر کی جائے گی
قیمت کا تخمینہ طلب کریں

Delivery Base Module

A build-to-order foundation module that gives every Odoo shipping-carrier integration a shared, consistent base layer — rate abstraction, label storage, tracking hooks, and a common `delivery.carrier` extension pattern. ECOSIRE scopes, builds, installs, and supports it.

  • Extends `delivery.carrier` with a shared, normalized field set — rate structure, service level, tracking number, tracking URL, and label reference — so every downstream connector uses identical names
  • Defines an abstract Python carrier interface (`_get_rate()`, `_send_shipping()`, `_cancel_shipment()`, `_get_tracking_link()`) that carrier-specific modules subclass instead of re-implementing plumbing
  • Standardized label storage via `ir.attachment` with one convention for PDF, ZPL, and PNG formats, linked to the originating `stock.picking`
  • `@api.depends` computed fields for volumetric (dimensional) weight and landed shipping cost, recomputing on package dimension or weight change

قیمت کا تخمینہ طلب کریں

ہمیں Delivery Base Module کے لیے اپنی ضروریات بتائیں اور ہم آپ کو قیمتیں، لائسنس کے اختیارات اور ایک مخصوص تجویز بھیجیں گے — عام طور پر ایک کاروباری دن میں۔

ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔