6 Outbound Integration
This chapter provides information about the following outbound integration processes:
Integration with Customer Order System
Integration with Manifesting Systems
Integration with Customer Order System
CustomerOrderAddressService
When shipping to customer during the fulfillment order workflow, EICS retrieves the address for the order delivery from an external order managements system. When viewing delivery address information within the client application, it also retrieves it from an external system. The web service is defined to connect to an OrderManagementService.
Service Operation | Description |
---|---|
queryCustomerOrderAddress |
Retrieves detailed address information for the order and customer information passed to it. |
CustomerOrderService
This service connects to OrderManagementService to manage customer orders. It includes operations to create a customer order, query for customer orders, pickup/cancel items from a customer order and return items from customer orders.
Service Operation | Description |
---|---|
requestNewCustomerOrderId |
Requests new customer order Id. |
cancelNewCustomerOrderId |
Cancels the new customer order id. |
createCustomerOrder |
Creates customer order. |
queryCustomerOrder |
Queries the customer order present in the system. |
PickupCustomerOrderItems |
Pickup items from the customer order. |
ReturnCustomerOrderItems |
Returns items from the customer order. |
UpdateReceipt |
Updates the receipt of customer order. |
REST Service: Fulfillment Order Address (External)
This service must be implemented by an external system that will provide the customer address for a particular customer order. SIOCS does not store customer information and retrieves it from this exteranl endpoint just prior to shipping.
Order Address
This section describes the Order Address API. This API retrieve the address of the customer for a particular order.
Request Parameters
There are no request parameters.
The request body is application/json.
Details about the order and customer in order to retrieve the proper address.
Example Value
{
"customerOrderNo": "111222333",
"fulfillmentOrderNo": "444555666",
"storeId": 5000
}
Schema — FulfillmentOrderAddressCriticalExtIdo
Table 6-1 FulfillmentOrderAddressCriticalExtIdo— Object
Element Name | Required | Data Type/Example | Description |
---|---|---|---|
customerOrderNo |
NA |
string($text128) example: 111222333 |
The customer order number. |
fulfillmentOrderNo |
NA |
string($text128) example: 444555666 |
The fulfillment order number. |
storeId |
NA |
number($int10) example: 5000 |
The identifier of the store that will fulfill the order. |
Responses
This section describes the responses of the Order Address API.
Response Code: 200
The request has been successful.
The media type is application/json.
Example Value
[
{
"billingAddress1": "Box 110",
"billingAddress2": "Apartment Block 2534",
"billingAddress3": "4th Avenue North",
"billingCity": "Blaketon",
"billingState": "MN",
"billingCountryCode": "USA",
"billingCounty": "Bernard",
"billingCompanyName": "Holdings Consolidated",
"billingEmailAddress": "janice.smith@email.com",
"billingFirstName": "Janice",
"billingLastName": "Smith",
"billingPhoneNumber": "555-765-2452",
"billingPhoneticFirst": "jan-iss",
"billingPhoneticLast": "Smith",
"billingPostalCode": "55555",
"customerNumber": "A123B44",
"deliveryAddress1": "Box 110",
"deliveryAddress2": "Apartment Block 2534",
"deliveryAddress3": "4th Avenue North",
"deliveryCity": "Blaketon",
"deliveryState": "MN",
"deliveryCountryCode": "USA",
"deliveryCounty": "Bernard",
"deliveryPostalCode": "55555",
"deliveryCompanyName": "Holdings Consolidated",
"deliveryEmailAddress": "janice.smith@email.com",
"deliveryFirstName": "Janice",
"deliveryLastName": "Smith",
"deliveryPhoneNumber": "555-765-2452",
"deliveryPhoneticFirst": "jan-iss",
"deliveryPhoneticLast": "smith",
"deliveryPreferredName": "Jan"
}
]
Schema — FulfillmentOrderAddressExtIdo
Table 6-2 FulfillmentOrderAddressExtIdo— Object
Element Name | Required | Data Type/Example | Description |
---|---|---|---|
billingAddress1 |
NA |
string($text240) example: Box 110 |
The first billing address line. |
billingAddress2 |
NA |
string($text240) example: Apartment Block 2534 |
The second billing address line. |
billingAddress3 |
NA |
string($text240) example: 4th Avenue North |
The third billing address line. |
billingCity |
NA |
string($text120) example: Blaketon |
The billing address city name. |
billingState |
NA |
string($text3) example: MN |
The billing address state code. |
billingCountryCode |
NA |
string($text3) example: USA |
The billing address country code. |
billingCounty |
NA |
string($text250) example: Bernard |
The billing address county name. |
billingCompanyName |
NA |
string($text120) example: Holdings Consolidated |
The billing address company name. |
billingEmailAddress |
NA |
string($text100) example: janice.smith@email.com |
The billing contact email address. |
billingFirstName |
NA |
string($text120) example: Janice |
The billing contact first name. |
billingLastName |
NA |
string($text120) example: Smith |
The billing contact last name. |
billingPhoneNumber |
NA |
string($text20) example: 555-765-2452 |
The billing contact phone number. |
billingPhoneticFirst |
NA |
string($text120) example: jan-iss |
The billing contact phonetic spelling of first name. |
billingPhoneticLast |
NA |
string($text120) example: Smith |
The billing contact phonetic spell of last name. |
billingPostalCode |
NA |
string($text30) example: 55555 |
The billing address postal code. |
customerNumber |
NA |
string($text14) example: A123B44 |
The customer number of the customer who placed the order. |
deliveryAddress1 |
NA |
string($text240) example: Box 110 |
The first delivery address line. |
deliveryAddress2 |
NA |
string($text240) example: Apartment Block 2534 |
The second delivery address line. |
deliveryAddress3 |
NA |
string($text240) example: 4th Avenue North |
The third delivery address line. |
deliveryCity |
NA |
string($text120) example: Blaketon |
The delivery address city name. |
deliveryState |
NA |
string($text3) example: MN |
The delivery address state code. |
deliveryCountryCode |
NA |
string($text3) example: USA |
The delivery address country code. |
deliveryCounty |
NA |
string($text250) example: Bernard |
The delivery address county name. |
deliveryPostalCode |
NA |
string($text30) example: 55555 |
The delivery address postal code. |
deliveryCompanyName |
NA |
string($text120) example: Holdings Consolidated |
The company name at the delivery address. |
deliveryEmailAddress |
NA |
string($text100) example: janice.smith@email.com |
The email address of the delivery contact. |
deliveryFirstName |
NA |
string($text120) example: Janice |
The first name of the delivery contact. |
deliveryLastName |
NA |
string($text120) example: Smith |
The last name of the delivery contact. |
deliveryPhoneNumber |
NA |
string($text20) example: 555-765-2452 |
The phone number of the delivery contact. |
deliveryPhoneticFirst |
NA |
string($text120) example: jan-iss |
The phonetic spelling of the first name of the delivery contact. |
deliveryPhoneticLast |
NA |
string($text120) example: smith |
The phonetic spelling of the last name of the delivery contact. |
deliveryPreferredName |
NA |
string($text120) example: Jan |
The preferred name of the delivery contact. |
Integration with Manifesting Systems
In order for access to an external manifesting system to take place, the customer must first setup Carrier Type as "Third Party" and the Carrier Service (Manifest Type) must be Parcel (P). Configuration controls whether manifesting is done for a transfer to store, finisher, or warehouse. In addition, configuration controls manifesting for a return to vendor shipment or a customer order delivery.
Carrier services with manifest type of "O" (Other) and "H" (Home Fleet) do not go through the manifesting system. When Manifest Type is "O," EICS prompts the user to enter the carrier address where the shipment is to be sent for fulfillment. Manifest Type of "H" is within the company and therefore, does not prompt the user for an address.
Some carriers require weight, dimension, or both values to be sent in the manifest payload. If so, the carrier's service should have either the weight indicator or carton dimension indicate set to active (or both) during their carrier service setup.
EICS supplies an outbound and inbound Shipment Manifest SOAP web service. The following are supported service operations:
A web service is used to send all the shipment information to the external manifesting system and also to receive close shipment requests from external systems.
A web service accepts requests from external systems to close shipments. It is used to find those "Submitted" shipments for the provided tracking ID, carrier, service and date, and dispatch those shipments.
Note:
EICS supplies a WSDL and XSD that defines the web service, operation, and data content. This web service will need to be implemented either for the manifesting system or a plug-in set up.
ShipmentManifestService
This web service notifies an external manifesting system that a manifest needs to be created.
Service Operation | Description |
---|---|
createManifest |
Requests the external manifesting system to create a new parcel manifest for an input transaction. |
StoreShipmentManifestService
This web service receives a message from an external manifesting system that the items on the manifest have been picked up.
Service Operation | Description |
---|---|
closeManifest |
Instructs EICS that submitted shipments have been picked up by the carrier. |
Integration for Notifications
StoreExtNotificationService
When store order with external ID is approved, EICS sends notification to the external system.
This service is applicable only for externally created store orders.
Service Operation | Description |
---|---|
createNotification |
Sends notification to external system on approving the externally created store orders with its items information. |
Integration for Sales Forecast
SalesForecastService
EICS may retrieves item sales forecasting information from a third-party sales forecasting system.
Service Operation | Description |
---|---|
retrieveSalesForecast |
Retrieves sales forecast data for the next 30 days for a particular item and store. |
Integration for Store Order
OrderApproveNotificationService
When store order is approved, EICS sends notification to a third-party item management system.
This notification will be sent out for store orders that are created manually or system generated.
It is not applicable to store orders created by external system.
Service Operation | Description |
---|---|
orderRequestApproved |
Sends notification to external item management system that the order request is approved. |
StoreExtNotificationService
When store order with external ID is approved, EICS sends notification to the external system.
This service is applicable only for externally created store orders.
Service Operation | Description |
---|---|
createNotification |
Sends notification to external system on approving the externally created store orders with its items information. |
Integration for Ticket Printing
When printing tickets, EICS sends ticket information to an external system for printing. This web service needs to be implemented for printing tickets to a physical printer. In the JET administration screen for configuration external service, this endpoint can be configured to connect to either a SOAP or a REST service implemntation.
SOAP Ticket Printing
The details of the SOAP ticket printing endpoint is captured in the associated web service WSDL.
TicketPrintService
Service Operation | Description |
---|---|
printTickets |
Sends item tickets to an external system to be printed. It must be implemented by the external system to receive the tickets. |
REST Service: Ticket Printing
This web service defines an endpoint that can be developed by a third party in order to allow EICS to send item ticket printing information to an end system service that handles ticket printing.
The endpoint inputs and outputs must be adhered to by the provider.
API Publish Tickets
This API receives ticket printing information from EICS.
API Basics
Endpoint URL |
{base URL} |
Method |
POST |
Success Response |
200 OK |
Input |
Input Print Request For Store and Printer |
Output |
None |
Input Data Definition (Ticket Print Request)
Payload |
Type |
Definition |
storeId |
Long(10) |
The identifier of the store. |
printerName |
String(200) |
The name of the printer. |
printerAddress |
String(300) |
The URI (or network address) of the printer. |
printerId |
String(5) |
The identifier of the printer. |
formatType |
Integer(4) |
The type of ticket format to print. See Index |
formatReference |
String(255) |
A reference to the format content to use. |
templateId |
Long(12) |
The identifier of a template to use to print the tickets. |
zplContent |
String(3500) |
The content of the ZPL print template. |
tickets |
List<Tickets> |
A collection of tickets to print. |
Tickets
Payload |
Type |
Definition |
ticketId |
Long(12) |
The identifier of the ticket. |
itemId |
String(25) |
The identifier of the item/sku. |
primaryUpc |
Strin(25) |
The primary Unique Produce Code for the item. |
originType |
Integer |
The origin of the ticket. |
sequenceNumber |
Integer(3) |
The sequence number of the ticket within its grouping. |
ticketCount |
Integer(3) |
The number of instances of this ticket to print. |
printQuantity |
BigDecimal(12,4) |
The quantity to be printed on each ticket. |
shortDescription |
String(255) |
A short description for the item. |
longDescription |
String(400) |
A long description for the item. |
shortDescriptionLang |
String(255) |
A short descripton for the item at the store. |
longDescriptionLang |
String(400) |
A long descripton for the item at the store. |
diffType1 |
String(255) |
The description of the first differentiator type. |
diffType2 |
String(255) |
The description of the second differentiator type. |
diffType3 |
String(255) |
The description of the third differentiator type. |
diffType4 |
String(255) |
The description of the fourth differentiator type. |
diffDescription1 |
String(255) |
The description of the first differentiator. |
diffDescription2 |
String(255) |
The description of the second differentiator. |
diffDescription3 |
String(255) |
The description of the third differentiator. |
diffDescription4 |
String(255) |
The description of the fourth differentiator. |
departmentId |
Long(12) |
The department identifier of the item. |
departmentName |
String(360) |
The department name. |
classId |
Long(12) |
The class identifier of the item. |
className |
String(360) |
The class name. |
subclassId |
Long(12) |
The subclass identifier of the item. |
subclassName |
String(360) |
The subclass name. |
priceCurrency |
String(3) |
The currency code of the ticket price. |
priceValue |
BigDecimal(12,4) |
The value of the ticket price. |
priceType |
Integer(3) |
The type of the ticket price. See Index. |
priceUom |
String(4) |
The unit of measure of the ticket price. |
priceActiveDate |
Date |
The date the ticket price became active. |
priceExpireDate |
Date |
The date the ticket price expired. |
overridePriceCurrency |
String(3) |
An override price currency code. |
overridePriceValue |
BigDecimal(20,4) |
The amount of an override price. |
previousPriceCurrency |
String(3) |
A previous price currency code. |
previousPriceValue |
BigDecimal(20,4) |
The amount of a previous price. |
previousPriceType |
Integer(3) |
The price type of the previous price. See Index. |
lowestMonthlyPriceCurrency |
String(3) |
The currency code of the lowest monthly price. |
lowestMontlyPriceValue |
BigDecimal(20,4) |
The amount of the lowest monthly price. |
lowestMonthlyPriceType |
Integer(3) |
The price type of the lowest montly price. See Index. |
multiUnitPriceCurrency |
String(3) |
The currency code of the multi-unit price. |
multiUnitValue |
BigDecimal(20,4) |
The amount of the multi-unit price. |
multiUnitUom |
String(4) |
The unit of measure of the multi-unit price. |
multiUnitQuantity |
BigDecimal(12,4) |
The multi-unit quantity associated to the price. |
countryOfManufacture |
String(3) |
The country code of the country of manufacture of the item. |
udas |
List<TicketUdaExtIdo> |
A list of user defined attributes associated to the ticket. |
TicketUdaExtIdo
Payload |
Type |
Definition |
name |
String(120) |
The name of the user defined attribute. |
value |
String(250) |
The value of the user defined attribute. |
Additional Data Definitions
Table Format Type
ID |
Origin |
1 |
Item Ticket |
2 |
Shelf Label |
Ticket Price Type
ID |
Origin |
1 |
Permanent |
2 |
Promotional |
3 |
Clearance |
4 |
Clearance Reset |
Ticket Origin Type
ID |
Origin |
1 |
External |
2 |
Price Change |
3 |
Foundation |
4 |
Manual |
5 |
Promotional Price Change |
6 |
Clearance Price Change |
7 |
Permanent Price Change |