ERP Core / Sales OMS
Sales OMS - Core Domain Concepts & Structural Topology
Channel and ingestion topology, order hierarchy tree, and fulfillment routing engine logic.
Core Domain Concepts & Structural Topology
The Sales / OMS domain unifies demand from many channels into a single commercial model, structures orders into a hierarchy of fulfillment commitments, and routes those commitments to the most appropriate supply nodes.
1. Channel & Ingestion Topology
All customer demand enters through inbound channels and is normalized by a unified ingestion pipeline:
Inbound Channels
├── E-Commerce Storefront
├── Mobile Application
├── B2B Portal / EDI
├── Manual Sales Desk
└── POS Sync
|
v
Unified OMS Ingestion Pipeline
├── Channel Adapter (normalize payload)
├── Pricing Engine (resolve tiers & discounts)
├── Availability Check (soft reservation / ATP)
├── Fraud & Validation Gate
└── Order Canonicalization
| Channel | Characteristics |
|---|---|
| E-Commerce Storefront | High-volume, consumer-facing, real-time stock checks, promotional pricing. |
| Mobile Application | Similar to storefront, with location-aware features and push notifications. |
| B2B Portal / EDI | Contract pricing, scheduled delivery, bulk quantities, negotiated terms. |
| Manual Sales Desk | Phone or counter orders entered by representatives, often for exceptions. |
| POS Sync | Retail point-of-sale transactions synchronized into the unified order ledger. |
Canonicalization Rules
- Every channel-specific order is translated into the same internal order structure.
- Channel origin is retained for reporting and routing but does not alter core order invariants.
- Duplicate ingestion is prevented through idempotent order keys per channel.
2. Order Hierarchy Tree
A sales order is decomposed into a tree of executable fulfillment instructions:
Master Sales Order
├── Header (customer, channel, currency, payment terms)
├── Fulfillment Batch / Split Shipment 1
│ ├── Sourcing Node: Warehouse A
│ ├── Line Item 1
│ ├── Line Item 2
│ └── Shipping Schedule
├── Fulfillment Batch / Split Shipment 2
│ ├── Sourcing Node: Store B
│ ├── Line Item 3
│ └── Shipping Schedule
└── Billing Schedule
| Level | Purpose |
|---|---|
| Master Sales Order | The commercial contract with the customer, including totals, terms, and statuses. |
| Fulfillment Batch | A logical grouping of lines to be sourced and shipped together from one node. |
| Line Item | A single product or service with quantity, price, discount, and tax attributes. |
| Shipping Schedule | Promised ship date, carrier service level, and delivery address for a batch. |
| Billing Schedule | Invoicing timing and payment method associated with the order. |
3. Fulfillment Routing Engine
The routing engine determines the optimal sourcing node for each fulfillment batch based on configurable policies:
| Policy | Description |
|---|---|
| Single-Node Fulfillment | Assign the entire order to one node that can satisfy all lines. |
| Proximity Fulfillment | Select the node closest to the delivery address to minimize transit time. |
| Stock Priority Fulfillment | Select the node with the highest ATP for the ordered items. |
| Cost-Optimized Fulfillment | Minimize total fulfillment cost considering shipping, handling, and node operating costs. |
| Service-Level Fulfillment | Prioritize nodes capable of meeting the promised delivery date. |
Routing Constraints
- A line can only be hard-allocated to a node with positive ATP.
- Splitting is avoided when possible to reduce shipping cost and customer friction.
- Customer-specific routing rules (e.g., always ship from a designated regional depot) override generic policies.
- Dropship lines bypass internal nodes and route directly from a supplier to the customer.