A build-to-order Odoo integration that connects Naqel Express to your delivery workflow — create shipments, print AWB labels, fetch live rates, handle COD reconciliation and sync tracking, all from the Odoo backend. Scoped, built, installed and supported by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $199.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Odoo integration that connects Naqel Express to your delivery workflow
— create shipments, print AWB labels, fetch live rates, handle COD reconciliation and sync tracking, all from the Odoo backend. Scoped, built, installed and supported by ECOSIRE.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Odoo.
You go live in about 2–4 weeks, with a post-launch support window.
Saudi and GCC e-commerce sellers who ship with Naqel Express usually run their fulfilment out of two disconnected worlds: orders and inventory live in Odoo, but shipment creation, AWB label generation, rate lookups and COD reconciliation happen on the Naqel portal. Every dispatch means re-keying the consignee address, copying an AWB number back into the sales order, and manually chasing tracking updates. Odoo's native Inventory app ships with a delivery-carrier abstraction (delivery.carrier) and connectors for FedEx/UPS/DHL/bpost, but there is no Naqel provider out of the box — so base_on_rule fixed-price carriers are the ceiling, and none of the real Naqel API (rating, waybill, COD, tracking) is reachable.
ECOSIRE builds a dedicated Naqel Express connector as a proper Odoo module (__manifest__.py declaring dependencies on stock, delivery and sale) that adds a native carrier provider. We extend delivery.carrier with a naqel delivery type and implement the standard hook methods — naqel_rate_shipment, naqel_send_shipping and naqel_cancel_shipment — so Naqel behaves like any first-class carrier inside the delivery workflow. Credentials, account number, origin warehouse mapping and COD toggles are stored on the carrier record (and mirrored to ir.config_parameter where it makes sense), with sandbox/production endpoints switchable per environment. When a picking is validated, the module calls the Naqel REST/SOAP API to create the shipment, writes the returned waybill number back onto stock.picking.carrier_tracking_ref, and stores the label. AWB labels are retrieved from Naqel and either attached as the carrier PDF or rendered through a QWeb report so warehouse staff print directly from the delivery order. Live rates are pulled at quotation and checkout time so the customer sees an accurate Naqel price rather than a flat fee.
On the operations side we model what KSA sellers actually need: COD support with the collected-amount passed to Naqel and a reconciliation view that matches Naqel's remittance back to the originating invoice/order, so finance can see which cash-on-delivery shipments have been settled. Tracking is kept current through a scheduled automated action (ir.cron) that polls Naqel for status changes and posts them to the picking's chatter (with optional customer-facing status on the portal), plus an inbound webhook option where Naqel supports push updates. All new fields are computed or stored with proper @api.depends where derived, and every model is locked down with ir.model.access.csv access rights and record rules so multi-company/multi-warehouse setups stay isolated. Because it is a real module, the same shipment and rate calls are reachable over Odoo's XML-RPC/JSON-RPC API for any external storefront or middleware you run alongside Odoo.
This is a build-to-order engagement, not an instant apps.odoo.com download. After a short scoping call we confirm your Naqel account type, required services (domestic, GCC cross-border, COD, returns), Odoo edition (Community or Enterprise) and target version (17.0, 18.0 or 19.0). We then build against your Naqel sandbox credentials, ship the module to a staging database for UAT, and go live with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope, and you receive the full source and a git repository handover so nothing is a black box.
Runs daily fulfilment for a Saudi online store and needs Naqel shipments, AWB labels and tracking created straight from Odoo delivery orders — no more re-keying addresses into the Naqel portal.
Handles large cash-on-delivery volumes and needs Naqel's collected amounts matched back to Odoo invoices so remittances reconcile cleanly and settled vs pending COD is visible.
Ships domestically and cross-border across the GCC from several warehouses and needs correct per-warehouse Naqel origins, live rates at checkout, and multi-company record isolation.
Wants a clean, well-structured connector following Odoo carrier conventions, with source and git handover, that they can maintain and extend rather than a locked black-box app.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Naqel API integration | Full rating, waybill, COD and tracking calls wired into Odoo carrier hooks | Possible but you build every API mapping yourself | Often partial — rating or label only, if Naqel is covered at all | None — no Naqel provider in Odoo core |
| AWB label printing | Naqel label attached and printed via QWeb from the delivery order | Must design label retrieval and report from scratch | Sometimes a generic label, not always Naqel-formatted | No carrier label without a provider |
| Live rates at checkout | Real-time Naqel rates on quotations and website checkout | You implement the rate call and caching | Varies; may use static tables | Only fixed-price `base_on_rule` carriers |
| COD support & reconciliation | COD amount sent to Naqel plus remittance-to-invoice matching view | Reconciliation logic built by hand | Rarely includes finance-side reconciliation | No COD carrier flow |
| Tracking sync | Scheduled `ir.cron` polling plus optional webhook, posted to chatter | You schedule and parse status updates yourself | Manual or link-out to Naqel site | Manual status entry only |
| Odoo version & edition fit | Built for your exact 17/18/19 target, Community or Enterprise | Depends on your team's version discipline | Locked to the versions the vendor maintains | N/A |
| Source & ownership | Full source plus git repository handover | You own it but carry all build effort | Often obfuscated or license-locked | N/A |
| Support & fixes | Post-go-live support window from the team that built it | Reliant on your own staff availability | Generic ticket queue, no context on your setup | Community forums only |
No. This is a build-to-order engagement — ECOSIRE builds the Naqel Express connector for your specific Odoo version, edition and Naqel account, then installs and supports it. It is not an off-the-shelf apps.odoo.com download.
Typical delivery is 2–4 weeks from confirmed scope. After a scoping call we lock down services (domestic, GCC, COD, returns), your Odoo version and Naqel credentials; timeline depends mainly on how many services and edge cases you need.
Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. We build against your target version so the carrier provider, views and reports match that release exactly.
Every project includes a post-go-live support window for fixes and adjustments. You also receive full source and a git repository, so you (or any partner) can maintain it. Version upgrades or new Naqel services are handled as scoped follow-on work.
Yes. The connector passes the collected COD amount to Naqel per shipment and includes a reconciliation view that matches Naqel's remittances back to the originating Odoo order/invoice, so finance can track settled vs pending cash-on-delivery.
Yes. Because it is a real Odoo module, shipment creation and rate lookups are reachable through Odoo's XML-RPC/JSON-RPC API, so a headless storefront or integration layer can trigger the same Naqel calls Odoo uses internally.
We build against your Naqel sandbox/test credentials and validate the full flow on a staging database. We only switch to production endpoints and your live account during the go-live cutover, following a documented checklist and rollback plan.

A build-to-order Odoo module that turns your warehouse into a multi-client third-party logistics operation, with per-client inventory segregation, activity-based storage and handling billing, and a customer fulfillment portal. ECOSIRE scopes, builds, installs, and supports it.

Build-to-order Odoo module that syncs orders, stock levels and tracking between Odoo and any external 3PL via API or XLSX/CSV.

A made-to-order Odoo module that governs which products and categories appear on each of your websites, with user- and group-based restrictions layered on top. ECOSIRE builds, installs, and supports it against your exact multi-website setup.

Build-to-order Odoo WMS layer: zoning, wave/cluster picking, directed putaway and velocity slotting. We build, install and support it.
A build-to-order Odoo integration that connects Naqel Express to your delivery workflow — create shipments, print AWB labels, fetch live rates, handle COD reconciliation and sync tracking, all from the Odoo backend. Scoped, built, installed and supported by ECOSIRE.