A build-to-order Frappe app that wires ClickPost's multi-carrier engine into ERPNext, adding smart courier allocation, unified labels and manifests, real-time tracking with ETA prediction, and an NDR/NPR resolution workflow. ECOSIRE scopes, builds, installs, and supports it for your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Frappe app that wires ClickPost's multi-carrier engine into ERPNext,
adding smart courier allocation, unified labels and manifests, real-time tracking with ETA prediction, and an NDR/NPR resolution workflow.
ECOSIRE scopes, builds, installs, and supports it for your instance.
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 ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
Mid-market retailers running ERPNext outgrow its native shipping quickly. ERPNext core gives you a Shipment DocType, a handful of Shipping Rule records, and manual tracking-number fields — but it has no concept of rule-based carrier selection, no live status ingestion, and no structured way to work a non-delivery. When you ship across five or ten couriers, teams end up allocating orders in spreadsheets, pasting tracking IDs into carrier portals one at a time, and chasing failed deliveries over email. The cost is real: higher RTO rates, WISMO tickets, and working capital stuck in packages that will never be delivered. ClickPost solves the aggregation and intelligence layer, but nothing connects it cleanly into ERPNext's order-to-cash flow.
ECOSIRE builds that connection as a proper Frappe app — a dedicated clickpost_connector module with its own DocTypes, not a pile of custom fields bolted onto stock forms. We add a ClickPost Settings single DocType holding your API credentials (stored encrypted via Frappe's password fieldtype), environment toggle, and default account mappings. Courier allocation is driven by a Courier Allocation Rule DocType — priority-ordered rules matching on pincode/zone, weight, payment mode (COD vs prepaid), SLA, and serviceability, resolved server-side so the cheapest serviceable carrier wins automatically. Outbound calls to ClickPost's API run through whitelisted server methods and Frappe's enqueue background jobs so the UI never blocks on a carrier timeout, with ret/backoff on transient failures.
On the ERPNext side, hooks.py doc events fire the integration at the right moments: on Delivery Note submit we register the shipment, request an AWB, and pull back a Shipment Package record with the label PDF and manifest attached to the document. A scheduled event (scheduler_events) polls ClickPost's tracking endpoint on a cadence you choose, writing normalized status transitions into a Shipment Tracking Event child table and surfacing the predicted ETA on the Sales Order and Delivery Note. When ClickPost reports an NDR (non-delivery report) or NPR (non-pickup report), a webhook received by a whitelisted endpoint opens an NDR Resolution DocType — a workflow with states like Open, Reattempt Requested, Address Updated, RTO Initiated, and Closed — assigned to your ops role profile so failed deliveries become a tracked queue instead of lost email. Client scripts add action buttons (Generate Label, Reprint Manifest, Track Now, Raise Reattempt) directly on the ERPNext forms your team already uses.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your ClickPost account setup, carrier mix, allocation logic, and which ERPNext documents drive the flow. We then build against your Frappe/ERPNext v15 or v16 instance, deliver on a staging site for UAT, and only promote to production once you sign off — with a rollback plan and the full git repository handed to you. Typical delivery is 2–4 weeks from confirmed scope, followed by a post-go-live support window.
Owns dispatch across multiple couriers and needs allocation, labeling, and NDR handling to happen inside ERPNext instead of carrier portals and spreadsheets. Judged on RTO rate and on-time delivery.
Runs ERPNext as the system of record and wants logistics intelligence to cut shipping cost and reduce failed deliveries without adding a separate shipping SaaS the team has to re-key orders into.
Maintains the Frappe instance and wants a clean, upgrade-safe app — proper DocTypes, hooks, and background jobs — with the git repo handed over so they can extend and support it internally.
Fields WISMO and failed-delivery queries and needs live tracking, ETA, and a structured NDR resolution queue surfaced on the order so responses are accurate and reattempts are actioned fast.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Courier allocation | Rule-based auto-selection via `Courier Allocation Rule` DocType (zone, weight, COD, SLA, cost) | Possible, but you design and maintain the rule engine yourself | Often fixed or single-carrier; limited rule logic | Manual Shipping Rule records; no smart allocation |
| Multi-carrier tracking | Scheduled poll writes normalized status transitions + ETA onto the order | Build and maintain polling and normalization yourself | Basic tracking, often per-carrier and not normalized | Manual tracking-number field; no live status |
| NDR / NPR resolution | Dedicated workflow DocType with states and ops role assignment | No standard pattern; fully bespoke build | Rarely handled inside ERPNext | None — worked over email/spreadsheets |
| Labels & manifest | Unified label PDF + cross-carrier manifest from form buttons | Integrate each carrier's label API by hand | Varies; often carrier-specific formats | No integrated label/manifest generation |
| ERPNext fit | Proper Frappe app: DocTypes, hooks, scheduler, whitelisted methods | Depends entirely on your team's discipline | Generic app; may not match your document flow | Core shipping only, no ClickPost layer |
| Reliability under carrier timeouts | Background jobs via `frappe.enqueue` with retry/backoff; UI never blocks | You must design the async and retry handling | Often synchronous; UI can hang on carrier lag | Not applicable — no carrier calls |
| Ownership & extensibility | Full git repo handover; extend it in-house | You own it, but also own all the maintenance | Closed source; locked to vendor roadmap | Core-only; no logistics-intelligence layer |
| Support model | Scoping call, UAT, training, and a post-go-live support window | Whatever your internal team can staff | Generic ticket support, not instance-specific | Community/self-support only |
No. This is build-to-order. ECOSIRE builds the ClickPost connector against your specific ERPNext instance, carrier mix, and allocation logic, then installs and supports it. It is not an existing off-the-shelf marketplace download, so nothing ships until we confirm scope with you first.
Typical delivery is 2–4 weeks from confirmed scope. The exact timeline depends on the number of couriers, the complexity of your allocation rules, and how many ERPNext documents drive the flow. We agree the scope and timeline on the initial scoping call before any build starts.
We build for Frappe/ERPNext v15 and v16. We target your running version so the app installs cleanly, and we keep to standard Frappe app structure (DocTypes, `hooks.py`, scheduler events, whitelisted methods) to stay upgrade-safe.
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full git repository, your own team can maintain and extend the app. Beyond the included window, ECOSIRE offers ongoing support and enhancement work as a separate agreement.
Yes. ClickPost is a separate logistics-intelligence platform with its own contract and carrier integrations. This connector wires your existing ClickPost account into ERPNext — we configure the API credentials, account mappings, and webhooks during installation.
No. We deliver a self-contained `clickpost_connector` app with its own DocTypes rather than editing core files, and we validate everything on a staging site during UAT with a rollback plan. Production promotion only happens after you sign off.
Yes. Core actions are exposed as whitelisted methods over the Frappe REST API, so an external OMS, marketplace integration, or channel manager can request allocation, fetch labels, or query tracking programmatically. We scope the exact endpoints you need during discovery.

A build-to-order ERPNext app that lets 3PL operators bill each client for storage, handling, and value-added services with strict multi-owner inventory segregation and automated periodic invoicing. ECOSIRE builds, installs, and supports it for your warehouse.

A build-to-order ERPNext app that turns demand signals, supplier lead times and MOQs into an optimized, simulate-before-you-commit purchase order plan. ECOSIRE scopes, builds, installs and supports it on your bench.

A bin-level warehouse management layer for ERPNext that adds directed putaway, wave and zone picking, and FEFO/FIFO enforcement. ECOSIRE builds it to your operation's rules, installs it on your Frappe bench, and supports it after go-live.

A build-to-order Frappe app that scores every ERPNext order against your live carrier mix and recommends the optimal carrier and service by cost, transit time, lane reliability, and RTO risk. ECOSIRE designs, builds, installs, and supports it for your specific carriers and rules.
A build-to-order Frappe app that wires ClickPost's multi-carrier engine into ERPNext, adding smart courier allocation, unified labels and manifests, real-time tracking with ETA prediction, and an NDR/NPR resolution workflow. ECOSIRE scopes, builds, installs, and supports it for your instance.