Skip to content

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

  1. OMS receives the order from SFCC or Discopify
  2. OMS releases the order after validation and inventory check
  3. Camel picks up the order from OMS via API polling
  4. Camel transforms the payload into Cirro's expected format
  5. Camel publishes to Azure Service Bus for reliable delivery
  6. Service Bus delivers to Cirro's endpoint
  7. 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
  • 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