- Home
- Apps
- Multichannel & PIM Tools
- TCS Courier Connector for Odoo
Illustrative previewA build-to-order Odoo integration that connects TCS courier (Pakistan) to your sales and delivery flow
— booking consignments, printing AWB/load-sheet labels, tracking parcels and reconciling COD directly from Odoo. Built, installed and supported by ECOSIRE.
What is TCS Courier Connector for Odoo?
A build-to-order Odoo integration that connects TCS courier (Pakistan) to your sales and delivery flow — booking consignments, printing AWB/load-sheet labels, tracking parcels and reconciling COD directly from Odoo. Built, installed and supported by ECOSIRE. 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
If you ship with TCS across Pakistan, you already know the daily friction: staff re-key every order into the TCS portal, copy consignment numbers back into Odoo by hand, print labels from a separate screen, and reconcile COD collections against a spreadsheet at month-end. Odoo's native stock.picking and the standard "Delivery Methods" (delivery.carrier) framework give you generic shippers and flat/rule-based rates, but there is no TCS provider out of the box — no consignment booking against the TCS API, no city serviceability check, no AWB in the TCS load-sheet format, and no COD amount flowing back to reconciliation. That gap is exactly where a manual, error-prone process creeps in.
ECOSIRE builds a dedicated TCS provider that plugs into Odoo's carrier framework. We add a delivery.carrier of type tcs with its own credential fields (account number, API user/password/token, cost centre) stored on the carrier and, where you have multiple entities, on res.company. When a picking is validated, a book_shipment() implementation calls the TCS consignment-booking endpoint over its JSON/REST API, writes the returned CN/tracking number back onto the stock.picking (custom tcs_consignment_no, tcs_tracking_url fields defined on models.Model with proper ir.model.access.csv grants and record rules so only warehouse users see them), and stores the raw response for audit. City and service-area validation runs before booking so an un-serviceable destination is caught at the counter, not at the TCS hub.
Labelling is handled as a QWeb report: we generate the AWB/airway-bill and the TCS load-sheet as PDFs sized for your thermal or A5 printer, populated from the booked consignment data so what prints always matches what TCS has on record. COD is first-class — the order's COD amount is carried onto the consignment at booking, and we add reconciliation fields plus a view (and optional mail.activity/automated action) so finance can match TCS remittances back to the originating sale order and mark them settled. Tracking updates flow back either by a scheduled ir.cron that polls the TCS tracking endpoint or via an inbound webhook, updating delivery state on the picking so customer-service sees live status without leaving Odoo. Everything is exposed through Odoo's XML-RPC/JSON-RPC API too, so your storefront or a warehouse app can trigger a booking programmatically.
Because this is build-to-order, you are not downloading a generic app and hoping it fits. We start from a short scoping call to confirm your TCS account setup (COD vs non-COD, weight/piece rules, single vs multi-warehouse, Community or Enterprise, and your exact Odoo version — 17.0, 18.0 or 19.0), then build against those requirements, test on a staging copy of your database, and hand over installable source plus a git repository. Typical delivery is one working week from confirmed scope. You get a version-matched module, documentation, a training session for your dispatch and finance teams, and a post-go-live support window — not a black box.
What you get
- Installable module source code built for your exact Odoo version (17.0, 18.0 or 19.0) and Community/Enterprise edition
- Installation and configuration on your environment, including TCS credential setup, carrier configuration and serviceability data
- Technical documentation: models, fields, security rules, cron/webhook setup, API endpoints and configuration reference
- End-user guide plus a live training session for your dispatch and finance teams
- UAT on a staging copy of your database with a documented test plan and a rollback plan before production go-live
- Post-go-live support window for bug fixes and adjustments after launch
- Git repository handover with full commit history so you own and can extend the code
- Configured QWeb label/load-sheet report templates matched to your printer stationery
Who this is for
Pakistani retailer shipping COD orders on TCS
Runs an online or multi-branch retail business fulfilling COD parcels daily through TCS. Needs one-click booking from the Odoo sale order, printed AWBs that match TCS records, and clean COD reconciliation instead of end-of-month spreadsheet guesswork.
Distributor with multi-warehouse dispatch
Ships from several warehouses and companies on a single Odoo database. Needs per-company TCS accounts and cost centres, serviceability checks before booking, and live tracking so customer service can answer 'where is my order' without logging into the TCS portal.
Finance/accounts lead reconciling COD remittances
Responsible for matching TCS COD payouts against invoices. Needs COD amounts carried onto each consignment and a reconciliation view that links remittances back to the originating order, flagging what is settled and what is still outstanding.
Odoo administrator or systems integrator
Owns the Odoo instance and wants a clean, upgrade-safe module with proper `ir.model.access.csv` security, documented models, and API access — plus a git handover so the integration can be maintained and extended in-house.
How TCS Courier Connector for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| TCS API booking | Native `delivery.carrier` books consignments on picking validation | Possible but you design and maintain the API layer yourself | Rarely a true TCS provider; often generic or absent | No TCS provider — manual entry in the TCS portal |
| AWB / load-sheet labels | QWeb PDF reports sized for your thermal/A5 stationery | Build and format the QWeb templates from scratch | Generic label if any; seldom TCS load-sheet format | No courier label — printed separately from TCS |
| COD reconciliation | COD carried to consignment + reconciliation view for remittances | Custom fields and matching logic built to order | COD field at best; reconciliation usually missing | Handled manually in spreadsheets |
| Serviceability validation | City/service-area checked before booking | You source and wire the serviceability data | Typically not validated pre-booking | None — errors surface only at the TCS hub |
| Tracking sync | `ir.cron` poll and/or webhook updates picking status | Cron/webhook designed and maintained by you | Manual or link-out to TCS site | No live tracking inside Odoo |
| Version & edition fit | Built for your exact 17/18/19, Community or Enterprise | Depends on your team's Odoo depth | Fixed builds; may lag your version | N/A — no feature to match |
| Ownership & handover | Full source + git repository handed over | You own it but also own all the effort | Compiled/licensed; limited to no source | N/A |
| Support | Post-go-live support window + quotable upgrades | Self-supported by your team | Vendor ticket queue, variable response | Community forums only |
Frequently Asked Questions about TCS Courier Connector
How long does delivery take?
This is a build-to-order module. After a short scoping call to confirm your TCS account setup, Odoo version and COD/warehouse requirements, typical delivery is one working week from confirmed scope. We test on a staging copy of your database before any production go-live.
Is this an app I can download and install immediately?
No. It is not an existing apps.odoo.com download. ECOSIRE builds it to match your exact Odoo version and TCS account, installs it, and hands over the source and git repository. You get a version-matched integration rather than a generic package.
Which Odoo versions and editions do you support?
We build for Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. We confirm your exact running version at scoping and build and test against it, so the module installs cleanly without version-mismatch surprises.
Do you handle COD orders and reconciliation?
Yes. The COD amount is carried from the sale order onto the TCS consignment at booking, and we add reconciliation fields and a view so finance can match TCS remittances back to the originating orders and mark them settled or outstanding.
What TCS access do I need to provide?
You need an active TCS business account with API/booking credentials (account number, API user/password or token, and cost centre). We use those to book consignments, print AWB/load-sheet labels and poll tracking. We confirm exactly what is required during scoping.
What support and updates do I get after go-live?
Every build includes a post-go-live support window for bug fixes and adjustments. Because you receive the full source and git repository, your team can maintain and extend it, and we can quote separately for future TCS API changes or new Odoo-version upgrades.
Can other systems trigger a TCS booking automatically?
Yes. The integration works within Odoo's standard delivery flow and is also reachable over Odoo's XML-RPC/JSON-RPC API, so a storefront, marketplace connector or warehouse app can trigger a booking programmatically instead of a user clicking in the Odoo UI.
Related Modules

