• Integration - EFI Pace via Embedded Services

Order Data Integration

The purpose of this document is to outline the structural requirements to successfully transfer order and customer information from Aleyant Pressero to a given instance of EFI Pace. 

Integration Foundation

  • This integration facilitates communication between the two platforms.
  • Pressero retrieves order information and generates Job, Job parts, Contacts and Shipment entries in the EFI Pace system.
  • In the event of a network error, Pressero automatically retries the last synchronization action.

Integration Requirements

  • All critical customer and order data are transferred to EFI Pace via API.
  • Items will be reviewed for approval status state; any items of an order with Request Denied will not be included in the order in EFI Pace.
  • The order will be created in EFI Pace with all critical order, contact and customer information as received from Pressero.
  • All order item information and production files (if available) will transfer to an EFI Pace order with parts being created to match each item of the Pressero order immediately after being checked out in Pressero.
  • Kits consist of a parent item containing child products with individual item totals (quantity and cost)
o   Child items in a kit will show up as individual parts in the EFI Pace order
o   Child items in a kit (static and/or inventory items) will list the associated quantity and cost
o   Child items in a kit with a quantity of zero will not be entered into the order in EFI Pace

General Workflow

Step description
Step result
Step 1: Process trigger
 
Integration is based on Pressero webhooks. One of these webhooks should occur:
· Order Placed
· Order Item Approved
· Order Item Denied
 
1. Pressero sends webhook notification to specified URL.
2. Pressero registers notification and creates a process for specified dataflow.
Step 2: Parse incoming information
 
Pressero parses incoming message and calls Pressero API to extract additional data.
 
Pressero fills the following information:
· General order information
· Customer information
· Order items information:
o   General order item information
o   Product information
o   Shipping information
Pressero generates special internal structure with order information.
Step 3: Define customer information
 
Search for customer and contacts (check more details in Customer Mapping Details section below)
Pressero identifies customer and contacts. If they do not exist and “Create Customer” is set to “Yes,” then Pressero creates them automatically. If they do not exist and “Create Customer” is set to “No,” then process stops with error.
Step 4: Create Job
· Pressero creates Job
· Pressero updates Job properties to override template default values
EFI Pace uses templates to define default values for jobs. These values should be overridden with data from Pressero after creation (check Job Mapping section below for more details).
Step 5: Create Job Part
· Pressero creates Job Part
· Pressero updates Job Part properties to override template default values
EFI Pace uses templates to define default values for job parts and shipments. These values should be overridden with data from Pressero after creation (check Job Part Mapping section below for more details).
Step 6: Create Shipments
· Pressero creates shipment entry for each unique shipment address
 
Pressero defines shipment contact and cartons (check Shipment Mapping section below for more details).

 

Adding EFI Pace as an Embedded Service; Integration Parameters

To add EFI Pace as an Embedded Service

After Aleyant Support enables EFI Pace, it is available to be selected as an embedded service in Admin.  

  • Go to Preferences > Embedded Services and click + Add New
  • Select EFI Pace in the Provider drop-down. 
  • Enter the integration parameters. 

 

