Skip to main content
Packlink / LetMeShip Connector for ERPNext — A build-to-order Frappe app that wires Packlink PRO and LetMeShip rate-compariso — 1/1Illustrative preview

A build-to-order Frappe app that wires Packlink PRO and LetMeShip rate-comparison aggregators into your ERPNext

Delivery Note and Shipment workflow, so you pick the cheapest compliant EU carrier, print labels and customs paperwork, and sync tracking without leaving ERPNext.

ECOSIRE scopes, builds, installs, and supports it.

What is Packlink / LetMeShip Connector for ERPNext?

A build-to-order Frappe app that wires Packlink PRO and LetMeShip rate-comparison aggregators into your ERPNext Delivery Note and Shipment workflow, so you pick the cheapest compliant EU carrier, print labels and customs paperwork, and sync tracking without leaving ERPNext. ECOSIRE scopes, builds, installs, and supports it. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Packlink PRO and LetMeShip REST API authentication managed in a single encrypted `Packlink LetMeShip Settings` DocType (API keys stored via Frappe's `Password` fieldtype, never in plain fields)
Live multi-carrier EU rate comparison written into a `Carrier Quote` child table on the `Delivery Note`/`Shipment`, ranked by price, service level, and transit time
Whitelisted server methods (`@frappe.whitelist()`) for `compare_rates` and `book_shipment`, callable from the desk UI and the Frappe REST API for headless integrations
`client script` adding 'Compare Rates' and 'Book Shipment' buttons directly on the `Delivery Note` form so nobody leaves ERPNext
Shipping-label retrieval and attachment to the source document as printable `File` records (PDF/ZPL as returned by the aggregator)
Customs document generation (CN22/CN23 and commercial-invoice data) assembled from `Sales Invoice` line items and item-level HS codes for cross-border EU/UK parcels
Drop-off / parcel-shop point selection surfaced on supported destinations, stored against the shipment for pickers and customer-facing confirmation
Automatic tracking synchronization via a Frappe `scheduler_event` that polls aggregator tracking endpoints and writes status transitions back onto the shipment
Every outbound API call and booking recorded in a `Shipment Sync Log` DocType — retryable, filterable, and auditable, with no silent failures
`hooks.py` `doc_events` on `Delivery Note`/`Shipment` submit to validate weights, dimensions, and destination completeness before a rate call is allowed
Per-account defaults for parcel dimensions, weight rounding, and preferred carriers, configurable without code changes
Role-based access via a dedicated role profile so only authorized users can book paid shipments or edit API credentials
Idempotent booking guard that prevents double-purchasing a label if a submit or button-click is repeated
Built and tested against Frappe/ERPNext v15 and v16, packaged as a standard installable Frappe app with a git repository

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

  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

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

EU distributors and e-commerce SMBs running ERPNext usually manage European parcel shipping in a browser tab that has nothing to do with their ERP. A picker confirms a Delivery Note, then someone re-keys the address, weight, and parcel dimensions into the Packlink PRO or LetMeShip portal, eyeballs a dozen carrier quotes, buys a label, and pastes a tracking number back into ERPNext by hand. ERPNext core ships a Shipment DocType and a couple of carrier integrations, but it has no native concept of a rate-comparison aggregator, no live multi-carrier quote table on the delivery, and no automatic customs-document generation for cross-border EU/UK parcels. That gap is exactly where margin leaks and mis-ships happen.

We build a proper Frappe app (erpnext_packlink_letmeship) with its own module, DocTypes, and hooks.py wiring — not a pile of loose server scripts. On a submitted Delivery Note or Shipment, a whitelisted method (frappe.whitelist()) calls the Packlink PRO and/or LetMeShip REST APIs, normalizes each aggregator's response, and writes the results into a Carrier Quote child table so your team sees ranked, comparable rates — carrier, service level, transit time, drop-off vs pickup, and total price — side by side inside ERPNext. Credentials and per-account defaults live in a single Packlink LetMeShip Settings DocType (API keys stored via Frappe's encrypted Password fieldtype), and every outbound call is logged to a Shipment Sync Log DocType so failed bookings and API errors are auditable, retryable, and never silent.

