Shipments
A shipment is a package that left the building: a shipment id, tracking number, carrier, weight and cost. Processing a shipment is what deducts stock, marks the order Shipped and tells the store.
Where shipments come from
- The pack station writes one when a label is bought (not for test labels). A second label on the same shipment id adds its tracking number, weight and charge to the same shipment.
- Add Shipment on this page, for packages labeled in another program: scan or type the shipment id and tracking, pick carrier and service, weight and charge.
- Other systems can post shipments to Lodsted's API.
The shipment id is {order id} or {order id}-{number}, for example 12891-1. It is the
barcode on the packing slip. Lodsted uses it to find the order and, for a split order, which shipment this is.
What processing does
Processing runs during every sync (skipping shipments created in the last 15 minutes, so a packer can still fix a mistake) and immediately when someone clicks Process Shipments. Each pending shipment goes through two phases.
- Inside the database. Find the order and its lines (all of them, or the shipment's part of a split order). Deduct the units from the bins they were allocated in, oldest cost layer first, writing a Sale transaction per layer. Mark the lines shipped, stamp the order with ship date, tracking and method, and when every shippable line has shipped set it to Shipped and drop the
printedtag. Check whether the wave is now complete. - Then the store. Create the fulfillment in Shopify with the tracking number(s), which triggers the customer's shipping email. If the payment was only authorized and the store's capture window allows, capture it.
The phases are separate on purpose: the box is gone, so stock must come off even if the store call fails. A failed store call is recorded on the shipment and retried; stock is never put back automatically.
Statuses
| Status | Meaning | What to do |
|---|---|---|
| Pending | Not processed yet. | Wait for the next sync or click Process Shipments. |
| Failed | Phase 1 stopped before stock was deducted (unknown order, unknown carrier service). | Read the note, fix the cause (edit the shipment, map the service), set Pending. |
| PushPending | Stock deducted; the store push has no result yet. | Normally resolves on the next cycle. |
| PushFailed | The store rejected the fulfillment. Re-pushed on each cycle. | Read the note; fix in Shopify (for example the order is already fulfilled or canceled there); it retries by itself. |
| PushTimeout | No answer from the store; the fulfillment may or may not exist. | Lodsted checks the store after an hour and confirms or re-queues. Nothing to do. |
| NotVerified | Lodsted could not find the fulfillment at the store after a timeout. | Check the order in Shopify. Re-push if it is not fulfilled; Dismiss if it is. |
| Confirmed | The store confirmed the fulfillment. | Done. |
| Skipped | Stock deducted; no store push was possible or needed (for example a Shopify Shipping label already created the fulfillment). | Nothing, unless the store shows unfulfilled: then Re-push. |
| Abandoned | The store rejected three attempts. | Fix the cause, then Re-push, or Dismiss. |
| Dismissed | Closed by a person. | Nothing. |
An Admin can change a status by hand from the edit window, where each option explains its use. Setting a shipment back to Pending asks for an extra confirmation because it will deduct stock again if it already did. Everyone can edit or delete a shipment that is still Pending or Failed; only an Admin can open a processed one.
The list
The default filter is Pending plus everything that needs attention. The Needs attention button sets exactly that: Failed, PushFailed, PushTimeout, NotVerified, Abandoned, Skipped. Search matches shipment id, tracking, carrier, service, status and error text.
| Column | Meaning |
|---|---|
| Shipment ID | Click-through to the order. |
| Tracking | Comma separated when several packages. |
| Carrier, Service | As recorded and the internal service it was mapped to. |
| Weight, Charge | Totals across packages. |
| Status | As above. A ! after it means a bin was short when stock was deducted (shortfall). |
| Ship Time, Created | When it shipped and when the record was made. |
| Actions | Edit and Delete while Pending or Failed; Re-push and Dismiss for statuses that allow them. |
Hover a row to read its notes: the failure text, verification results and the names of people who dismissed it.
Buttons
| Button | Does |
|---|---|
| Process Shipments | Runs processing now for every Pending shipment, with no 15-minute delay. |
| Retry Fulfillments | Admin. Re-pushes every shipment whose store push failed. |
| Resolve Carriers | Admin. Re-maps shipments whose service string could not be matched to a carrier service, after you have added the mapping. |
| Add Shipment | Manual entry, several rows at a time: Shipment ID, Tracking (a scanner works; USPS numbers are trimmed to the last 22 digits), Carrier (UPS, USPS, FedEx, Other), Service, Weight, Charge, Notes. |
| Re-push (row) | Admin. Puts the shipment back in the retry queue; the next cycle pushes it to the store again. |
| Dismiss (row) | Keeps the record, sets Dismissed, stops alerts about it. |
Manual shipments and stock
A shipment added by hand on this page deducts stock from unallocated units at the SKU's primary bin first, then other bins oldest first, and releases any wave reservation for those lines. That is different from a manual label at the pack station with no scanned shipment id, which produces postage only and never touches stock or the store.
Alerts
Failed and unverified pushes email the Shipping alert addresses; a shipment whose service could not be mapped sends a carrier-mapping alert; shortfalls at deduction time email the Inventory addresses with a table of SKU, location, shipped, available and short. Set the addresses under Settings › Alert Emails.