Stock Product Labels for Odoo
A made-to-order Odoo module that prints custom product and barcode labels straight from stock transfers, receipts and warehouse operations. ECOSIRE builds it to your label stock, symbology and workflow, then installs and supports it on Odoo 17/18/19.

Subscription & Recurring Commerce for Website Sale
Sell subscriptions, subscribe-and-save and recurring boxes on your Odoo website with dunning and customer self-service. Built, installed and supported by ECOSIRE.

Theme Base — Shared eCommerce Theme Foundation
A shared foundation module that centralizes the assets, snippet options, and helper models every one of your Odoo eCommerce themes depends on — built to order by ECOSIRE so your themes stay consistent, upgradeable, and free of duplicated code.

Theme Common — Shared Website Theme Utilities for Odoo
A build-to-order shared foundation layer for your Odoo website themes — one common library of QWeb snippets, SCSS design tokens, and reusable OWL/JS widgets that every child theme inherits. ECOSIRE scopes, builds, installs, and supports it for you.
TCS Courier Connector
A build-to-order Odoo integration that connects TCS courier (Pakistan) to your sales and delivery flow — booking consignments, printing AWB/load-sheet labels, tracking parcels and reconciling COD directly from Odoo. Built, installed and supported by ECOSIRE.
- Adds a native `delivery.carrier` provider of type `tcs`, integrating with Odoo's standard Delivery Methods so booking happens from the picking, not a separate portal
- Consignment booking via the TCS REST/JSON API on `stock.picking` validation, with the returned CN number and tracking URL written back to custom fields on the picking
- City and service-area serviceability validation before booking, so un-deliverable destinations are rejected at the counter with a clear error
- QWeb PDF reports for the AWB/airway-bill and the TCS load-sheet, sized for thermal or A5 stationery and populated from live booked data