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:
- Order placed on SFCC (or a marketplace like Amazon).
- OMS receives it and picks a fulfillment path.
- For warehouse fulfillment, the integration layer (
cm-order-prc/cm-fulfill-prc) sends the order to Cirro to be picked & packed. - Cirro ships it and fires a confirmation webhook back to
cm-ext-service-exp. - That confirmation fans out: a ship confirmation to OMS, an 856 ASN to the retailer (via SPS), and a 945 to update NAV.
- 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.