Commercial Order Management (COM)
How commercial orders are captured, validated, and managed from CPQ through to fulfilment.
What Is Commercial Order Management?
Commercial Order Management (COM) is the entry point for all customer-facing order activity in a telco. It sits at the boundary between the customer experience world (CRM, CPQ, digital channels) and the technical fulfilment world (SOM, ROM). COM's job is to capture, validate, enrich, and manage the commercial lifecycle of a product order β ensuring that what the customer requested is feasible, properly priced, and ready for downstream fulfilment.
COM operates exclusively at the Product layer β it knows about Product Offerings, Product Specifications, and Product Instances, but it does not know about CFS, RFS, or network resources directly.
COM in the Architecture
COM order processing flow: from channel capture to SOM handoff
Sales Channels
Commercial Order Management (COM)
BSS β Product Layer
TMF622 POST
Product β CFS Mapping
TMF620
TMF641 POST
Service Order Management (SOM)
Receives decomposed service orders
TMF637 / TMF638
COM decomposes the product order using the Product Catalog, then hands off CFS-level service order items to SOM via TMF641
COM receives orders from multiple channels β online self-service portals, retail point-of-sale systems, call centre applications, partner portals, and B2B API integrations. Regardless of the channel, COM normalises these into a standard Product Order structure before processing.
COM Source-of-Record Responsibilities
| Entity | System of Record | System of Engagement | System of Reference | Notes |
|---|---|---|---|---|
| Product Order | COM | CRM / Channel Portal / CPQ | Product Catalog (TMF620) | COM creates and owns the product order throughout its lifecycle |
| Product Order Item | COM | CPQ (initial configuration) | Product Offering / Specification | Each item references a catalog offering and captures selected options |
| Order Pricing | COM (confirmed) | CPQ (quoted) | Product Offering Price (TMF620) | CPQ quotes the price; COM confirms it at order time |
| Product Instance | SLM / Product Inventory (TMF637) | COM (triggers creation) | β | COM triggers product instance creation but SLM (Product Inventory) is the SoR |
Order Capture from CPQ and Channels
The order capture process begins when a customer (or agent acting on behalf of a customer) completes the Configure-Price-Quote (CPQ) process and confirms their selection. CPQ hands off a fully configured, priced quote to COM, which converts it into a formal Product Order.
Order Capture Flow
Customer Selects Offering
Channel / StorefrontCustomer browses the product catalog and selects a Product Offering (e.g., "SuperFibre 200 Home"). The channel application queries TMF620 to display eligible offerings.
CPQ Configures & Prices
CPQCPQ validates the selected configuration (mandatory options, incompatibilities, address eligibility), resolves pricing (base price, discounts, promotions, taxes), and presents a quote to the customer.
Customer Confirms Order
Channel / CPQCustomer accepts the quote, agrees to terms and conditions, and authorises payment. CPQ submits the confirmed quote to COM as a Product Order creation request via TMF622.
COM Creates Product Order
COMCOM receives the TMF622 POST /productOrder request, assigns an order ID, sets initial state to "acknowledged", and begins validation. The Product Order now exists as a formal entity in the COM system.
COM Validates & Enriches
COMCOM performs business rule validation (credit check, fraud screening, duplicate order detection, address qualification), enriches the order with internal references, and confirms commercial feasibility.
COM Initiates Fulfilment
COM β SOMOnce validated, COM decomposes Product Order Items into Service Order Items using catalog mappings, and submits them to SOM via TMF641. COM state transitions to "inProgress".
Order Types in Detail
COM must handle several distinct order types, each with different processing rules, validation requirements, and downstream decomposition patterns. The order type is typically determined by the combination of order item actions within the product order.
A new provide order creates product instances that did not previously exist for this customer. All order items have action = add.
- Customer has no existing product of this type (or is adding a second instance)
- Requires full address qualification and serviceability check
- May require credit check if the customer is new
- Full decomposition into service and resource layers
- Highest complexity β most order fallout occurs on new provide orders
Commercial Order Lifecycle States
TMF622 defines a standard set of order states. The order-level state is derived from the aggregate state of its items β e.g., if all items complete the order completes; if some succeed and others fail the order is "partial". Order items have their own independent lifecycle states.
TMF622 Product Order States
| State | Terminal? | Meaning |
|---|---|---|
| Acknowledged | No | Order received, ID assigned, initial schema validation passed |
| In Progress | No | Validation passed, service orders submitted to SOM β typically the longest state |
| Held | No | Paused β manual approval, customer contact, or jeopardy condition |
| Pending | No | Awaiting future event (scheduled date, appointment, third-party action) |
| Assessing Cancellation | No | Cancellation requested β evaluating which fulfilled items need reversal |
| Completed | Yes | All items fulfilled, inventory updated, billing activated |
| Partial | Yes | Some items completed, others failed β requires operational decision |
| Failed | Yes | Order could not be completed, compensation/rollback executed |
| Cancelled | Yes | Cancelled by customer or business rule before completion |
| Rejected | Yes | Failed validation β never entered fulfilment |
COM and Subscription Lifecycle Management
COM has a critical relationship with Subscription Lifecycle Management (SLM) β the capability that maintains the runtime truth of what each customer currently has. Technically underpinned by Product Inventory (TMF637), SLM is the system of record for active product instances and their configuration. COM interacts with SLM in two directions:
- Read (for modify/cease orders): When processing a modify or cease order, COM reads the current product instance from SLM to understand the existing state. This is necessary to calculate the delta between current state and desired state.
- Write (upon completion): When a product order completes, COM triggers the creation or update of the corresponding product instance in SLM. For a new provide, a new instance is created. For a modify, the existing instance is updated. For a cease, the instance is terminated.
TMF622 Product Ordering API
TMF622 is the API that external channels (web portals, mobile apps, partner systems) call to submit product orders. It defines a standard JSON payload for the Product Order and Product Order Item, including all the attributes needed to describe what the customer wants.
POST /productOrderβ Create a new product orderGET /productOrder/{id}β Retrieve order status and detailsGET /productOrderβ List/search orders with filtersPATCH /productOrder/{id}β Update an order (e.g., request cancellation)
TMF622 Product Order Payload
| Field | Type | Description |
|---|---|---|
| id | string | Unique order identifier (assigned by COM) |
| externalId | string | ID from the originating system (channel/CPQ) |
| state | string | Current order state (acknowledged, inProgress, completed, etc.) |
| orderDate | dateTime | When the order was placed |
| requestedStartDate | dateTime | When the customer wants the service to start |
| requestedCompletionDate | dateTime | When the customer expects completion |
| channel | object | The sales channel that originated the order |
| relatedParty | array | Customer, account, agent associated with the order |
| productOrderItem | array | The line items in the order (see below) |
| note | array | Order notes from agents, systems, or customers |
TMF622 Product Order Item Fields
| Field | Type | Description |
|---|---|---|
| id | string | Unique item identifier within the order |
| action | string | add | modify | delete | noChange |
| state | string | Item-level state (independent of order state) |
| quantity | integer | Number of instances to provision |
| productOffering | ref | Reference to the Product Offering from catalog (TMF620) |
| product | object | The product instance being ordered or modified |
| product.productCharacteristic | array | Selected characteristic values (speed, quota, etc.) |
| product.productRelationship | array | Relationships to other product instances |
| itemPrice | array | Confirmed pricing for this item |
| orderItemRelationship | array | Dependencies on other items in this order |
| appointment | ref | Installation/delivery appointment if required |
product field inside an order item is crucial. For add actions, it describes the desired product instance to be created (with selected characteristics). For modify actions, it contains the existing product instance ID plus the desired changes. For delete actions, it references the existing product instance to be ceased. This field is the bridge between the order world and the inventory world.Decomposing Product Orders into Service Orders
Once COM has validated and approved a product order, it must decompose the product order items into service order items for SOM. This decomposition is catalog-driven β COM reads the Product Specification to determine which CFS types are required and creates corresponding service order items.
Product-to-Service Decomposition Mapping
| Product Order Item | Action | Service Order Item(s) Generated | CFS Type |
|---|---|---|---|
| Broadband Access (add) | add | SOI-1: Internet Access | CFS:Internet-Access |
| Broadband Access (add) | add | SOI-2: WiFi Management | CFS:WiFi-Management |
| Broadband Access (add) | add | SOI-3: CPE Management | CFS:CPE-Management |
| Speed upgrade (modify) | modify | SOI-1: Internet Access (modify speed) | CFS:Internet-Access |
| Add Static IP (add) | add | SOI-4: Static IP | CFS:Static-IP |
| Cancel broadband (delete) | delete | SOI-1,2,3: All services (delete) | All CFS types |
Common COM Challenges
- Order amendment: Customer wants to change an in-progress order. COM must determine which downstream work can be modified vs what must be cancelled and re-submitted.
- Order priority management: VIP customers, enterprise SLAs, and regulatory orders may require priority processing. COM must implement priority queuing without starving standard orders.
- Multi-product orders: A single product order may contain multiple products (broadband + TV + voice). Each product decomposes independently but may share common services or have inter-product dependencies.
- Scheduled orders: Orders with a future requested start date must be held until the appropriate time, then released for fulfilment with enough lead time for provisioning.
- Order versioning: As an order progresses and is amended, COM must maintain a history of order versions for audit and dispute resolution.
- Partial fulfilment decisions: When some items in a multi-item order fail, COM must decide: wait for resolution, complete available items, or fail the entire order.
Section 3.2 Key Takeaways
- COM is the entry point for all customer orders and operates at the Product layer
- COM receives orders from multiple channels via TMF622 and normalises them into a standard Product Order model
- Order types include new/provide, modify, cease, and migrate β each with different processing rules
- COM performs validation (catalog rules, credit, fraud, address) before initiating fulfilment
- Product Order lifecycle states: acknowledged β inProgress β completed/failed/cancelled
- COM decomposes Product Order Items into Service Order Items using catalog-driven mappings
- COM is the system of record for Product Orders; SLM (Product Inventory / TMF637) is the SoR for product instances
- The BFF pattern enables channel-optimised APIs while maintaining a standard internal COM interface
- Bypassing COM (using CRM or billing as order manager) causes validation gaps, broken lifecycle tracking, and billing disconnects