25 Customer Order Fulfillment

The Customer Order Fulfillment module is an application available in Supply Chain Hub. This chapter describes the implementation considerations and the operation details.

Implementation Overview

This section provides an implementation overview for Customer Order Fulfillment.

Functionality

This module offers the possibility to review, download and provide updates to Customer Orders. Depending on System Parameters configuration it can follow 2 different flows:

  • SPCO Flow: Customer Orders are integrated directly to Customer Order Fulfillment and in Customer Order Fulfillment users can get details, provide status updates and create Invoices for them.
  • MFCS Flow: Customer Orders are integrated directly to MFCS and in Customer Order Fulfillment users can get the details and provide status updates.

Status Workflow

Figure 25-1 Customer Order Fulfillment Status Workflow


Customer Order Fulfillment Status Workflow

Customer Order Fulfillment follows a workflow path for Customer Orders and status can change depending on:

  • The user permission
  • The current status of the Customer Order

Customer Order Status:

  • New (N) - This status is used when the Customer Order are created in MFCS or Customer Order Fulfillment.
  • Committed (C) - This Status used when Supplier committed to dispatch the Customer Order, on this status it is possible to provide the Estimated Ship Date and Shipment Status.
  • Dispatched (DS) - When the Customer Order is marked as Dispatched by the Supplier the Customer Order moves to this Status. On this status the Customer Order is considered completed whilst in MFCS mode and completed with missing Invoice when in SPCO Mode.
  • Cancelled (X) - This Status is used when a Customer Order is cancelled. The cancellation can be initiated by the Supplier or by OMS.
  • Processing Invoice (PI) - This Status is only available whenCustomer Order Fulfillment controls Supplier Sourced Customer Orders instead of MFCS and is used while the consolidated Customer Order, Invoice and ASN are being published to MFCS/IMCS.
  • Completed (C) - Once all processing has been completed the Customer Order is moved to Completed.
  • Error (E) - This is a technical status used when during the Processing Invoice publishing process an error is found.

Integration High Level

Figure 25-2 Customer Order Fulfillment Integration High Level


Customer Order Fulfillment Integration High Level

Note:

Shipments Java Service integration via RIB-EXT is an optional flow that requires enabling from the configuration. For more details on this process, see the Supply Chain Hub Frameworks section.

Configuration

This sections describes Customer Order Fulfillment configurations.

POM Configuration

Batch scheduler details with all batches, dependencies and frequencies can be downloaded following the steps in the Supply Chain Hub Frameworks section.

Schedule Overview

Figure 25-3 Customer Order Fulfillment Batch Schedule Overview


Customer Order Fulfillment Batch Schedule Overview

Other Cloud Services Configuration

This section describes implementation details that must be reviewed from an Oracle Retail Merchandising System perspective.

System Options

MFCS System Option LOCALIZATION_CONFIG_OPTIONS.DEFAULT_TAX_TYPE defines the default tax type used for Finance Documents.

Other Implementation Considerations

This section describes Customer Order Fulfillment implementation considerations.

Notifications and Alerts

Customer Orders Fulfillment uses the Events Framework to inform users about some actions with notifications and alerts. Below is the list of notifications available. The notifications are implemented via the Rule Engine Framework documented in the Supply Chain Hub Frameworks section.

Notifications

SPCO_EVENT_NEW_CUSTOMER_ORDER

New Customer Order(s) received.

Table 25-1 Notifications - SPCO_EVENT_NEW_CUSTOMER_ORDER

PROPERTY VALUE
Event Name SPCO_EVENT_NEW_CUSTOMER_ORDER
Event Type ORCV_SPCO_EVENT_NEW_CUSTOMER_ORDER
Description Notification triggered when new Customer Order is received.
Trigger Subscription Rest Service
Target Users Supplier users that are associated with supplier of the Customer Order
Alerts

SPCO_EVENT_COF_WITHOUT_INV

Customer order fulfillment without invoice.

Table 25-2 Alerts - SPCO_EVENT_COF_WITHOUT_INV

PROPERTY VALUE
Event Name SPCO_EVENT_COF_WITHOUT_INV
Event Type ORCV_SPCO_EVENT_COF_WITHOUT_INV
Alert Type EMAIL
Description Email with the Customer Orders without invoice.
Trigger BATCH
Target Users Supplier users that are associated with supplier with Customer Orders without invoice.