Once a quote is selected, the app books the shipment through the chosen aggregator, pulls back the shipping label and any required customs documents (CN22/CN23 commercial-invoice data assembled from the ERPNext Sales Invoice/item HS codes), and attaches them to the source document as printable File records. A client script on the Delivery Note form exposes a "Compare Rates" and "Book Shipment" button so the flow stays inside the desk UI your team already uses. Where the destination country supports it, drop-off point selection is surfaced so the customer or picker can choose a parcel-shop instead of a home delivery. A scheduler_event (hourly/daily, tuned to your volume) polls the aggregator tracking endpoints and writes status transitions back onto the shipment, so "in transit / out for delivery / delivered" is visible in ERPNext without anyone logging into a carrier site.

Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm which aggregators you use (Packlink PRO, LetMeShip, or both), your carrier mix, origin/destination countries, customs requirements, and your ERPNext/Frappe version (v15 or v16). We then build against a staging bench, run UAT with your real addresses and parcel profiles, and hand over installable source, a git repository, and documentation. Typical delivery is one working week from confirmed scope, followed by a post-go-live support window. You own the code; ECOSIRE installs it, trains your team, and supports it.

What you get

  • Installable source code for your version of the `erpnext_packlink_letmeship` Frappe app, packaged for `bench get-app`/`bench install-app`
  • Installation and configuration on your bench, including `Packlink LetMeShip Settings`, carrier defaults, and role-profile setup
  • Technical documentation covering DocType schema, `hooks.py` events, whitelisted methods, scheduler events, and REST endpoints
  • User guide plus a live training session for your shipping and operations team
  • UAT on a staging bench using your real addresses and parcel profiles, with a documented rollback plan
  • Git repository handover with full commit history so your team (or any Frappe developer) can maintain it
  • Post-go-live support window for bug fixes and configuration adjustments after production launch
  • Aggregator credential setup guidance for Packlink PRO and/or LetMeShip accounts and any required carrier onboarding

Who this is for

EU E-commerce Operations Lead

Runs daily fulfillment for a multi-country webshop on ERPNext and wants the cheapest compliant carrier chosen automatically on every `Delivery Note`, without re-keying addresses into Packlink or LetMeShip portals.

SMB Logistics / Warehouse Manager

Ships mixed parcel volumes across the EU and UK, needs correct customs paperwork (CN22/CN23) generated from ERPNext data, and wants tracking visible to staff without logging into carrier sites.

Finance / Cost Controller

Cares about shipping margin and wants every rate comparison, booked cost, and carrier choice recorded in ERPNext so freight spend is auditable against the `Sales Invoice`.

ERPNext System Administrator / Frappe Developer

Owns the bench and needs a clean, standard Frappe app with documented DocTypes, `hooks.py` events, and a git repo they can maintain across v15/v16 upgrades — not a black-box integration.

How Packlink / LetMeShip Connector for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
EU multi-carrier rate comparisonPacklink PRO + LetMeShip quotes ranked in one `Carrier Quote` table on the deliveryPossible, but you design and maintain the normalization logic yourselfOften single-aggregator or single-carrier; comparison across both is rareNo concept of a rate aggregator; manual portal lookup
Customs docs (CN22/CN23)Generated from `Sales Invoice` items and HS codes, attached to the source docBuildable if you spec it; commonly descoped to save budgetVaries; frequently limited to a subset of countriesNot generated from ERPNext data
Fit to your version & carriersScoped to your v15/v16 bench, aggregators, and country mixFully bespoke but you carry all requirements riskGeneric; you adapt your process to the appN/A
Tracking sync into ERPNextScheduler polls aggregator endpoints and writes status onto the shipmentRequires you to build and maintain the scheduler jobSometimes present, sometimes webhook-onlyNo automatic aggregator tracking
Source code & ownershipInstallable source + full git repo handed over to youYou own it, but also own the entire build effortUsually closed-source or subscription-lockedN/A
Auditability`Shipment Sync Log` DocType records every call and booking, retryableOnly if you build logging inLimited visibility into failuresNone
Support & maintenancePost-go-live support window plus optional ongoing updates from ECOSIREYou or your contractor maintain itVendor SLA varies; roadmap not yours to controlCommunity-only
Time to valueone working week from confirmed scope, UAT on staging firstTypically longer; full discovery-to-build cycleFast to install, but process-fit gaps surface laterImmediate but manual and error-prone

Frequently Asked Questions about Packlink / LetMeShip Connector

Is this an existing app I can download from the Frappe Cloud Marketplace?

No. This is a build-to-order Frappe app that ECOSIRE scopes, builds, installs, and supports for your specific Packlink PRO/LetMeShip accounts, carrier mix, and ERPNext version. You receive installable source code and the git repository — it is not a one-click marketplace download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the initial scoping call we agree on aggregators, carriers, countries, and customs requirements, then build against a staging bench and run UAT before go-live. Timeline depends on how many aggregators and edge cases (customs, drop-off points, multi-warehouse) are in scope.

Do you support both Packlink PRO and LetMeShip, or just one?

Both. During scoping you tell us which aggregators you actually use. The app authenticates to each via its REST API and normalizes their responses into one comparable `Carrier Quote` table, so you can run one, the other, or both side by side.

Which ERPNext and Frappe versions are supported?

We build and test against Frappe/ERPNext v15 and v16. Confirm your exact version on the scoping call so we target your bench correctly and account for any DocType or API differences between releases.

How do updates and support work after go-live?

Every engagement includes a post-go-live support window for bug fixes and configuration adjustments. Because you own the source and git repository, your team or any Frappe developer can extend it. ECOSIRE also offers ongoing support and updates — including adapting to aggregator API changes or new carriers — as a separate arrangement.

Where are the aggregator API keys stored, and is it secure?

Credentials live in a single `Packlink LetMeShip Settings` DocType using Frappe's encrypted `Password` fieldtype, not plain text fields. Access is gated by a dedicated role profile, so only authorized users can view credentials or book paid shipments, and every API call is logged for audit.

Can the rate comparison and booking be triggered from outside the desk UI?

Yes. The core actions are exposed as whitelisted methods (`@frappe.whitelist()`) callable through the Frappe REST API, so a webshop, warehouse scanner app, or automation can request quotes and book shipments headlessly — in addition to the on-form 'Compare Rates' and 'Book Shipment' buttons.

Request a quote

Packlink / LetMeShip Connector

A build-to-order Frappe app that wires Packlink PRO and LetMeShip rate-comparison aggregators into your ERPNext Delivery Note and Shipment workflow, so you pick the cheapest compliant EU carrier, print labels and customs paperwork, and sync tracking without leaving ERPNext. ECOSIRE scopes, builds, installs, and supports it.

  • Packlink PRO and LetMeShip REST API authentication managed in a single encrypted `Packlink LetMeShip Settings` DocType (API keys stored via Frappe's `Password` fieldtype, never in plain fields)
  • Live multi-carrier EU rate comparison written into a `Carrier Quote` child table on the `Delivery Note`/`Shipment`, ranked by price, service level, and transit time
  • Whitelisted server methods (`@frappe.whitelist()`) for `compare_rates` and `book_shipment`, callable from the desk UI and the Frappe REST API for headless integrations
  • `client script` adding 'Compare Rates' and 'Book Shipment' buttons directly on the `Delivery Note` form so nobody leaves ERPNext

Request a Quotation

Tell us about your Packlink / LetMeShip 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.