Shipments
Public Preview: Asset Lifecycle is in public preview. The functionality and API surface may evolve in future releases.
A shipment records the physical delivery of equipment against a purchase order. The Shipments area of the plugin tracks who is delivering each consignment, how much they are bringing, when it arrived, and how the items received reconcile against what was ordered.
Couriers and Accounts
A courier is any organisation that delivers equipment - a freight carrier, a parcel service, or even a vendor's own delivery van. Each courier has a name, an optional internal code, an optional tracking URL, and supports NetBox contact assignment.
The tracking URL is the most useful courier-level field. When set, every tracking number recorded on a shipment dispatched by that courier is rendered as a clickable link, with the tracking number substituted into the URL. This turns a raw shipment record into a one-click jump to the courier's tracking site.
A courier account represents a specific account number you hold with a courier - useful when shipping costs are billed back to different cost centres or when separate accounts are used for inbound and outbound freight. Accounts are optional on a shipment but must belong to the shipment's courier when specified.
Shipments
A shipment records a single physical delivery against a purchase order. Each shipment captures:
- The purchase order being delivered.
- The courier delivering the consignment, plus an optional courier account.
- A tracking number, unique per courier.
- An optional destination site and location within that site.
- Optional date shipped, date expected, and date received values.
- A status describing where the shipment currently is in its journey.
A purchase order may have any number of shipments. This is the normal case for orders that arrive in multiple consignments, for replacements after damaged goods, or for orders that are dispatched in waves as items become available from the vendor.
Shipment Lifecycle
A shipment moves through one of these statuses:
- Prepared - the shipment is staged but has not yet left the vendor.
- Shipped - the consignment is in transit.
- Received - the consignment has arrived at its destination.
- Cancelled - the shipment was abandoned before being dispatched.
- Returned - the consignment was sent back to the vendor after delivery.
- Lost - the consignment was lost in transit and is not expected to arrive.
Which transitions between these statuses are permitted is governed by status transition rules.
Shipment Line Items
A shipment line item records that a specific BOM line item is included in a shipment, with:
- A quantity shipped - what the courier is carrying.
- An optional quantity received - what was actually unpacked at the destination.
Distinguishing shipped from received is important: a partial shortfall, a damaged unit, or a miscounted carton can all be recorded by setting the received quantity to less than the shipped quantity, leaving an audit trail of the discrepancy.
Receiving Equipment
Two object actions streamline the receiving workflow:
- Add to Shipment - from a purchase order's PO line items list, select the lines being delivered and add them to a shipment in bulk, specifying the shipped quantity for each.
- Mark Received - from a shipment's line items list, select the lines that have arrived and set the received quantity for each in bulk.
Together these turn a typical receiving session - "these ten cartons just landed at the loading dock; here's what's in each one" - into a few selections rather than a row-by-row edit.
Closing the Loop Back to Designs
Each individual planned object on the originating BOM is recorded as a BOM object. The data model carries a link from each BOM object to the shipment that delivered the equipment for it, so that - once populated - you can trace each planned device, rack, module, or cable in NetBox back to the consignment it arrived on. The same record can alternately reference a spare item, capturing the case where a requirement was fulfilled from existing inventory rather than from a new purchase.
The Install Workflow
When a planned rack, device, module, or cable in NetBox is covered by a BOM object that has not yet been installed, the plugin adds an Install button to that object's detail page. The button offers two ways to fulfil the requirement:
- Install from shipment - pick a shipment in received status (the form lists shipments associated with the same BOM), or
- Install from spares pool - draw from existing inventory; see Spares Management for details.
On submit, the underlying NetBox object is updated (status, serial number, asset tag, tags, and other attributes can be edited inline) and the BOM object is linked to the chosen shipment or spare item - recording for posterity which delivery or spare fulfilled which requirement.
The Install button appears only on planned objects, and only while the BOM object is unfulfilled. Once installed, the button disappears.