Shipments
The core of your courier operation — create, track, and manage every package.
What This Module Does
The Shipments module manages the full lifecycle of every package your company handles — from the moment it is booked until it is delivered, returned, or cancelled. It provides a 4-step creation wizard, automatic tracking number assignment, real-time status tracking with a defined state machine, PDF label generation with barcodes and QR codes, financial summaries, proof of delivery capture, customs declarations, and a complete activity log for every shipment.
This is the operational heart of Deprixa Plus. Every other module (Dispatch, Invoicing, Reports, Returns) connects to shipment records.
Who Uses It
| Role | Access Level |
|---|---|
| Admin | Full access — create, edit, delete, change status, bulk actions, export |
| Employee | Full access — create, edit, change status, bulk actions |
| Driver | View only — sees assigned shipments, can update status on their deliveries |
| Customer | View own — sees only shipments where they are the sender or receiver |
Where to Find It
Navigate to Main → Shipments in the left sidebar menu. You can also access the shipment creation wizard from the + New Shipment button in the top navigation bar, available from any page in the application.
Screen Walkthrough
Shipments List Page
The main view shows a paginated, sortable, filterable table of all shipments. Key columns include tracking number, sender, receiver, status (color-coded badge), service type, weight, creation date, and action buttons.
Above the table, a filter bar lets you narrow results by status, service type, date range, client, assigned driver, and more. Active filters appear as dismissible badges. A search field supports partial tracking number and name lookups.
Shipment Detail Page
Click any tracking number to open the detail view. This page contains:
- Status timeline — visual progression through each status the shipment has passed through, with timestamps and user names
- Package details — weight, dimensions, content description, declared value, pieces count
- Financial summary — rate breakdown, payment status, linked invoice
- Attachments — uploaded photos, payment proof, or other documents
- Proof of delivery — signature capture, delivery photo, recipient name
- Customs declaration — HS codes, country of origin, commercial value (for international shipments)
- Return request link — initiate a return directly from the shipment detail
- Action buttons — Print Label, Download Invoice, Update Status, Edit, Delete
Step-by-Step: Creating a Shipment
Shipments are created through a 4-step wizard. Click + New Shipment to begin. The "Ship Now" button from the public rate calculator also lands on this wizard with pre-filled data.
-
1
Step 1: Sender and Receiver
Enter contact and address details for both the sender (origin) and receiver (destination).
Field Description Notes Name Full name of sender/receiver Required Company Business name Optional Phone Phone number with country code selector Required; country code auto-selects based on selected country Email Email address Used for tracking notifications Country Country selection Cascading: selecting a country loads its states State State or province Cascading: selecting a state loads its cities City City Cascading: populates after state selection Address Street address Google Places autocomplete enabled if configured Postal Code ZIP or postal code Optional depending on country Tip: Start typing a customer name in the search field to look up existing customers in the CRM. Selecting one auto-fills all address fields, saving time on repeat shipments. -
2
Step 2: Packages
Describe the physical package(s) being shipped. Multiple packages can be added to a single shipment.
Field Description Weight Package weight in the configured unit (kg or lb) Length Package length (L dimension) Width Package width (W dimension) Height Package height (H dimension) Declared Value Monetary value for insurance and customs Content Description What is inside the package (e.g., "Electronics", "Documents") Pieces Count Number of individual items in this package Click Add Another Package to add multiple packages to the same shipment. Each package gets its own weight and dimension entry.
-
3
Step 3: Service and Rate
The system auto-calculates shipping rates based on your configured Rate Cards and Zones. Available service options are displayed sorted by price.
The rate breakdown shows each component:
- Base charge
- Weight charge (per kg/lb over the base threshold)
- Fuel surcharge
- Insurance (based on declared value)
- Tax
- Handling fees
Select the desired service and rate option to proceed.
-
4
Step 4: Review and Create
A summary of all entered details: sender, receiver, package specs, selected service, and calculated rate. Review everything before confirming.
Field Description Payment Status Select: Unpaid, Pending, or Paid Payment Method Select: Manual, Stripe, or PayPal (if configured) Attachment Optional photo or payment proof file upload Click Create Shipment to finalize. The system assigns a tracking number, sets the status to "pending," and makes the label available for immediate printing.
Statuses and Workflow
Every shipment follows a defined state machine. Only valid transitions are allowed — the system enforces this in the UI and API.
| Status | Code | Description | Next Possible Statuses |
|---|---|---|---|
| Pending | pending |
Shipment just created, awaiting processing | Processed, Cancelled |
| Processed | processed |
Ready for pickup or dispatch | Picked Up, In Transit, Cancelled |
| Picked Up | picked_up |
Driver has collected the package from sender | In Transit |
| In Transit | in_transit |
Package is moving toward destination | Out for Delivery, Exception |
| Out for Delivery | out_for_delivery |
Driver is approaching the recipient for final delivery | Delivered, Exception |
| Delivered | delivered |
Successfully delivered to recipient (terminal state) | None (can trigger a return request) |
| Exception | exception |
A problem was encountered during delivery | In Transit, On Hold, Returned |
| On Hold | on_hold |
Temporarily paused — awaiting instructions, payment, or clearance | In Transit, Cancelled |
| Cancelled | cancelled |
Shipment cancelled before delivery (terminal state) | None |
| Returned | returned |
Package returned to sender (terminal state) | None |
Every Status Change Is Logged
Each status transition creates an immutable activity log entry with the timestamp, user, old status, new status, and any note. This provides a complete audit trail for every shipment.
Labels
PDF shipping labels can be generated from the Shipment Detail page or in bulk from the shipments list. Labels include:
- Company logo and contact information
- Tracking number as human-readable text and Code128 barcode
- QR code linking to the public tracking page
- Sender and receiver addresses
- Service type, weight, and piece count
- Special handling icons if applicable
Label Formats
| Format | Size | Use Case |
|---|---|---|
| 4x6 Thermal | 4 x 6 inches (102 x 152 mm) | Standard thermal label for Zebra, Dymo, and similar printers |
| A4 Full Page | 210 x 297 mm | One label per page, print on standard paper |
| 10x15 cm | 100 x 150 mm | European standard thermal label size |
Label Themes
Labels can be styled to match well-known carrier aesthetics. Available themes include FedEx, UPS, and DHL styles. Configure the default theme in Settings → Shipping Config → Label Theme.
Bulk Label Printing
Select multiple shipments in the list using checkboxes, then click Bulk Actions → Print Labels to generate a single PDF with all selected labels for batch printing.
Bulk Actions
Select multiple shipments using the checkboxes in the list view to access bulk operations:
| Action | Description |
|---|---|
| Archive | Move selected shipments to the archive for historical reference |
| Delete | Soft-delete selected shipments. The system checks for linked invoices and manifests before allowing deletion. |
| Export | Download selected shipments as CSV or Excel for reporting |
| Print Labels | Generate a batch PDF with labels for all selected shipments |
| Change Status | Set all selected shipments to a new status (only valid transitions allowed) |
Tips and Best Practices
- Use customer search: Always search for existing customers in Step 1 before entering new contact details. This keeps your CRM clean and avoids duplicate records.
- Multiple packages: If a customer is sending several boxes to the same recipient, add them all as packages within one shipment rather than creating separate shipments. This simplifies tracking and invoicing.
- Attach payment proof: For cash or manual payments, upload a photo or scan in Step 4. This creates an auditable record of payment received.
- Print labels immediately: Generate and print the label right after creation while the package is still at the counter. This avoids unlabeled packages accumulating in the warehouse.
- Use status notes: When updating shipment status, always add a descriptive note (especially for exceptions). These notes appear in the activity log and on the public tracking page.
- Leverage the "Ship Now" flow: Customers who calculate rates on the public calculator can click "Ship Now," which feeds their data directly into the creation wizard. This reduces manual data entry.
Troubleshooting
| Problem | Possible Cause | Solution |
|---|---|---|
| No rate options appear in Step 3 | No rate card covers the origin-destination pair, or rate cards are inactive | Go to Settings → Rates and verify that an active rate card exists for the selected route |
| Country/State/City dropdowns are empty | Geographic data has not been seeded or imported | Run the geographic data seeder or import countries/states/cities from Settings → Locations |
| Google Places autocomplete not working | Google Maps API key is missing or invalid | Configure a valid Google Maps API key in Settings → Integrations → Maps |
| Cannot delete a shipment | The shipment is linked to an active invoice or manifest | Cancel or void the linked invoice/manifest first, then retry deletion |
| Label barcode does not scan | Print quality is too low or label is smudged | Reprint the label at a higher DPI setting. For thermal printers, ensure the print head is clean. |
| Status change button shows no options | The shipment is in a terminal state (delivered, cancelled, returned) | Terminal states do not allow further transitions. For delivered shipments, use the Return Request flow instead. |