Chapter 109: Point of Sale Integration Overview

Purpose: The point of sale integration allows you to send data from CWDirect to your point of sale system, such as CWStore, and receive data from your point of sale system into CWDirect. Components of the point of sale integration also enable you to communicate with Locate.

In this chapter:

Point of Sale Download Processing

What Data Can I Download?

When are Download Triggers Created?

Identifying Download Triggers

Outbound Interface Trigger Rules

Outbound Interface Trigger Monitor

Trigger Cleanup

Processing Delete Triggers

Outbound Interface Message Builder

Outbound Interface Queues

Generic Download Message Formatting

Point of Sale Upload Processing

Generic Order Interface

Inventory Transaction Upload

Point of Sale Bi-Directional Processing

Customer Inquiry (Search) Integration

Customer History Integration

Inventory Inquiry Integration

Merchandise Locator and Store Fulfillment Integration

Point of Sale Integration Setup

System Control Values

Menu Options

Periodic Functions

Point of Sale Download Processing

Overview: CWDirect allows you to capture the following information to download to a point of sale system:

• item/SKUs; see Generic Item Download API

• vendors; see Generic Vendor Download API

• invoices; see Generic Invoice Download API

• inventory: see Generic Inventory Download API

Note: See Merchandise Locator and Store Fulfillment Integration for information on the store fulfillment option, which includes logic similar to the generic download API’s.

Flowchart: This flowchart explains how information is downloaded from CWDirect to a point of sale system.

What Data Can I Download?

Jobs in the Working with Integration Layer Processes (IJCT) menu option control what information is downloaded to another system:

Item Outbound job: generates an item download XML message for each trigger in the IL Outbound file with a File code of SKU.

Vendor Outbound job: generates a vendor download XML message for each trigger in the IL Outbound file with a File code of VND.

Invoice Outbound job: generates an invoice download XML message for each trigger in the IL Outbound file with a File code of IHD.

Inventory Outbound job: generates an inventory download XML message for each trigger in the IL Outbound file with a File code of ITW.

When are Download Triggers Created?

System control values control the type of data downloaded to a point of sale system.

• If the system control value is set to Y, certain actions in CWDirect triggers the system to create triggers in the IL Outbound Trigger file. The IL Outbound Trigger file acts as a “to do” list for the data that requires download.

• If the system control value is set to N, the system does not create triggers in the IL Outbound Trigger file.

You can also create triggers for existing data in your company using the Generating Outbound Interface Triggers (GOIT) menu option.

System Control Value

Description

Create Generic Item Download Trigger Records (I15)

Enter Y in this field to create item download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Vendor Download Trigger Records (I16)

Enter Y in this field to create vendor download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Invoice Download Trigger Records (I17)

Enter Y in this field to create invoice download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Inventory Download Triggers (I32)

Enter Y in this field to create inventory download triggers in the IL Outbound Trigger file to download to the point of sale system.

Identifying Download Triggers

Each trigger in the IL Outbound Trigger file contains a:

File code: indicating the type of information to download and which IL process job processes the trigger.

Key: indicating the specific record to download.

Capture type: indicating the type of activity performed against the record:

A = the record was created.

C = the record was maintained. Note: The system removes any duplicate change triggers; see Trigger Cleanup.

D = the record was deleted. Note: The system processes delete triggers immediately; see Processing Delete Triggers.

You can review point of sale download triggers in the Working with Outbound Interface Transactions (WOIT) menu option.

File code

Created when

Refers to file(s)

Key

IL Process job

SKU

An item/SKU is added, updated or deleted; see Item Outbound Trigger Activities

Item

SKU

11122222222222233333333333333 where:

111 is the company code

222222222222 is the item number

33333333333333 is the SKU code

Item Outbound

IHD

An invoice is created or updated; see Invoice Outbound Trigger Activities

Invoice Header

Order Header

111222222233333333 where:

111 is the company code

2222222 is the order number

33333333 is the invoice number

Invoice Outbound

VND

A vendor is added, updated or deleted; see Vendor Outbound Trigger Activities

Vendor

1112222222 where:

111 is the company code

2222222 is the vendor code

Vendor Outbound

ITW

Item/SKU available quantity changes; see Creating Inventory Download Triggers Interactively Based on Changes to Availability

Item

SKU

Warehouse

Item Warehouse

Item UPC

11122222222222233333333333333 where:

111 is the company code

222222222222 is the item number

33333333333333 is the SKU code

Inventory Outbound

Outbound Interface Trigger Rules

Outbound interface trigger rules define the criteria a record must meet in order for the system to create an IL outbound trigger. For each IL Process outbound job, you can define trigger rules for certain files. For example, you can define trigger rules for the Item file and SKU file for the Item Outbound job. If you define more than one criterion, the record must meet all of the criteria defined in order to generate a trigger.

See Defining Outbound Interface Trigger Rules for more information on setting up trigger rules for each IL Process job.

For IL Process job:

you can create trigger rules for:

Example:

Item Outbound

Item file

SKU file

You can specify to only create item download triggers for company 555, items that are SKU’ed and whose SKUs are located in warehouse 20. To do this:

• in the Item file trigger rules, enter EQ and 555 next to the Company trigger field and EQ and ’Y’ next to the Allow SKU’s trigger field.

• In the SKU file trigger rules, enter EQ and 20 next to the Warehouse trigger field.

See Item Outbound Trigger Rules.

Invoice Outbound

Invoice Header file

Order Header file

You can specify to only create invoice download triggers for debit invoices and not credit invoices. To do this, enter EQ and I (invoice) next to the Invoice type trigger field.

See Invoice Outbound Trigger Rules.

Vendor Outbound

Vendor file

You can specify to only create vendor download triggers for companies 27 and 555 and vendor 202. To do this, enter LIST and 27 555 next to the Company trigger field and EQ and 202 next to the Vendor # trigger field.

See Vendor Outbound Trigger Rules.

Inventory Outbound

Item

SKU

Warehouse

Item Warehouse

Item UPC

You can specify not to create inventory download triggers for non-inventory items. To do this, enter NE and ’Y’ next to the Non-inventory trigger field.

Outbound Interface Trigger Monitor

When active, each IL Outbound job monitors the IL Outbound Trigger file for unprocessed triggers at defined intervals, based on the value defined in the Outbound delay time field.

Each IL Outbound job:

• looks for triggers with the appropriate File code and a Status of ready (R).

• the Item Outbound job looks for File code SKU.

• the Invoice Outbound job looks for File code IHD.

• the Vendor Outbound job looks for File code VND.

• the Inventory Outbound job looks for File code ITW.

• sends each trigger to the IL Outbound message builder to generate an XML message.

Trigger Cleanup

Before processing triggers in the IL Outbound file, the system looks for duplicate unprocessed download triggers with the same Capture type for the same File code and Key. If duplicate triggers exist, the system removes the duplicates, leaving only the most recent trigger for the Capture type, File code and Key.

Example: The following change triggers exist in the IL Outbound file.

File

Status

Key

Results

SKU

unprocessed

555AB105004 RED GRLS SMLL

The system deletes 2 of these triggers, leaving only one trigger to process.

SKU

unprocessed

555AB105004 RED GRLS SMLL

SKU

unprocessed

555AB105004 RED GRLS SMLL

Note: If both an add and change trigger exists for the same File code and Key, the system generates a download message for both triggers.

Processing Delete Triggers

The system processes triggers in the IL Outbound Trigger file with a delete (D) Capture type immediately, regardless if the IL Outbound job is active or inactive.

Note: Since you cannot delete an invoice, the system never creates a delete download trigger for an invoice.

If one or more unprocessed triggers exist in the IL Outbound Trigger file for the same File code and Key, the system:

• if one of the matching triggers is an add (A) Capture type: does not create the delete trigger and removes any other matching triggers (add and change). Since the point of sale system never received the add trigger, you do not want to send a delete trigger or any other triggers.

Note: However, if an Original processed date and time exist for the add trigger (indicating the trigger was previously downloaded and then reset to reprocess again), the system generates a download message for the delete trigger and removes any other matching triggers (add and change). Since the point of sale system previously received the add trigger, you want to send a delete notification to the system.

• if the matching trigger is a change (C) Capture type: generates a download message for the delete trigger and removes any other matching change triggers. Since the point of sale system is receiving a delete trigger, you do not need to send any change triggers.

Outbound Interface Message Builder

For each trigger, the IL Outbound message builder:

• determines what information requires download. The system uses the Key field for the trigger to determine which records require download.

• The Key field for item download triggers consists of company + item number + SKU code. The SKU code is included only if the item is a SKU’ed item. For example the Key 555AB100112 BLUE GRLS SMLL indicates the item and SKU information is located in company 555 for item number AB100112 and SKU code BLUE GRLS SMLL.

• The Key field for invoice download triggers consists of company + order number + invoice number. For example the Key 55500049680000583 indicates the invoice information is located in company 555 for order number 4968 and invoice number 583.

• The Key field for vendor download triggers consists of company + vendor number. For example the Key 5550002003 indicates the vendor information is located in company 555 for vendor number 2003.

• The Key field for inventory download triggers consists of company + item number + SKU code. The SKU code is included only if the item is a SKU’ed item. See the description of the item download trigger key above.

• determines which elements to include in the download message, based on XML inclusion rules. You can define XML inclusion rules for each IL Outbound job at the Outbound Interface XML Inclusion Screen. XML inclusion defines which elements to include in a download message.

• If the element is included, that element and its parents are included in the generated download XML message.

• If the element is excluded, that element and its children are excluded from the generated download message.

• sends the generated download message to the queues defined for the Outbound job that are active.

For more information:

• item download: Item Outbound XML Inclusion

• vendor download: Vendor Outbound XML Inclusion

• invoice download: Invoice Outbound XML Inclusion

• inventory download: Inventory Download XML Inclusion

Outbound Interface Queues

Once the Outbound message builder determines which elements to include in the download XML message, the IL Outbound job sends each download XML message to the appropriate queues whose Enabled field is set to Y. If the queue is not enabled, the system does not send the download message to that queue.

You can define outbound queues for each IL Outbound job at the Work with Integration Layer Process Queues Screen.

For example, you can define a separate queue to send the download message to your:

• retail store

• warehouse management system

Generic Download Message Formatting

For each download message:

• numeric fields are not zero-filled, for example 000001 displays as 1.

• blank spaces are removed from the beginning and end of alphanumeric fields.

• decimal places for numeric fields are implied.

• empty elements are not included; for example, if an item/SKU does not have a vendor item defined, the system does not send the VendorItem element or its children (VITPriceBreak, VITAdditionalCharge, VITNote, and VITUserField) in the item download message.

• empty attributes are not included; for example, if the Kit type field for an item/SKU is blank, the system does not send the Kit_type attribute in the item download message.

For more information:

Item Download XML Message (CWITEMOUT)

Vendor Download XML Message (CWVENDOROUT)

Invoice Download XML Message (CWINVOICEOUT)

Inventory Download XML Message (CWInventoryDownload)

Point of Sale Upload Processing

The following uploads allow you to bring information into CWDirect from another system.

Generic Order Interface

Overview: Use the generic order interface to send orders into CWDirect via CWIntegrate. You can use this interface for any type of order, including retail point of sale transactions, orders received through a remote call center, and orders taken at a web storefront.

Options: Your options through the generic order interface include:

response: generating a detailed response, a simple response, or no response

separate payment message: sending the payment information separately or in the same message as the rest of the order information

batching: batched or non-batched orders

deposit and refund suppression: suppressing the order from deposit processing and refund generation

returns: entering a return by specifying a negative order quantity

customer updates: updating an existing sold-to, or creates a new sold-to, bill-to, individual, or permanent ship-to customer

For more information: See Generic Order Interface (Order API).

Inventory Transaction Upload

Overview: You can use the Generic Inventory Transaction Upload to synchronize inventory levels in CWDirect with another system. For example, you can upload counts in retail stores, as maintained in CWStore. To do so, you can identify each store as a warehouse in CWDirect. The inventory counts of each store are then available for review through a menu option such as Using Inventory Inquiry (DINI) or Inquiring into Item Availability (DIAV).

You can use the upload for any type of inventory transaction that is also available in Working with Inventory Transactions in Batch Mode (WITB) or Working with Inventory Transactions in Immediate Mode (WITI); for example, you can upload transfers, adjustments, returns to vendor, and resets of on-hand quantity. System transactions such as shipments or purchase order receipts are not allowed. The upload performs the same edits and validations as in batch or interactive inventory transactions.

For more information: See Generic Inventory Transaction Upload.

Other inventory integrations: In addition to the inventory transaction upload, you can use the:

Generic Inventory Download API to download current inventory information, such as availability and warehouses where an item/SKU is stored, to an external system, such as Locate. You can schedule the download periodically, such as once a day; the system also creates trigger records based on changes to availability levels.

Generic Inventory Inquiry API to respond to requests for inventory information from an external system, such as Locate. Through this API, the system responds to requests “behind the scenes,” and the activity is not visible on any screen.

Merchandise Locator and Store Fulfillment API through .NET to request inventory information to an external system, such as Locate, based on stores’ proximity to the customer’s geographic address. This integration is essentially the reverse of the generic inventory inquiry API, in that the system is generating requests for inventory information rather than responding to them. Optionally, you can also generate a store pickup request to a store location if the customer prefers to pick up the item rather than waiting for it to ship, or a store shipment request to have the store location ship out the item directly.

Point of Sale Bi-Directional Processing

The following process allows you to receive a request from an external system, such as CWStore or Locate, and generate a response.

Customer Inquiry (Search) Integration

Purpose: Use the generic customer inquiry integration to enable an external system to find a customer based on standard search criteria, such as alternate customer number, postal code, last name, phone number, or email address. The information in the response from CWDirect includes the customer number as well as name and address.

This search function has options similar to the Select Customer Sold To Screen, and produces similar results. When you enter search criteria at the Select Customer Sold To Screen, you advance to a subsequent screen listing customers in alphanumeric order based on values that match your search criteria. Similarly, when the system receives a customer inquiry request, it responds with a message listing customers in alphanumeric order based on values that match the search criteria from the request.

You can use this integration together with the customer history integration described below so that, once CWDirect has provided the matching customer(s) from the Customer Sold To file, the external system can then send a customer history request for a selected customer.

For more information: See Generic Customer Inquiry (Search) API.

Customer History Integration

Purpose: Use the generic customer history integration to provide a customer’s order history to an external system, such as CWStore, and detailed information about a single order.

The external system can request information using the CWDirect customer number or order number. It can also use its own numbers if they map to the alternate customer number or alternate (web) order number in CWDirect.

When the request provides information on the customer, CWDirect produces a customer history message in response. When the request provides information on the order, CWDirect produces a detailed or summary order message. The request can include the CWDirect customer or order numbers, or the external system can use its own numbers if they map to the alternate customer number or alternate (web) order number in CWDirect.

For more information: See Generic Customer History API.

Inventory Inquiry Integration

Purpose: Use the generic inventory inquiry integration to provide current inventory information for items upon request. For example, Locate uses this integration to send up-to-date inventory information when it is requested by an external system, such as CWStore. See Inventory Transaction Upload for a comparison between this integration and other generic inventory integrations.

For more information: See Generic Inventory Inquiry API.

Merchandise Locator and Store Fulfillment Integration

Purpose: Use merchandise locator and store fulfillment integration to receive availability information for an item from external warehouses and stores within a geographical area, and to send a request for a store pickup or shipment to a store. While the merchandise locator option is not part of the cw_store POS (point of sale) integration site, it is required in order to generate store pickup or shipment requests to store locations in CWStore.

For more information: See Merchandise Locator and Store Fulfillment API through .NET.

Point of Sale Integration Setup

You must perform the necessary CWDirect setup and processing to use the point of sale Integration.

Information requiring setup includes:

System Control Values

Menu Options

Periodic Functions

For more information: See the Generic Order Interface (Order API), the Generic Inventory Transaction Upload, and the Merchandise Locator and Store Fulfillment API through .NET for information on setup related to these interfaces.

System Control Values

System Control Value

Description

Create Generic Item Download Trigger Records (I15)

Enter Y in this field to create item download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Vendor Download Trigger Records (I16)

Enter Y in this field to create vendor download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Invoice Download Trigger Records (I17)

Enter Y in this field to create invoice download triggers in the IL Outbound Trigger file to download to the point of sale system.

Create Generic Inventory Download Triggers (I32)

Enter Y in this field to create inventory download triggers in the IL Outbound Trigger file to download to the point of sale system.

Outbound Interface Trigger File Purge Days (I14)

Enter the number of days to retain records in the IL Outbound Trigger file before purging them. Run the PURGIJT periodic function (program name ILR0026) to delete any records if: Last processed date is less than the current system date by the number of purge days and Status is X.

Example: Today is 2/06, and you have set this value to 1. Any record whose Last processed date is 2/05 or earlier is purged.

Menu Options

Menu Option

Description

Generating Outbound Interface Triggers (GOIT)

Allows you to create an IL outbound trigger record for each item/SKU, vendor, and/or invoice in your company. Run this process to initially send your data to the point of sale system.

Working with Outbound Interface Transactions (WOIT)

Allows you to review, delete, or resend IL outbound trigger records.

Working with Integration Layer Processes (IJCT)

Use this option to create the process queues and required WebSphereMQ queues and queue managers to send and receive messages for each integration. Also, define trigger rules, XML inclusion rules, and queues for the following IL Process jobs related to point of sale:

Item Outbound: processes triggers with a File code of SKU and generates an item download message.

Invoice Outbound: processes triggers with a File code of IHD and generates an invoice download message.

Vendor Outbound: processes triggers with a File code of VND and generates a vendor download message.

Inventory Outbound: processes triggers with a File code of ITW and generates an inventory download message.

Periodic Functions

Periodic Function

Description

Purge IJCT Download (program name ILR0026)

Run this periodic function to purge processed IL outbound triggers, based on the days defined in the Outbound Interface Trigger File Purge Days (I14) system control value: Capture date is less than the current system date by the number of purge days and Status is X

This periodic function also purges records in the Store Fulfillment Files (.NET) if they are older than the Store Pickup/Shipment Request Purge Days (I43).

Start All IJCT Jobs (program name MSX1288)

Run this periodic function to start all IL Process jobs in the Working with Integration Layer Processes (IJCT) menu option.

Stop All IJCT Jobs (program name MSX1289)

Run this periodic function to end all IL Process jobs in the Working with Integration Layer Processes (IJCT) menu option.

ST01_01 CWDirect 18.0 August 2015 OTN