- WIP
bench export-fixtures --app cargo_management
TODO: WORK HEAVILY ON THE TRANSLATIONS bench generate-pot-file --app cargo_management bench update-po-files --app cargo_management --locale es
TODO: frappe/frappe#36846
Personalize Mobile View: frappe/frappe#36759
URGENT ADD TO API: frappe/frappe#36744
TODO: Migrate Fixtures to Hidden App → Private repo for business-critical data
Update readme con: logistic engine y SLAs
ERPNext Cargo Management is a fully-fledged ERPNext solution designed for freight forwarding companies.
Streamlines logistics processes, including parcel tracking, invoicing and warehouse management, providing a seamless, efficient and user-friendly experience.
Built on Frappe Framework v16 and ERPNext,
this solution is designed to meet the unique needs of businesses in the freight forwarding industry.
It leverages core functionalities from ERPNext, such as Accounting, Stock, HR, Assets, Payroll and more.
- Cargo Core: TODO: But will have the new engines :D
- Parcel Management: Manages the parcels, integrates tracking APIs and handles notifications.
- Warehouse Management: Handles the receipt of parcels in warehouses.
- Shipment Management: Manages shipments and receipts, also generates packing lists for each shipment.
- WIP Refactor Name: Selling Management: Customizes ERPNext modules for invoicing parcels and managing customer import orders.
- Purchase Management: TODO
- Support Management: Customizes ERPNext modules for customer support related to parcels and orders.
- Custom Views:
- Workspaces, Dashboard Views, Settings
- Reports: Provides insightful reports for better decision-making and business analysis.
- External APIs For Tracking Parcels:
- ERPNext Delivery Management – WORK on Progress
- Frappe Nextcloud – WORK on Progress
Last checked: 8 May 2026
| Carrier | EasyPost | 17Track |
|---|---|---|
| Amazon | ❌️ | ❌️ |
| USPS | ✅️ | ✅️ |
| UPS | ✅️ | ✅️ |
| DHL | ✅️ | ✅️ |
| FedEx | ❗️With Account | ✅️ |
| OnTrac | ❗️With Account | ✅️ |
| Cainiao | ❌️ Deprecated | ✅️ |
| SpeedX | ❌️ | ✅️ |
| SF Express | ❗️With Account | ✅️ |
| Yanwen | ✅️ | |
| YunExpress | ❌️ Deprecated | ✅️ |
| SunYou | ❌️ | ✅️ |
| Veho | ❗️With Account | ✅️ |
| GOFO | Pending | ✅️ |
- Get Your EasyPost API Key
- Set the API Key:
$ bench set-config easypost_api_key API_KEY - Create and set your Webhook Secret(hmac):
$ bench set-config easypost_webhook_secret SECRET - Set up your Webhook Secret and the Webhook URL on EasyPost:
{HOST}/api/method/cargo_management.parcel_management.doctype.parcel.api.easypost_api.easypost_webhook
- Get Your 17Track Security Key
- Set the API Key:
$ bench set-config 17track_api_key API_KEY - Set up the Webhook URL on 17Track:
{HOST}/api/method/cargo_management.parcel_management.doctype.parcel.api.17track_api.17track_webhook
- Parcels are created and can be related to a specific customer
- Content of the parcel can be added and its related Item for invoice Purposes.
- It can be tracked by the API or not.
- As the carrier updates the details, the Tracking API sends it via a webhook, we gather and update.
- When the parcel is marked as delivered at the warehouse by the carrier, we stop the Tracking API webhook updates
- A Warehouse Receipt doc its created to link the received parcel:
- The Warehouse can fill parcel-related fields: Content, Dimensions, Weight, Receipt Date
- Cargo Shipment is created to export parcels in bulk:
- Warehouse Receipts are added to them.
- Related information: Transportation Type, Departure date, Est Arrival Date, Dimensions, Gross Weight
- Cargo Shipment Receipt is created to receive the Cargo Shipment:
- A Receipt loads the data of all related Parcels in the Cargo Shipment through the Warehouse Receipts
- All Parcels are sorted by Customer, and it's the moment to set all related data to Create Invoices.
- When all the Parcels have been processed, the Sales Invoices can be created.
- A Sales invoice will be created for the customer, it will contain all the related Parcels.
- Selling:
- Quotation
- Sales Invoices are used to invoice for Logistic services and items related to Business
- Sales Orders are the only choice to make purchases online on behalf of the customer:
- WORKING (We must link the sales order with the parcel and content, later we must invoice the order and service.)
- Parcel can be linked in Issue:
- WORKING (on the change of status)
- The customizations allow us to:
- Invoice a Customer for the Logistic Services and Products in Stock offered.
- Link the Sales Invoice with a Parcel and update its statuses.
- Cargo Packing List: is a "Packing List" for the Cargo Shipment:
- Gets all the content declared by the Customer and the content declared by the Warehouse of the parcels in a Cargo Shipment
- It allows modifying the content and amount declared only for Print.
- WORKING
- WORKING
- Packing Slip for customs:
- Fetching data of prices and quotations from parcels to Cargo Shipment Receipt: WORKING
- FUTURE:
- Setting data of prices in CSR to Sales Invoice
- Working in the Sales Orders!
- Migrate SQL to QueryBuilder? using Pypika?
This app uses pre-commit for code formatting and linting. Please install pre-commit and enable it for this repository:
cd apps/cargo_management
pre-commit installPre-commit is configured to use the following tools for checking and formatting your code:
- ruff
- eslint
- prettier
- pyupgrade
AGPLv3