Back to Documentation
Order Lifecycle

Order Pipeline

Understand how every order flows through WarpWare — from ingestion to fulfillment — and what happens at each stage.

Status Flow

Ingested
Pending
Ready
Sent
Completed
Hold
branches from Pending (rules or manual)
Failed
branches from Sent (push error)

Orders are held during the Pending stage by rules or manual action. Orders fail at the Sent stage if Extensiv rejects them. Cancelled can occur before Sent.

Pending

The order has been ingested but has not yet been evaluated by the rules engine. This is the initial state for every order entering WarpWare — whether it arrives via API, Shopify webhook, EDI file, or email.

  • Rules engine evaluates conditions (SKU, channel, value, etc.)
  • Routing rules determine the destination connection
  • Processing rules apply transforms (carrier, service level, holds)
  • If no routing rule matches, the order stays pending for manual assignment

Ready

The order has passed all rules and has a valid routing destination. It is queued for dispatch to the assigned fulfillment connection (e.g., Extensiv, ShipStation, or a warehouse API).

  • All rule conditions have been satisfied
  • A routing destination is assigned
  • No active holds are blocking the order
  • The order is queued in the next dispatch batch

Sent

WarpWare has successfully transmitted the order to the destination system. The order is now awaiting fulfillment externally. Tracking information may arrive via webhook or polling.

  • The external system acknowledged receipt
  • WarpWare records the external order ID for reference
  • Polling or webhooks watch for tracking updates
  • If the destination rejects the order, it moves to Failed instead

Completed

The order has been fulfilled and tracking information has been received. If the order originated from a sales channel (Shopify, WooCommerce, etc.), WarpWare writes tracking back to the source.

  • Tracking number and carrier are recorded
  • Tracking is written back to the source channel automatically
  • The order is now part of historical analytics
  • No further processing occurs unless manually reopened

Hold & Release

Orders can be placed on hold at any point before they are sent to the destination. Holds can be applied automatically via rules or manually from the dashboard.

Automatic Holds (via Rules)

The rules engine can flag orders for hold based on any condition — order value thresholds, specific SKUs, new customers, international addresses, etc. The hold reason is recorded on the order for visibility.

Manual Holds

Any user can hold an order from the order detail view. A hold reason can be entered for the team. The order will not advance until explicitly released.

Releasing Holds

When a hold is released, the order re-enters the pipeline and is re-evaluated by the rules engine. If all conditions pass, it moves to Ready and is dispatched normally.

Tip: Use holds for high-value orders or pre-orders. Combine them with the pre-order release date feature to automatically release orders when inventory arrives.

Failed Orders & Retry

When an order fails to transmit to the destination system, WarpWare records the error and marks the order as Failed. Failed orders are never lost — they remain in the system for retry.

Automatic Retry

WarpWare retries failed orders automatically with exponential backoff. The retry count and last error are visible on the order.

Manual Retry

You can retry any failed order from the dashboard with one click. The order is re-queued and re-sent to the destination.

Error Messages

Every failure records a detailed error message — rate limits, validation errors, auth failures, and network timeouts are all captured.

Failure Alerts

Persistent failures trigger notifications so your team can investigate. Failures are also surfaced in the dashboard health panel.

Important: If an order fails more than 5 times, automatic retries stop and the order requires manual intervention. Check the error message and resolve the underlying issue before retrying.

Duplicate Detection

WarpWare automatically detects and prevents duplicate orders. Every order is checked against existing records using a combination of source identifiers.

External ID matching: Orders are deduplicated by their external_id (e.g., Shopify order number) within the same connection.
Connection-scoped: Dedup is scoped per connection, so order #1001 from Shopify and #1001 from WooCommerce are treated as separate orders.
Idempotent API ingestion: Partner API orders use an idempotency key. Sending the same key twice returns the original order instead of creating a duplicate.
Email/file ingestion: File-based and email-based orders are fingerprinted by content hash to prevent re-ingestion of the same file.

Note: If you need to re-import an order that was correctly deduplicated, you can clear the duplicate flag from the order detail view and re-ingest.

Timeline & Audit Trail

Every order in WarpWare maintains a complete timeline of events — from the moment it was ingested to the final tracking writeback. This audit trail is immutable and available on the order detail view.

Order ingested

Source, connection, and raw payload recorded

Rules evaluated

Which rules matched, what actions were taken

Route assigned

Destination connection and assignment reason

Order dispatched

Timestamp, external ID, and response status

Tracking received

Carrier, tracking number, and writeback status

Hold / release events

Who held it, why, and when it was released

Errors & retries

Each failure with error message and retry attempt

Want to see the pipeline in action?

Try the interactive demo or explore the Partner API to push orders programmatically.