As of January 2023, Optimizely allows partners and the implementation community to build ERP connectors to increase the number of ERP connectors and enhancements available to customers. Optimizely continues to offer existing ERP connectors in their current state, and partners have access to the connector code for future enhancements.
This article outlines the integration elements included in the Optimizely Configured Commerce connector for Epicor Prophet 21 ERP. It identifies and defines the default integration points, along with the necessary details, including the field mapping and high-level technical processes. While these integration points and jobs cover a majority of the integration requirements with Prophet 21, there may be customer-specific requirements that you need to incorporate into a customer's Configured Commerce implementation.
Optimizely's Prophet 21 connector uses standard integration mechanisms between Prophet 21 and ISC. This document focuses on Optimizely customers implementing a version of Configured Commerce and integrating it with Epicor Prophet 21, with implementation assistance from Optimizely partners.
Optimizely based this integration on the following:
- Versions Supported:2017.2, 2018.1
- On-Premises Implementation You need to install the Optimizely Windows Integration Service application on a local Windows machine to orchestrate the integrations
- Payment Gateways: VantivExpress (Element)
- Tax Calculators:Prophet 21 uses GetOrderSummary
Complete the following pre-requisites before attempting this integration:
- Epicor Prophet 21 APIs must be in place and accessible to both a pilot/test instance and the production instance
- The Prophet 21 APIs must be accessible from the internet over port 443
- The Configured Commerce integration agent (Windows Integration Service) must be up and running in the customer's environment and have direct access to the databases
- A direct connection to the SQL Server databases for refreshes
Many portions of this document refer to tables within Prophet 21.See Prophet 21 documentation for definitions of those tables and potential values.
Configured Commerce relies heavily on the Pricing and Availability APIs, so Optimizely assumes the Prophet 21 APIs are responsive. Any issues with the speed of the APIs may require an ERP expert to assist, as Optimizely does not have the resources or expertise to troubleshoot standard ERP APIs.
Overview of integration jobs
The integration tasks between Prophet 21 ERP and Configured Commerce are separated by the source and destination of the datasets and the mechanism used to implement the integration. The three types of integration tasks are designated as Refresh (Pull data in batch directly from the database), Submit (Push a transaction) or RealTime (direct calls to the APIs).
Refresh (Pull): Configured Commerce relies on Prophet 21 to provide product, customer, order history, and invoice data. Refresh tasks are typically run at scheduled intervals to synchronize new or updated data with ISC. Direct calls to the Prophet 21 database are used for refreshes.
Direct API Calls (Real-Time): Direct calls to the exposed Prophet 21 API are made for things like the A/R Summary, inventory, and pricing.
Submit (Push): Configured Commerce relies on the Epicor Prophet 21 APIs for functions like order submissions that require data to be submitted to the ERP.
Refreshes use the Field Map capability of the Configured Commerce integration architecture. When we construct a connector, we create a series of job definitions that encode these mapping rules for refresh jobs. The mapping documents below call out the standard connector logic and it is up to the implementation partner or customer to adjust as needed for their particular project needs.
For example, by default, the product length/width/height are not visible in the Admin Console, and therefore are not available in the Field Mapper. The Prophet 21 connector query will retrieve this data from the ERP, but it will not be in the standard field map tool to populate the Configured Commerce database. If the field is configured to be available via the application dictionary, they must be added to the field mapper in order for the data to flow into ISC.
For each entity being refreshed, there must be a strategy on how to handle records that are not in the dataset retrieved from the source tables. The Configured Commerce options are to Ignore, Delete or Set a field such as IsActive or DeactivateOn. These strategies will depend on several factors, including:
- Is the data being snapshotted? (The whole table is being retrieved)
- Are we processing the data as delta datasets? (Net changes only)
- Are there child collection considerations? (Records that relate to a parent, such as invoice history lines being children to the invoice history header table)
- Are we retrieving the data in separate queries? (Such as Customer Bill-Tos and Ship-Tos.)
Each refresh will define the standard deletion strategy being used.
The following is the list of standard APIs used for integration we will use the applicable versions based on the Prophet 21 version being integrated:
- Pricing: GetItemPrice
- Inventory: GetItemPrice
- A/R Aging: GetMyAccountOpenAR
- Order Submit: OrderImport
- Tax Calculation: GetOrderSummary