Custom Validations

The module performs validations by implementing Custom Validation Groups of the Custom Validations Framework described in the Supply Chain Hub Frameworks section.

The groups listed below can be used to add Custom Validations for Customer Order Fulfillment.

Group Id Executed When
SPCO_COF_CANCEL Customer Order is cancelled.
SPCO_COF_COMMIT Customer Order is committed.
SPCO_COF_CREATE Customer Order is created.
SPCO_COF_DISPATCH Customer Order is dispatched.
SPCO_COF_EDIT Customer Order is Changed.

Specific Batch Configuration

This section describes Customer Order Fulfillment specific batch configurations.

MFCS Control Tables Update Batch

This batch will be responsible for populating the control tables (ORCV_SPCO_ORDCUST_CONTROL, ORCV_SPCO_ORDCUST_DEPT_CONTROL, ORCV_SPCO_ORDCUST_ORD_CONTROL). If the flow is MFCS it will populate the control tables with the Customer Order information existing in the MFCS, enriching this same information with the value of the total_cost, the department of the item(s) belonging to the Customer Order, and the order. If the flow is SPCO it will only calculate the total_cost of the Customer Order, searching for the department of the item(s) belonging to the Customer Order.

  • Job: ORCV_SPCO_ORDCUST_JOB
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

COLUMN NAME DEFAULT VALUES
Program Name ORCV_SPCO_ORDCUST_JOB
Maximum Chunk Size 1000
Maximum Concurrent Threads 4
Retry Lock Attempts 3
Retry Wait Time 3
Retry Maximum Attempts 3
Retry Ordered N
Retry Indicator N
Shipments and Finance Documents Publish Batch

This batch will be responsible for publishing shipments and financial documents associated with one or more Customer Orders.

  • Job: ORCV_SPCO_PUB_JOB
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

COLUMN NAME DEFAULT VALUES
Program Name ORCV_SPCO_PUB_JOB
Maximum Chunk Size 1000
Maximum Concurrent Threads 4
Retry Lock Attempts 3
Retry Wait Time 3
Retry Maximum Attempts 3
Retry Ordered N
Retry Indicator N
Customer Order Status Update Batch

This batch will be responsible for updating the Customer Order status. If the financial document was not successfully integrated into IMCS, the status will be 'E'rror, otherwise it will be 'C'ompleted.

  • Job: ORCV_SPCO_UPD_STATUS_JOB
  • Frequency: Ad-hoc Flow ORCV_SPCO_PUB_FLOW
  • Dependency: ORCV_FIN_INT_EDI_MFCS_PROCESS_ADHOC, ORCV_SHIP_INT_ASNIN_MFCS_PROCESS_ADHOC
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

COLUMN NAME DEFAULT VALUES
Program Name ORCV_SPCO_UPD_STATUS_JOB
Maximum Chunk Size 10000
Maximum Concurrent Threads 4
Retry Lock Attempts 4
Retry Wait Time 2
Retry Maximum Attempts 3
Retry Ordered N
Retry Indicator N
Events Notifications and Alerts Batch

Triggers notifications for Events described in Notifications and Alerts.

  • Job: ORCV_RLEG_SPCO_EVT_WITHOUT_INV
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

This batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section with the following configurations.

Rule default configuration (ORCV_RLEG_RULE):

RULE KEY RULE NAME PROGRAM NAME APP ALIAS RULE MODE
SPCO_EVT_WITHOUT_INV ORCV_SPCO_EVT_WITHOUT_INV ORCV_RLEG_SPCO_EVT_WITHOUT_INV SPCO BATCH

Batch default configuration (ORCV_BATCH_CONFIG):

COLUMN NAME DEFAULT VALUES
Program Name ORCV_RLEG_SPCO_EVT_WITHOUT_INV
Maximum Chunk Size 1000
Maximum Concurrent Threads 4
Retry Lock Attempts 3
Retry Wait Time 3
Retry Maximum Attempts 3
Retry Ordered N
Retry Indicator Y

Materialized Views

This application requires some results to be materialized in tables using the Materialized View Framework described in the Supply Chain Hub Frameworks section, below is the list for this application. Materialized Views used in Customer Order Fulfillment home page.

ORCV_MV_SPCO_DASH_COF_BY_DEP

Returns the sum of total cost items by department. Used in Customer Order Fulfillment home page.

Pre-Dependencies: None

Post-Dependencies: None

Frequency: Ad-hoc

ORCV_MV_SPCO_DASH_CMPL_COF

Returns the number of Customer Orders in Completed status (In SPCO flow status = 'C', in MFCS flow status = 'DS') and received in the last 30 days. Used in Customer Order Fulfillment home page.

Pre-Dependencies: None

Post-Dependencies: None

Frequency: Ad-hoc

ORCV_MV_SPCO_DASH_MISG_INV

Returns the number of Customer Orders with dispatched status and without invoice. Used in Customer Order Fulfillment home page.

Pre-Dependencies: None

Post-Dependencies: None

Frequency: Ad-hoc

Codes

Certain operations require codes to define the options available at system level. Below you can find the list of code types available.

The codes are defined in the ORCV_CODE_HEAD and ORCV_CODE_DETAIL tables.

CODE TYPE CODE TYPE DESCRIPTION
COBL Badges labels, to be used on the dashboard screen.
CORS Customer Order Reason.
COST Customer Order Status.
SHST Shipment Status.

Templates

Customer Order Fulfillment uses spreadsheets to download and upload process, developed as part of the Retail Supply Chain Hub Frameworks, for creation, maintenance, and extraction of data. To support these processes there are some templates which must be configured, and several configurations should be reviewed as part of the implementation.

Template Customer Order Fulfillment Data

Template key: SPCO_COF

The required permissions per action for this template are the following:

Table 25-3 Template key: SPCO_COF

ACTION TYPE ROLE NAME
Download Blank ORCV_SPCO_APP_JOB
Download ORCV_SPCO_COF_VIEW_JOB
Download ORCV_SPCO_COF_EDIT_JOB
Upload ORCV_SPCO_COF_EDIT_JOB

Table 25-4 Worksheet Customer Order Header

ACTION MANDATORY CELLS / FIELDS NOTES
Update Ordcust No

Edits Customer Orders

Note: It is only allowed to change the shipment status and expected shipment date fields

Commit Ordcust No Commits Customer Orders
Dispatch Ordcust No Dispatchs Customer Orders
Cancel Ordcust No Cancels Customer Orders
Codes

Certain operations require codes to define the options available at system level. Below you can find the list of code types available.

The codes are defined in the ORCV_S9T_CODE_HEAD and ORCV_S9T_CODE_DETAIL tables.

CODE TYPE CODE TYPE DESCRIPTION
SPCA Customer Order Fulfillment - Customer Order Action

References

Customer Order Fulfillment also uses the Queries module to enable communication between retailer and supplier users, details about Queries are available in the Supply Chain Hub Frameworks section.

Operations

This section describes Customer Order Fulfillment operations.

Integration by Module

Figure 25-4 Customer Order Fulfillment Integration by Module


Customer Order Fulfillment Integration by Module
STEP DESCRIPTION
0 RSCH Data Access of MFCS data
1 Order Management System calls Customer Order Fulfillment subscription Rest Service.
2 Customer Order Fulfillment calls MFCS Fulfillment Upload Rest Service to create/cancel Fulfillment Orders.
3 Shipments Java Services checks if Customer Order Fulfillment has shipments to be published.
4 If there are ASNin to be published, Shipments Java Services sends calls MFCS via RIB-EXT Rest.
5 Finance Document Induction Java Services checks if Customer Order Fulfillment has documents to be published.
6 Finance Document Induction Java Services sends produced files to Integration File Transfer.
7 Integration File Transfer publishes files to MFCS File Transfer Services (FTS) or MFCS shared folder (depending on configuration).
8 Customer Order Fulfillment calls Upload Download Java Service to transform files, depending on the request details, Upload Download Java Service might need to callback to SPCO to get more details.
9 Event Alert Java Service checks if there are alerts to be triggered.
10 Customer Order Fulfillment uses Reports application to call BI Publisher Rest Service to retrieve the Customer Order details from a BI Publisher report.

Services by Module

This section describes the Customer Order Fulfillment services.

Fulfillment Order Service

This service is used to create or cancel Customer Order Fulfillment requests from an external order management system (OMS).

Create

Table 25-5 Create API

Create
Url Path <BASE URL>/ords/mfcs/orcv/merch/customerorder/fulfillmentorder/create
Request Method POST
Sample Request Body

{

"items": [

{

"customerOrderNo": "47244",

"fulfillOrderNo": "47244",

"details": [

{

"item": "100202777",

"orderQuantitySuom": 25,

"substituteInd": "N",

"standardUom": "EA",

"transactionUom": "EA",

"unitRetail": 99,

"retailCurrency": "USD",

"comments": "Lalalala",

"itemLineNo": 1

},

{

"item": "100202742",

"orderQuantitySuom": 59,

"substituteInd": "N",

"standardUom": "EA",

"transactionUom": "EA",

"unitRetail": 99,

"retailCurrency": "USD",

"comments": "Test",

"itemLineNo": 2

}

],

"fulfillLocation": 3000,

"partialDeliveryInd": "N",

"sourceLocationType": "SU",

"sourceLocation": 6200,

"fulfillLocationType": "V",

"deliveryType": "S",

"carrierCode": "30",

"carrierServiceCode": "D",

"consumerDeliveryDate": "2024-06-19",

"deliveryCharges": 99,

"deliveryChargesCurrency": "USD",

"comments": "Test",

"orderPlacedStore": null

}

]

}

Sample Success Message

{

"items": [

{

"customerOrderNo": "47244",

"fulfillOrderNo": "47244",

"confirmationType": "C",

"confirmationNo": 1,

"fulfillLocation": 3000,

"systemCode": "INV",

"details": [

{

"item": "100202777",

"confirmedQuantity": 25,

"confirmedQuantityUom": "EA",

"itemLineNo": 1

},

{

"item": "100202742",

"confirmedQuantity": 59,

"confirmedQuantityUom": "EA",

"itemLineNo": 2

}

]

}

]

}

Response Code: 200 (Success)

Sample Failure Message

{

"status": "ERROR",

"message": "Error found in validation of input payload",

"validationErrors": [

{

"error": "must be one of Y, N",

"field": "createRecord.partialDeliveryInd",

"inputValue": "X"

}

],

"businessError": [

"Invalid Order Placed Location. Customer order no UNIT_TEST, Fulfill order no UNIT_TEST. 2",

"Consumer_delivery_date and Consumer_delivery_time cannot both be populated. Customer order no 03-MAR-24, Fulfill order no 03-MAR-24.",

"Invalid substitute indicator for item <string>, Customer order no UNIT_TEST, Fulfill order no UNIT_TEST. Valid values are Y or N.",

"Fulfill Location ID must be a valid non-stockholding company store that supports customer orders. Customer order no UNIT_TEST, Fulfill order no UNIT_TEST. V"

]

}

Response Code: 400 (Bad Request)

Affected Tables

ORCV_ORD_SUB_ORDCUST_HEAD

ORCV_ORD_SUB_ORDCUST_DETAIL

ORCV_ORD_SUB_ORDCUST_ERR

ORCV_SPCO_ORDCUST_HEAD

ORCV_SPCO_ORDCUST_DETAIL

Table 25-6 Customer Order Fulfillment Object

Element Name Required Data Type Description
customer_order_no Yes String (48) This column contains the master customer order number from the Order Management System.
fulfill_order_no Yes String (48) This column contains the number from OMS related to the fulfillment details. One or more fulfillment orders could relate back to a single customer order in OMS.
details Yes Collection of FulfillOrder Details Object A list of items associated with Customer Order Fulfillment.
fulfill_location Yes Number (10) This contains the fulfillment location of the customer order. It can only be either a physical store or a virtual store.
partial_delivery_ind Yes String (1) This column indicates if the order can be picked and shipped partially or if it should be shipped only when complete. Valid values are Y or N.
source_location_type Yes String (2) This column contains the source type for the customer order. Valid values are SU for supplier, ST for store and WH warehouse. This would only contain a value for vendor, warehouse, or multi-site fulfillment orders.
source_location Yes Number (10) This column contains the supplier, store or warehouse the customer order is sourced from. This would only contain a value for vendor, warehouse or multi-site fulfillment orders.
fulfill_location_type Yes String (1) This column contains the fulfillment location type of the customer order. Valid values are S for physical store and V for virtual store.
delivery_type Yes String (1) This column contains the fulfillment method. Valid values are S for ship direct and C for customer pickup.
carrier_code No String (4) This column contains the carrier the order is to be shipped with, if specified on the order.
carrier_service_code No String (6) This column contains the shipping method that was selected by the customer. Valid values are defined as codes for code_type CSVC: F (Free 2 Day Shipping), D (Discounted 4 Day Shipping), O (Overnight Shipping), P (Premium Next Business Day Delivery) and S (Standard Shipping).
consumer_delivery_date Yes Date This column contains the desired date the delivery is required by the customer.
delivery_charges No Number (20,4) This column contains the delivery charges for Drop Ship purchase orders.
delivery_charges_currency No String (3) This column contains the currency of the delivery charge.
comments No String (2000) This column contains any comments about the customer order.
order_placed_store Yes Number (10) Indicates the store number associated with the location that the customer order was placed. For on-line orders this will contain the virtual store number associated with the on-line store. For orders captured in a physical store this will contain the store number for the physical store.

Table 25-7 Fulfillment Order Details Object

Element Name Required Data Type Description
item Yes String (25) This field contains the item in the customer order. This field will contain the original ordered item from the customer order message. This field can also hold the substitute item when a new record is inserted in this table to hold the substitution details when store fulfills using a substitute item.
reference_item No String (25) This field contains the reference item ordered. This will be used only when a specific UPC is ordered. This is supported for vendor drop-ships orders only.
order_quantity_suom Yes Number (12,4) This field holds the quantity ordered for the customer order/fulfillment no/item number. This quantity is in STANDARD_UOM.
substitute_ind No String (1) This field indicates substitute items are allowed for an item on a customer order at the time of store fulfillment. This field is applicable for store fulfillment only in SIM. The valid values are Y or N.
standard_uom Yes String (4) This field contains the standard UOM of the item.
transaction_uom Yes String (4) This field contains the original unit of measure in which the customer had placed the order in OMS. This field is informational only for RMS.
unit_retail Yes Number (20,4) Indicates the unit sales retail of item on the customer order and is maintained in standard UOM.
retail_currency Yes String (3) Indicates currency of unit retail.
comments Yes String (2000) Used to indicate any special instructions for the item, such as services (monograms, engrave, etc).
item_line_no Yes Number (10) Indicates the detail item line number on the customer order.
Cancel

Table 25-8 Cancel API

Cancel
Url Path <BASE URL>/ords/mfcs/orcv/merch/customerorder/fulfillmentorder/cancel
Request Method POST
Sample Request Body

{

"items": [

{

"customerOrderNo": "5",

"fulfillOrderNo": "5",

"sourceLocationType": "SU",

"sourceLocation": 6200,

"fulfillLocationType": "V",

"fulfillLocation": 3000,

"details": [

{

"item": "100202742",

"cancelQuantityInSuom": 1,

"standardUom": "EA",

"transactionUom": "EA",

"itemLineNo": 2

}

]

}

]

}

Sample Success Message

{

"status": "SUCCESS",

"message": "Service call is successful"

}

Response Code: 200 (Success)

Sample Failure Message

{

"status": "ERROR",

"message": "Error found in validation of input payload",

"validationErrors": [

{

"error": "must be one of Y, N",

"field": "createRecord.partialDeliveryInd",

"inputValue": "X"

}

],

"businessError": [

"Item %s1 with invalid direct shipment indicator."

]

}

Response Code: 400 (Bad Request)

Affected Tables

ORCV_ORD_SUB_ORDCUST_HEAD

ORCV_ORD_SUB_ORDCUST_DETAIL

ORCV_ORD_SUB_ORDCUST_ERR

ORCV_SPCO_ORDCUST_HEAD

ORCV_SPCO_ORDCUST_DETAIL

Table 25-9 Customer Order Fulfillment Object

Element Name Required Data Type Description
Element Name Required Data Type Description
customer_order_no Yes String (48) This column contains the master customer order number from the Order Management System.
fulfill_order_no Yes String (48) This column contains the number from OMS related to the fulfillment details. One or more fulfillment orders could relate back to a single customer order in OMS.
details Yes Collection of FulfillOrder Details Object A list of items associated with Customer Order Fulfillment.
fulfill_location Yes Number (10) This contains the fulfillment location of the customer order. It can only be either a physical store or a virtual store.
source_location_type Yes String (2) This column contains the source type for the customer order. Valid values are SU for supplier, ST for store and WH warehouse. This would only contain a value for vendor, warehouse, or multi-site fulfillment orders.
source_location Yes Number (10) This column contains the supplier, store or warehouse the customer order is sourced from. This would only contain a value for vendor, warehouse or multi-site fulfillment orders.
fulfill_location_type Yes String (1) This column contains the fulfillment location type of the customer order. Valid values are S for physical store and V for virtual store.

Table 25-10 Fulfillment Order Details Object

Element Name Required Data Type Description
item Yes String (25) This field contains the item in the customer order. This field will contain the original ordered item from the customer order message. This field can also hold the substitute item when a new record is inserted in this table to hold the substitution details when store fulfills using a substitute item.
cancelQuantityInSuom Yes Number (12,4) This field holds the quantity cancelled for the customer order/fulfillment no/item number. This quantity is in STANDARD_UOM.
standard_uom Yes String (4) This field contains the standard UOM of the item.
transaction_uom Yes String (4) This field contains the original unit of measure in which the customer had placed the order in OMS. This field is informational only for RMS.
item_line_no Yes Number (10) Indicates the detail item line number on the customer order.

Materialized Views Refresh Details

ORCV_MV_SPCO_DASH_COF_BY_DEP

Parameter Value
Result Synonym ORCV_MV_SPCO_DASH_COF_BY_DEP
Result Table A ORCV_SPCO_DASH_COF_BY_DEP_A_R
Result Table B ORCV_SPCO_DASH_COF_BY_DEP_B_R
Source View ORCV_V_SPCO_DASH_COF_BY_DEP_R
Driving View ORCV_V_SPCO_DASH_COF_BY_DEP_RC
Pre-Processor ORCV_COMMON_MV_REFRESH.COMMON_PRE_PROCESSOR
Check Function ORCV_SPCO_DASH_MV.CHECK_SPCO_DASH_COF_BY_DEP
Preserve Data Y
Restart Indicator N
Max Concurrent Threads 4
Filter Fields SUPPLIER,DEPT

ORCV_MV_SPCO_DASH_CMPL_COF

Parameter Value
Result Synonym ORCV_MV_SPCO_DASH_CMPL_COF
Result Table A ORCV_SPCO_DASH_CMPL_COF_A_R
Result Table B ORCV_SPCO_DASH_CMPL_COF_B_R
Source View ORCV_V_SPCO_DASH_CMPL_COF_R
Driving View ORCV_V_SPCO_DASH_CMPL_COF_RC
Pre-Processor ORCV_COMMON_MV_REFRESH.COMMON_PRE_PROCESSOR
Check Function ORCV_SPCO_DASH_MV.CHECK_SPCO_DASH_CMPL_COF
Preserve Data Y
Restart Indicator N
Max Concurrent Threads 4
Filter Fields SUPPLIER,DEPT

ORCV_MV_SPCO_DASH_MISG_INV

Parameter Value
Result Synonym ORCV_MV_SPCO_DASH_MISG_INV
Result Table A ORCV_SPCO_DASH_MISG_INV_A_R
Result Table B ORCV_SPCO_DASH_MISG_INV_B_R
Source View ORCV_V_SPCO_DASH_MISG_INV_R
Driving View ORCV_V_SPCO_DASH_MISG_INV_RC
Pre-Processor ORCV_COMMON_MV_REFRESH.COMMON_PRE_PROCESSOR
Check Function ORCV_SPCO_DASH_MV.CHECK_SPCO_DASH_MISG_INV
Preserve Data Y
Restart Indicator N
Max Concurrent Threads 4
Filter Fields SUPPLIER,DEPT