Status polling and despatch confirmations

Status polling and despatch confirmations

Once an order is at the warehouse, everything flows back through two mechanisms: the status poll and the despatch fetch it triggers.

Status polling

On schedule (or via Check Statuses anywhere it appears), the connector asks the 3PL for the current status of every sent order, translates it through the status map, timestamps the check and updates the 3PL Order and the sales-order tab. Three translated statuses have side effects:

  • Despatched - triggers the despatch fetch (next section).
  • Hold - surfaces on the dashboard's On Hold card with the 3PL's reason label (e.g. "Error - No Stock").
  • Cancelled - see Cancellation below.

Despatch confirmations - where stock moves

When the 3PL reports an order despatched, the connector fetches the despatch detail and reconciles it into Odoo:

  1. The delivery order's reserved lines are replaced with what the warehouse actually shipped: quantities per SKU, batch/lot numbers (created in Odoo on first sight, with expiry dates when reported), carrier and tracking number, tracking URL.
  2. The delivery is validated. When the shipped quantity differs from the order, two instance policies decide what happens (see Settings reference). Short-shipped: If the 3PL Ships Less Than Ordered either creates a backorder delivery for the remainder (the default) or cancels the remainder - nothing is silently dropped either way. Over-shipped: If the 3PL Ships More Than Ordered either rejects the despatch to the Sync Log for a person to review (the default; a manager can force it through) or delivers the ordered quantity and adjusts the reported surplus out of stock, noted on the order.
  3. The sales order tab and chatter get the tracking link; the 3PL Order flips to Despatched with the despatch timestamp.

Lot-tracked products despatched without batch data follow the Allow Un-batched Despatches setting (see Settings reference): hard failure by default, or ship from the un-batched pool under the UNBATCHED lot with a logged warning.

Despatch application is idempotent - polling the same despatched order twice never books stock twice.