Integration Parameters

  • EFI Pace URL: the URL for EFI Pace instance (for example: http://paceinstance.com). Only root domain name needed.
  • Login: the user name which will be used for authorization in EFI Pace API.
  • Password: the password which will be used for authorization in EFI Pace API.
  • Alert emails: list of emails, separated by ‘;’ which will be used for notifications and errors.
  • Create Customer: “Y/N” parameter. If set to “Y”, Automation Hub will create new customer automatically (new contacts will be created anyway).
  • Customer Service Representative: Default value for customer field “Csr”.
  • Sales Person: default value for customer field “Sales Person”.
  • Sales Category: default value for customer field “Sales Category”.
  • Sales Tax: default value for customer field “Sales Tax”.
  • Taxable Code: default value for customer field “Taxable Code”.
  • List of custom holidays: list of dates YYYY-MM-DD separated by | (pipe character). Example: 2021-10-28|2022-07-18
  • Promise Date: the number of calendar days to add to the order date so it can be used as the Promise Date. If no value is assigned and the field is left blank, the system will default to 3 once saved. Promise Date field is also available at the Site level. The setting at the Site level overrides the setting at the Preferences level. 
  • Job Type: the default Job Type; if empty, 1 (Printing) is used. Currently the Job Type value is automatically set to “1”, which means “Printing”. The field defaults to Printing (value of 1) when no value exists for that field. Job Type field with a list of predefined types is available at the Site level for selection. The setting at the Site level overrides the setting at the Preferences level. 
  • Job Description: the template for the job description. If empty, the default value '{OrderNumber}-{SiteName}' will be used. Pressero supports two substitution variables: {OrderNumber} will be replaced with the Pressero Order Number and {SiteName} will be replaced with the current site name. The Job Description field available at site level allows the value to be configurable using templated text. The template will support two variables that would represent the Order Number and the Site Name. The setting at the Site level overrides the setting at the Preferences level.
  • Enable Carton Contents: If enabled, Pressero will generate a Shipment per shipment group (as shown on Pressero's Shipping page). Items will be grouped by Shipping Address and Shipping Method or be placed individually in a carton if the "Will Ship Separately" option is selected for the product. 
    • If "Enable Carton Contents" is disabled (default), Pressero will create one carton per shipment with the default content. 
    • If "Enable Carton Contents" is enabled, then Pressero generates carton contents based on the Carton Content Type assigned to a product (see example screens below).
 
 
 
 
  • Accounts: mapping parameter to handle shipment details. See more in Account Mapping Parameter section below.  
  • Site Mapping Details: mapping parameter to handle defaults based on Pressero’s site name. See more in Site Mapping Parameters section below.

To Enable Integration for a Site

  • Go to Site > Embedded Services.
  • Locate EFI Pace in the list and click the "Enable Service Integration" checkbox. 
  • Click "Save." 
 

Customer Mapping Details

Customer Identification scenario:
  • If Pressero Storefront “Integration ID” is not empty, then this value is used for “Customer ID” in EFI Pace.
  • If Pressero Storefront “Integration ID” is empty and parameter “Default MisID” is not null, then this value is used for “Customer ID” in EFI Pace.
  • If Pressero Storefront “Integration ID” is not set, the plug-in searches all customers by Email and matches them with the customer’s Business name. When a customer is found in Pace, the plug-in will create related contacts and in this case the plug-in will use Shipping Address to identify the correct contact for the customer.
  • Pressero checks “Customer ID” in EFI Pace (Call SOAPFindRequest API).
  • If “Customer ID” is not valid (not found in external system or inactive):
o   specified value will be ignored
o   notify user/users specified in parameter “Email for alerts” about invalid “Customer ID” in settings
  • If “Customer ID” is empty, then Pressero attempts to identify customer with contact information:
  • Try to identify contact by email EFI Pace (Call SOAPFindRequest API)
  • If contact is found and it is unique, then extract “Customer ID” (Call SOAPReadRequest API)
  • If several contacts are found, then check that all of them match to the same customer.
  • If all contacts relate to the same customer, then extract “Customer ID” (Call SOAPReadRequest API)
  • If contacts relate to different customers, then raise error and notify user/users specified in Parameter “Email for alerts” that customer could not be identified
  • If no contacts are found and parameter “Create Customer” is set to “No”, then raise error and notify user/users specified in Parameter “Email for alerts” that customer could not be identified
  • If no contacts are found and parameter “Create Customer” is set to “Yes”, then create new customer and contact (check Full Mapping below)
  • Identify contacts for each unique shipment location
  • Key contain: Email, all mapped address segments and phone
  • If contact is not found and parameter “Create Customer” is set to “No”, then raise error and notify user/users specified in Parameter “Email for alerts” that customer could not be identified
  • If contact is not found and parameter “Create Customer” is set to “Yes” then create contact (check Full Mapping below)

Customer and Contact Mapping Details

EFI Pace field name
Source value
Customer Type
Constant: 1 (Customer)
Customer
Pressero’s Site User > Address Book > Business. If empty, then Pressero’s Site User > First Name + Middle Name + Last Name
Contact First Name
Pressero’s Site User > First Name
Contact Last Name
Pressero’s Site User > Last Name
Customer Email
Pressero’s Site User > Email
Phone
Pressero’s Site User > Telephone or Pressero’s Site User > Cell Phone
Date Setup
Constant: Current date
Contact Title
Pressero’s Site User > Title
Address1
Pressero’s Site User > Address Book > Address1
Address2
Pressero’s Site User > Address Book > Address2
Address3
Pressero’s Site User > Address Book > Address3
City
Pressero’s Site User > Address Book > City
State
Pressero’s Site User > Address Book > State
Zip
Pressero’s Site User > Address Book > Zip
Sales Person
Constant: Parameter “Sales Person”
Csr
Constant: Parameter “Customer service representative”
Sales Tax
Constant: Parameter “Sales Tax”
Taxable Code
Constant: Parameter “Taxable Code”
Sales Category
Constant: Parameter “Sales Category”
 

Job Mapping Details

EFI Pace field name
Source value
Customer
Value from step 3
Description
Pressero’s Order Number + Pressero’s Site name
Job Type
Constant: 1 (Printing Job)
Contact First Name
Pressero’s Site User > First Name
Contact Last Name
Pressero’s Site User > Last Name
PO Number
Pressero’s PO # or Pressero’s Order Number
Date Setup
Constant: Current date
Contact
Value from step 3
Status
"adminStatus" field from mapping parameter “Site mapping details”
Scheduled Ship and Promise
Pressero’s Requested Ship Date. If empty Constant: current date + 3 days
Original Quoted Price
Order Total based on field "includeTaxAndShipping" from mapping parameter “Site mapping details”; if parameter is set to “true”, then Pressero will include in price shipment cost.
Amount To Invoice
Order Total based on field "includeTaxAndShipping" from mapping parameter “Site mapping details”; if parameter is set to “true”, then Pressero will include shipment cost in price.
Template code
Pressero’s Product > Integration ID
Additional Description
Fill value based on template code and field "setUserToDescription" from mapping parameter “Site mapping details”
If “setUserToDescription” is set to true, then fill description with Pressero’s site User > First Name + Last Name; otherwise, if template code is not empty, then fill description with Pressero’s Order notes.
If template code is empty, then fill deception with Product name, Price, Shipping cost, Tax, Quantity.
 

Job Part Mapping Details

EFI Pace field name
Source value
Customer
Value from step 3
Description
Pressero’s Order Item Identifier + product name
Job Type
Pressero’s Product attribute with name “JobType” or Constant “1”
Date Setup
Constant: Current date
Contact
Value from step 3
Status
"adminStatus" field from mapping parameter “Site mapping details”
Freight Amount
Pressero’s order item shipment cost (calculated, based on total items in order)
Original Quoted Price
Order Item Total based on field "includeTaxAndShipping" from mapping parameter “Site mapping details”; if parameter set to “true”, then Pressero will include in price shipment cost.
Quantity Ordered
Pressero’s Order item quantity
Template code
Pressero’s Product > Integration ID
Additional Description
Pressero’s Order pricing parameters
Materials
Fill value based on field "addMaterialInformation" from mapping parameter “Site mapping details”. If “addMaterialInformation” is set to true, then fill description with Pressero’s Product attribute “materialID”.
Materials Planned quantity
Pressero’s Order item quantity
 

Shipment Mapping Details

EFI Pace field name
Source value
Contact First Name
Pressero’s Order Item Shipment Address > First Name
Contact Last Name
Pressero’s Order Item Shipment Address > Last Name
Customer Email
Pressero’s Order Item Shipment Address > Email
Phone
Pressero’s Order Item Shipment Address > Telephone or Pressero’s Order Item Shipment Address > Cell Phone
Contact Title
Pressero’s Order Item Shipment Address > Title
Address1
Pressero’s Order Item Shipment Address > Address Book > Address1
Address2
Pressero’s Order Item Shipment Address > Address Book > Address2
Address3
Pressero’s Order Item Shipment Address > Address Book > Address3
City
Pressero’s Order Item Shipment Address > Address Book > City
State
Pressero’s Order Item Shipment Address > Address Book > State
Zip
Pressero’s Order Item Shipment Address > Address Book > Zip
Number of cartons
Constant: 1
Planned quantity
Total quantity of all order items which is related to current shipment address
Carton Quantity
Total quantity of all order items which is related to current shipment address
Ship Via
Fill value based on field "ship via" from mapping parameter “Accounts”. More details Account Mapping Parameters section below.
Account Number
Fill value based on field "account" from mapping parameter “Accounts”. More details Account Mapping Parameters section below.
Charges
If Account Number is not empty, then Constant “Third Party/Ship Bill To”; otherwise empty.
 

Account Mapping Parameters

The parameter is a JSON array, which contains “from rule” objects. Each object contains:
1. “ship_via” – value which will be used for Ship Via filed in EFI Pace
2. “account” – value which will be used for Account Number filed in EFI Pace
3. "source_site" – if filled, rule applied only to orders from specific site
4. “source_address” – if filled, rule applied only to order item with shipping address matching defined address
5. “priority”: 100 – highest rule priority. Property used for sorting priority. The first match will be used.
6. “rule_type” – Pressero supports three types of rules:
a. DefaultMapping – default values for “ship_via” and “account” for some specific site.
b. ShipmentMethodMapping – if “source_method” equals to “MatchByName”, then ship_via will be calculated based on Shipping Method name from Pressero, otherwise value from “ship_via” will be used.
c. ShipmentAddressMapping – if shipment address matches values from “source_address” field, then “ship_via” and “account” values used.
Example:
[  
   {  
      "rule_type":"ShipmentMethodMapping",
      "priority":5,
      "source_method":"MatchByName"
   },
   {  
      "rule_type":"ShipmentMethodMapping",
      "priority":10,
      "source_method":"Customer Pickup",
      "ship_via":"1"
   },
   {  
      "rule_type":"DefaultMapping",
      "priority":50,
      "source_site":"Some Site",
      "ship_via":"2",
      "account":"XXX123"
   },
   {  
      "rule_type":"ShipmentAddressMapping",
      "priority":100,
      "source_address":[  
         "Address1",
         "Address2",
         "City",
         "State code",
         "Postal code"
      ],
      "ship_via":"3",
      "account":" XXX123"
   }
]

Site Mapping Parameters

The parameter is a JSON array, which contains “from rule” objects. Each object contains:
1. “siteName” – site to which particular rule should be applied; if value is equal to “DefaultSiteConfiguration”, this rule is applied to all sites that does not contain their specific rule.
2. “adminStatus” – value Job and Job Part state should be a valid state code. Default is “0” (New)
3. " includeTaxAndShipping " – true/false value; if true, tax and shipping will be included in Job/Job Part price and total.
4. “addMaterialInformation” – true/false value; if true, Material Information will be added to Job Part (Product must contain “materialID” attribute).
5. “setUserToDescription” – true/false value; if true, site user first and last names will be set to order’s description (all other information will be overridden).
 
Example:
[  
   {  
      "siteName":"DefaultSiteConfiguration",
      "adminStatus":"O",
      "includeTaxAndShipping":true,
      "addMaterialInformation":false,
      "setUserToDescription":false
   },
   {  
      "siteName":"Some Site name",
      "adminStatus":"a",
      "includeTaxAndShipping":true,
      "addMaterialInformation":true,
      "setUserToDescription":true
   }
]
 

Technical Specifications

Pressero uses SOAP API to communicate with EFI Pace; it needs direct access to both systems.

Troubleshooting

Each order contains an “Embedded Services” tab. This tab displays the integration status, and in case of an error, trace messages in the log. This is an example of a failed process:

In case of an error, the user can push order manually. Click the “Push Order” button.

This is an example of a successful process: