Enterprise Order Integration (Future Receipts and Pre-Order Processing)

Purpose: The enterprise order integration uses enterprise foundation inventory data that originates in Oracle Retail Merchandising Foundation Cloud Service (RMFCS) to support creating orders for pre-order items, and submitting the orders to Order Broker for fulfillment as the pre-order items become available.

In this chapter:

Enterprise Order Flow Overview

- About Pre-Orders

Importing Future Available Information (OCDSFA Periodic Function)

- Setup Requirements for the OCDSFA Periodic Function

- Additional Things to Note about the OCDSFA Periodic Function

Releasing Eligible Orders to Order Broker and Submitting the Pre-Order (Backorder Quantity Update) Notification (PREORDER Periodic Function)

- Releasing Eligible Orders to Order Broker

- Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function)

- Setup Requirements for the PREORDER Periodic Function

- Additional Things to Note about the PREORDER Periodic Function

Reviewing Pre-Order Status and Quantities

Future Receipts and Pre-Order Processing Order Configuration

- System Control Values

- Periodic Functions

- Web Service Authentication

- Properties

Troubleshooting the Enterprise Order Integration

Enterprise Order Flow Overview

The order flow described below takes place if:

• The Use OROB for Fulfillment Assignment (M31) and Send B/O to OROB (K08) system control values are set to Y, and the other system control values at the Order Broker Values (K15) and Order Broker Fulfillment Values are set.

• You import enterprise data from Omnichannel Cloud Data Service (OCDS), as described in Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS).

• Order Broker also integrates with OCDS. Order Broker release 18.1 or higher is required.

Important: The flow described here takes place only for brokered backorders.

See Future Receipts and Pre-Order Processing Order Configuration for more configuration requirements.

With this setup:

• Order Management System submits orders to Order Broker for fulfillment rather than reserving the inventory in the warehouse.

• Certain items are flagged as pre-orders, indicating that:

- Customers can order these items before you have them in inventory.

- A limited quantity of each item will be ordered on purchase orders and received in a fulfilling location in Order Broker.

- Once the full quantity of the item has been received on purchase orders, any additional quantity on orders should sell out.

See About Pre-Orders, below, for more discussion.

About Pre-Orders

Pre-orders are orders that you take for an item that is not yet available, but that you anticipate will be available in the future. These orders can then be fulfilled through submission to Order Broker. The pre-order process flow provides a means to take orders for these items in advance without selling them out prematurely, in anticipation of the time when they will be in stock in a location where Order Broker can assign them for fulfillment.

Order Management System relies on the purchase order information in OCDS to determine when these pre-ordered items can be fulfilled. Only the quantity that has been received on purchase orders is actively eligible for fulfillment; however, Order Management System uses the open quantity on purchase orders (future available quantity) to determine the quantity of each item that it can take on pre-order before it is necessary to sell out any additional orders for the item.

Pre-order processing is based on determining the maximum quantity of the item that will be received on purchase orders, and selling out any quantity beyond that anticipated receipt quantity. For example, if there is a purchase order for 100 units of a pre-order item, then the system automatically sells out any additional order lines beyond that quantity of 100.

Pre-order logic applies when:

• The Use OROB for Fulfillment Assignment (M31) and Send B/O to OROB (K08) must be selected, and all related setup for Order Broker is completed.

• You use the process described in Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS).

• You process brokered backorders through Order Broker. Ship-for-pickup orders are not currently supported for pre-order.

When an item is flagged as a pre-order:

• The system does not submit it to Order Broker as it normally does for brokered backorders. Since the inventory across the enterprise is synchronized, there would be no point to submitting items to Order Broker prematurely, because Order Broker would not have the inventory to fulfill them, and would respond to Order Management System indicating the order was unfulfillable. Instead, Order Management System uses the processes described below to determine when to submit order lines to Order Broker for processing based on the inventory that should be available.

• The item sells out automatically when the order line is created if the pre-order calculation indicates that there will not be sufficient inventory to fulfill it based on the on-order quantity.

Importing Future Available Information (OCDSFA Periodic Function)

Tracking the future availability of pre-order items enables Order Management System to determine how many units it will be able to fulfill, and when to start selling out additional units beyond that quantity. In order to track the future availability of pre-order items, Order Management System communicates with Omnichannel Cloud Data Service (OCDS) to determine:

• The total quantity of the item that is on order in Oracle Retail Merchandising Foundation Cloud Service (RMFCS), and,

• The total quantity of the item that has been received through RMFCS.

Periodic function: The future availability and pre-order updates take place through the OCDSFA periodic function, which receives future availability information from OCDS.

The periodic function receives quantities from OCDS and processes the updates described in the table below to manage pre-order items to be fulfilled through the Order Broker

Update

Discussion

Updates the item warehouse with quantity information sent from OCDS:

• The PO on-order quantity: The total quantity on purchase orders for the item. From the on-order quantity sent by OCDS.

• The PO receipts quantity: The total quantity that has been received against purchase orders, indicating the total quantity on pre-orders that Order Management System can submit to Order Broker for fulfillment. A cumulative total. From the received quantity sent OCDS.

• Sets the item warehouse on-order quantity to the PO on-order quantity minus the item warehouse Pre-order released quantity.

If the PO on-order quantity increases,

• Sets the Pre-order flag for the item/SKU to Y if it is not already selected. This is a display-only field on the Create Item (Base Information) Screen and Create SKU 1 of 2 (With Overrides) Screen, as well as the change and display screens. It is also displayed in Using Inventory Inquiry (DINI).

• Sets the soldout control value for the item to the Default Soldout Control Code (D72), if it is not set already.

Typically, an increase in PO on-order quantity occurs for a new pre-order item, although it can also occur for an existing pre-order.

The Pre-order flag indicates that the system should release units of the item to Order Broker for fulfillment as purchase orders are received, and to sell out any additional order line quantities if they cannot be fulfilled based on purchase order receipts.

Example: If the PO on-order quantity is 30, Order Management System can take pre-orders for a total of up to 30 units. The pre-order flag for the item is set to Y, indicating that Order Management System should retain orders for up to 30 units, releasing them to Order Broker as the purchase orders are received, and selling out any additional orders beyond the 30 units expected on purchase orders.

The PREORDER periodic function updates the Pre-order released quantity; see Releasing Eligible Orders to Order Broker for more information. This quantity is 0 for a new pre-order item, but the periodic function also accounts for existing pre-order items that have had a quantity released to Order Broker for fulfillment based on a receipt quantity.

If the PO on-order quantity decreases, and there are any backorders for the item that exceed the new on-order quantity, sells out the backorders in last-in, first-out order (sell out the newest order lines first) until the warehouse backorder quantity is not more than the warehouse on-order quantity, performing all standard soldout updates; see Working with Soldout Controls (WSLD) for background.

Example: The PO on-order quantity is currently set to 10, and there are 10 units of the item on open orders. When the OCDSFA periodic function runs, the PO on-order quantity is set to 8. As a result, two units of the item sell out on the newest orders. If the newest order included a single line with a quantity of 3, the entire 3 units sell out.

If the PO on-order quantity is the same as the PO receipts quantity does not make any additional updates.

This situation might occur if pre-order processing has already taken place, but the records in OCDS were not yet purged at the time the periodic function ran.

Setup Requirements for the OCDSFA Periodic Function

Required setup for the OCDSFA periodic function includes the following.

URL: From the OCDS Future Available URL (M49) system control value.

Authentication: From the OCDS Service web service authentication. See Working with Web Service Authentication (WWSA).

Item number: The Reference # (Reference number)) specified for the item in the SKU table identifies the item warehouse record to update. The retail reference number is set to the same value as the item code when you import items through OCDS, and should not be changed.

Warehouse: The Default Warehouse (A04) system control value identifies the item warehouse record to update.

Soldout control value: The Default Soldout Control Code (D72) system control value should be set to a soldout control code with a value of 2, indicating to sell out when on-hand plus on-order quantity is exhausted.

Use Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS) to create the item warehouse records.

Company: From the company submitting the periodic function.

Periodic function: Create the OCDSFA (Program name = PFR0203) periodic function and assign it to a periodic process.

For more information: See Future Receipts and Pre-Order Processing Order Configuration for full configuration requirements.

Additional Things to Note about the OCDSFA Periodic Function

When to run: This function should be run after the OCDSITM function described in Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS). Also, it should typically run more often than the OCDSITM function in order to capture frequent inventory updates as they are posted to OCDS.

Errors might occur if:

• The OCDS Future Available URL (M49) is not correct.

• The OCDS Service authentication set up through Working with Web Service Authentication (WWSA) is not correct.

• The Default Warehouse (A04) is not set.

• The item warehouse record does not exist. This situation might occur if the OCDSITM function did not run before the OCDSFA periodic function.

Note: Any order lines with a reserved quantity will not sell out. For example, this situation might occur through processing a warehouse return.

For more information: See Troubleshooting the Enterprise Order Integration for more troubleshooting information.

Releasing Eligible Orders to Order Broker and Submitting the Pre-Order (Backorder Quantity Update) Notification (PREORDER Periodic Function)

The PREORDER periodic function performs the following:

Releasing Eligible Orders to Order Broker

Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function)

Each is described below.

Releasing Eligible Orders to Order Broker

Based on the updates made by the OCDSFA periodic function, the PREORDER periodic function performs the following steps.

Submits pre-orders to Order Broker: Submits any eligible pre-orders to Order Broker for fulfillment, determined by subtracting the pre-order released quantity from the PO receipts quantity.

Example: The PO receipts quantity is now set to 15 units, and 10 units have already been released to Order Broker. If there are 6 remaining units of the pre-order item on open orders that have not yet been submitted to Order Broker for fulfillment, the periodic function releases up to 5 units, provided that it would not need to submit a partial quantity of an order line to Order Broker. If, for example, the remaining order line quantities are 4 on the oldest order and 2 on a more recent order, only the order line with the quantity of 4 is released.

Note:

- The order lines are submitted in first-in, first-out order (oldest first).

- Partial order line quantities are not submitted to Order Broker. If the next eligible line would exceed the quantity available to release, it is skipped.

- The order submission uses the same steps and applies the same updates as the BROKER periodic function.

- Orders in Error status or Suspended status are not eligible to be submitted.

- Each order line for a pre-order item is evaluated separately.

The Send Held Orders to OROB (M18) system control value controls whether the PREORDER periodic function includes held orders.

Item warehouse quantity updates: The function:

• Increases the Pre-order released quantity for the item warehouse by the quantity of pre-orders submitted to Order Broker.

• Sets the item warehouse On-order quantity to the PO on-order quantity minus the Pre-order released quantity. For example, if a total of 30 units are on purchase orders, and 12 units have been released to the Order Broker for fulfillment, the item warehouse On-order quantity is set to 18.

Is the item still a pre-order? The following updates take place if the PO on-order quantity is now less than or equal to the PO receipts quantity, indicating that all anticipated units on purchase orders have been received. When this occurs, the item is no longer eligible for pre-order processing, so that any additional units ordered should sell out.

Example: If the PO on-order quantity is 30, and the PO receipts quantity is 25, the Pre-order flag remains set to Y, because an additional 5 units can be received and used to fulfill pre-orders. However, if the PO receipts quantity is 30 or higher, the Pre-order flag changes to N, because no additional receipts are expected.

If the item is no longer a pre-order, the periodic process:

• Sets the Pre-order flag for the item to N.

• Sells out any remaining open lines beyond the PO on-order quantity in last-in, first-out order (sell out the newest first). If the entire line cannot be submitted to Order Broker, the entire line sells out.

Example: If the PO on-order quantity and the PO receipts quantity are both 30, and there are pre-orders for a total quantity of 35, the additional 5 units sell out. Also, if the newest order line is for a quantity of 6, all 6 units on that line sell out, because order lines are not partially sold out.

• Sets the PO on-order quantity, PO receipts quantity, Pre-order released quantity, and Item Warehouse On-order quantity to 0.

• If the backorder quantity is not equal to the PO pre-order quantity sent, this means that the backorder quantity has changed, and that RMFCS needs to be notified. In this case, the periodic function submits the pre-order (backorder quantity update) notification message in order to notify RMFCS of any increase or decrease to the pre-order backorder quantity. See below for calculation examples and more information.

Note: The PO pre-order quantity sent is not displayed on any screen; it is just the current backorder quantity at the time the pre-order (backorder quantity update) notification is generated, and is used only to determine the quantity to send the next time the notification is generated.

Otherwise, if the item is still a pre-order, the PREORDER function does not update the Pre-order flag or sell out any units of the item.

Example: If the PO on-order quantity is 30, there are 29 units on pre-order, and the PO receipts quantity is 15, Order Management System can release up to 15 units to Order Broker for fulfillment. The remaining 14 units remain as pre-orders in Order Management System.

Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function)

The pre-order (backorder quantity update) notification message indicates the net increase or decrease to uthe backorder quantity for a pre-order item so that RMFCS is aware of the current backorder quantity of the pre-ordered item. The PREORDER periodic function calculates the quantity to send by comparing the current backorder quantity of the pre-order item with the current PO pre-order quantity sent that is stored in the Item Warehouse table.

The message does not simply send the current backorder quantity; instead, it indicates the amount of increase or decrease to the backorder quantity.

Pre-order backorder update examples:

Description

Last Pre-Order Quantity Sent

Current Pre-Order B/O Quantity

Quantity Sent in Message

New Pre-Order Quantity Sent

Backorder quantity increases from 4 to 6 through new order of 2 units.

4

6

2

6

Backorder quantity decreases from 5 to 2 through order line cancellation.

5

2

-3

2

Backorder quantity decreases from 10 to 4 through PO receipts quantity of 6, and 6 units submitted to Order Broker.

10

4

-6

4

Backorder quantity of 10 has a net decrease of 6 units:

• 2 units canceled (-2)

• 5 units received (-5)

• 1 unit ordered (+1)

10

4

-6

4

Backorder quantity has not changed, either because there was no activity, or activity did not result in a net increase or decrease

10

10

No message sent

No change

The PREORDER periodic function submits the pre-order (backorder quantity update) notification to Retail Integration Cloud Service through the RICS Outbound Service URL (M50).

What information is included in the pre-order (backorder quantity update) notification? The information in the notification includes the following:

Item: The item’s Retail reference number identifies the item. The retail reference number is set to the item code when Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS), and if the retail reference number is changed in any way, then the pre-order notification process does not succeed.

Location type: The message always passes a location type of W (warehouse).

Location: The message always passes the OMS Default Warehouse (A04) as the location.

Backorder quantity: Calculated as described above.

Unit of measure: Set to EA (each).

No other fields are mapped.

Setup Requirements for the PREORDER Periodic Function

In addition to the configuration described under Setup Requirements for the OCDSFA Periodic Function, the PREORDER periodic function requires the following:

URL: From the OCDS Future Available URL (M49) system control value.

Authentication: From the OCDS Service web service authentication. See Working with Web Service Authentication (WWSA).

Periodic function: Create the PREORDER (Program name = PFR0204) periodic function and assign it to a periodic process.

Additional Things to Note about the PREORDER Periodic Function

When to run: This function should be run after the OCDSFA periodic function, described above under Importing Future Available Information (OCDSFA Periodic Function).

Note: The PREORDER function needs to run after Order Broker receives inventory updates. Otherwise, it is possible for the PREORDER function to submit order lines to Order Broker before Order Broker recognizes that the location can fulfill orders based on inventory receipts. In this situation, Order Broker returns the orders to Order Management System as unfulfillable.

Reviewing Pre-Order Status and Quantities

You can use the Display Item/Warehouse Information Screen in Using Inventory Inquiry (DINI) to review the following information:

Pre-order flag: Selected if the item is currently a pre-order. The OCDSFA periodic function selects this flag, and the PREORDER periodic function clears if when the PO receipts quantity is greater than or equal to the PO on-order quantity.

PO on order quantity: From the RMS on-order quantity in the Item Warehouse table. The OCDSFA periodic function updates this quantity, and the PREORDER periodic function uses it in its calculations.

PO receipts quantity: From the RMS receipt quantity in the Item Warehouse table. The OCDSFA periodic function updates this quantity, and the PREORDER periodic function uses it in its calculations.

Pre-orders released: The total order quantity that has been released to Order Broker for fulfillment. The PREORDER periodic function releases the pre-orders to Order Broker.

Pre-order updated: The last date when the PREORDER periodic function updated the related quantities for the Item Warehouse.

Note: The PO pre-order quantity sent is also used for pre-order calculations, but is not displayed on any screen; it is just the current backorder quantity at the time the pre-order (backorder quantity update) notification is generated, and is used only to determine the quantity to send the next time the notification is generated.

Troubleshooting: See Troubleshooting the Enterprise Order Integration for examples of log entries for the pre-order (backorder quantity update) notification.

Future Receipts and Pre-Order Processing Order Configuration

A summary of required configuration for enterprise future receipts and pre-order processing includes:

System Control Values

Periodic Functions

Web Service Authentication

Properties

System Control Values

Set the following system control values:

• Included in Enterprise Integration Values (M41):

- OCDS Future Available URL (M49): Used by the OCDSFA periodic function.

- RICS Outbound Service URL (M50): Used by the PREORDER periodic function.

Use OROB for Fulfillment Assignment (M31) and Send B/O to OROB (K08) must be selected.

Order Broker Values (K15) and Order Broker Fulfillment Values must be set.

Default Warehouse (A04) must be set.

Default Soldout Control Code (D72) must be set to a soldout control code with a value of 2, indicating to include the on-order quantity when determining whether to sell out an item.

Periodic Functions

The periodic functions supporting enterprise order integration are:

OCDSFA (Program name = PFR0203). See Importing Future Available Information (OCDSFA Periodic Function) for background.

PREORDER (Program name = PFR0204). See Releasing Eligible Orders to Order Broker and Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function) for background.

Scheduling: You can assign these periodic functions to a periodic process or to separate periodic processes; however, the OCDSFA function needs to run before the PREORDER function, and both functions need to run after the OCDSITM periodic function, described in Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS).

The process should run after Order Broker updates its own inventory data from OCDS so that inventory levels there are current. If the PREORDER process runs before Order Broker has imported updated inventory for the pre-order items, Order Broker might reject the pre-orders as unfulfillable.

Frequency: Typically, the functions should run multiple times per day to maintain current data across the enterprise.

Web Service Authentication

Use Working with Web Service Authentication (WWSA) to set up:

RICS Service authentication for your company. This authentication is required when Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function).

OCDS Service authentication. This authentication is required for Importing Future Available Information (OCDSFA Periodic Function).

Properties

Use Working with Admin Properties (CPRP) to set up the following properties related to logging for the Pre-order (backorder quantity update) notification:

RICS_LOG_LEVEL

RICS_MAXBACKUP_DAYS

The following properties are used for the OCDSFA periodic function:

OCDS_LOG_LEVEL

OCDS_MAXBACKUP_DAYS

Troubleshooting the Enterprise Order Integration

Order Broker product locations must be updated: If the pre-order periodic function runs before Order Broker receives inventory updates through OCDS, then Order Management System might submit orders to Order Broker for fulfillment before Order Broker determines that it has the required inventory to fulfill the orders. In this situation, Order Broker returns the orders to Order Management System as unfulfillable.

Do not update items received from OCDS: If you use Importing Enterprise Foundation Data through Omnichannel Cloud Data Service (OCDS) as well as Enterprise Order Integration (Future Receipts and Pre-Order Processing), it is important not to update the items manually. For example, if the item’s retail reference number is set to the item code. It is important that you do not change the retail reference number to anything other than the item code, or the integration processes, including Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function), will fail.

Supported Order Broker order type: The pre-order process with fulfillment through Order Broker supports brokered backorders only. Other Order Broker order types are not currently supported.

Store pickup orders for pre-order items: You are not prevented from submitting a store pickup order to Order Broker for an item currently flagged as a pre-order.

Items must be flagged as OROB eligible: Only items flagged as OROB eligible are submitted to Order Broker.

Must have soldout control: Items must be assigned a soldout control value that indicates to include on-order quantity; otherwise, the order lines do not sell out when the backorder quantity exceeds to on-order quantity.

See Additional Things to Note about the OCDSFA Periodic Function for more troubleshooting information.

Pre-order logging: Various logs, including the RICS Log, note issues with the Generating the Pre-Order (Backorder Quantity Update) Notification Message (PREORDER Periodic Function). Sample entries in the RICS log for the pre-order (backorder quantity update) notification:

• Successful message: If the RICS_LOG_LEVEL is set to INFO and the message was sent successfully, the RICS log includes the message contents, and indicates success, for example:

11:59:35,206 INFO RICS - message: Invocation Success

• If the RSB (Oracle Retail Service Backbone) service is down:

ERROR RICS - message: Connection refused to: https://nsh00alp.us.oracle.com:38004/rms-InventoryBackOrder-AppServiceDecorator/ProxyService/InventoryBackOrderAppServiceProxy?WSDL ConnectException: java.net.ConnectException: Connection refused (Connection refused)

• If Web Service Authentication has not been set up:

ERROR RICS - message: No Authentication is set up for RICS Service

OCDSFA activity logging:, Various messages are written to the OCDS (Omnichannel Cloud Data Service) Log based on the future data import:

• If the OCDS Future Available URL (M49) system control value is blank:

ERROR com.mr.interfaces.ocds.DataImportConfig - OCDS Import - Valid REST Service Endpoint not configured for SCV: M49.

• If the OCDS Future Available URL (M49) system control value specifies an invalid URL:

ERROR com.mr.interfaces.ocds.DataRetriever - Exception response code InboundJaxrsResponse{context=ClientResponse{method=GET, uri=https://nsh00dus.us.oracle.com:7004/ords/ocds/omnichannel/v1/inventory/futurexyz?nodelevel=STORE&nodeid=2019&limit=1000, status=404, reason=Not Found}} from service call {}

Additional log entries: Depending on the OCDS_LOG_LEVEL setting, samples of additional log entries for OCDSFA include:

16:31:13,108 INFO com.mr.interfaces.ocds.impl.FutureAvailDataProcessor - Performing PreOrder quantity Calculation for SKU 123456

16:31:13,109 INFO com.mr.interfaces.ocds.impl.FutureAvailDataProcessor - No change - onOrder Qty equals OnReceived Qty and preOrder is N for SKU 123456

16:31:13,110 ERROR com.mr.interfaces.ocds.impl.FutureAvailDataProcessor - SKU 123456 does not exists in company 123

14:55:18,887 INFO com.mr.interfaces.ocds.impl.FutureAvailDataProcessor - Performing sell out process for Order#1234

SO18_01b OMSCS 19.0 December 2019 OHC