Skip to content
Build 9234610

4. The Business Domain

You can read every route in the repo and still be lost without the vocabulary. Here's the business these services serve.

The players (recap)

  • SFCC — the DTC storefront (consumer orders).
  • OMS — Order Management System; decides how each order gets fulfilled.
  • NAV — the ERP (Dynamics NAV): inventory, financials, invoicing.
  • Cirro — US warehouse / 3PL that picks, packs, and ships.
  • SPS Commerce — the broker that carries our EDI documents to retailers.
  • Arena — product & bill-of-materials (BOM) master data (PLM).
  • Jackyun — China fulfillment (the KH warehouse).

EDI in plain English

EDI (Electronic Data Interchange) is how we exchange standardized business documents with big retail partners (Target, Amazon, Best Buy). Each document type is a numbered X12 transaction set. The ones that matter most here:

# Name Plain English Direction
850 Purchase Order A retailer orders product from us Inbound
940 Warehouse Shipping Order We tell the warehouse to ship Outbound → Cirro
945 Warehouse Shipping Advice The warehouse tells us what actually shipped Inbound
856 Advance Ship Notice (ASN) We tell the retailer what's on the way Outbound → retailer
810 Invoice We bill the retailer Outbound

EDI files move over SFTP. cm-edi-prc polls the SFTP folders, parses inbound docs, and generates outbound ones. SPS Commerce sits between us and the retailers as the EDI broker.

The full EDI pipeline is documented

For the end-to-end B2B flow — how an 850 becomes an order and comes back out as an 856/945, per vendor — see EDI B2B Pipeline and the per-vendor Cirro B2B pages.

Life of an order (simplified)

A consumer order fulfilled from our US warehouse:

  1. Order placed on SFCC (or a marketplace like Amazon).
  2. OMS receives it and picks a fulfillment path.
  3. For warehouse fulfillment, the integration layer (cm-order-prc / cm-fulfill-prc) sends the order to Cirro to be picked & packed.
  4. Cirro ships it and fires a confirmation webhook back to cm-ext-service-exp.
  5. That confirmation fans out: a ship confirmation to OMS, an 856 ASN to the retailer (via SPS), and a 945 to update NAV.
  6. NAV records the shipment; invoicing (810) follows.

A retail (B2B) order flips the front end: it starts as an inbound 850 that cm-edi-prc turns into an order, then follows the same warehouse → ship → 856/945 tail.

See the real sequence diagrams

The DTC path is drawn step-by-step in B2C Order Flow; the NAV release leg is in NAV Order Release.

Fulfillment paths

Not every order ships the same way:

  • Cirro — US warehouse; two modes: prepack (pre-boxed) and B2B (bulk).
  • Jackyun — China / KH warehouse for APAC.
  • Amazon Direct Fulfillment — Amazon ships on our behalf.

Which path an order takes is decided upstream (in OMS); the integration layer executes it.