Order Export to Cirro¶
Overview¶
When a customer places an order on popsockets.com, it eventually needs to get to Cirro (our 3PL in China) for fulfillment. This document describes the flow from OMS to Cirro.
How It Works¶
- OMS receives the order from SFCC or Discopify
- OMS releases the order after validation and inventory check
- Camel picks up the order from OMS via API polling
- Camel transforms the payload into Cirro's expected format
- Camel publishes to Azure Service Bus for reliable delivery
- Service Bus delivers to Cirro's endpoint
- Cirro acknowledges receipt and begins fulfillment
Sequence Diagram¶
sequenceDiagram
participant SFCC as SFCC / Discopify
participant OMS
participant Camel
participant ASB as Azure Service Bus
participant Cirro
SFCC->>OMS: New order placed
OMS->>OMS: Validate & check inventory
OMS->>Camel: Order released (API poll)
Camel->>Camel: Transform to Cirro format
Camel->>ASB: Publish order message
ASB->>Cirro: Deliver order payload
Cirro-->>ASB: Acknowledge receipt
ASB-->>Camel: Delivery confirmed
Note over Cirro: Fulfillment begins
Cirro->>ASB: Shipment confirmation
ASB->>Camel: Shipping update
Camel->>OMS: Update order status
Common Failure Modes¶
| Failure | What Happens | How to Fix |
|---|---|---|
| Invalid shipping method | Cirro rejects the order | Check the shipping method mapping in Camel |
| Cirro API timeout | Message stays in Service Bus | Usually resolves on retry; check Cirro status if persistent |
| Duplicate order | Cirro returns conflict error | Service Bus dedup should prevent this; check dedup config |
| Missing required field | Cirro returns 400 | Check OMS → Camel transformation for null handling |
Related Systems¶
- OMS — Order management, releases orders for fulfillment
- Camel — Integration layer, transforms and routes messages
- Azure Service Bus — Message broker for reliable delivery
- Cirro — 3PL, handles physical fulfillment in China