Inventory 2.0.0

PROMOTIONAL PRODUCTS DATA INTERFACE SPECIFICATION FOR WEB SERVICES

PromoStandards Logo

Inventory 2.0.0

Version: 2.0.0
Date: 2017-17-03


Document Change Log

VersionDateReason for ChangeAuthor
2.0.0RC111/03/2017Initial DraftRaj Mukherjee, Integration Team Lead, Hit Promotional Products Inc

Eric Shonebarger, CIO, Hit Promotional Products Inc
2.0.0RC211/17/2017Renamed GetFilterValuesReply to GetFilterValuesReponse
Renamed InventoryRequest to GetInventoryLevelsRequest
Renamed InventoryReply to GetInventoryLevelsResponse
Changed id in GetInventoryLevelsRequest to be required
Changed password in GetInventoryLevelsRequest to be optional
All token types have been changed to strings. We used tokens very early on and then switched to strings.
Added ErrorMessageArray to match PO spec. Updated ErrorMessage object to include severity element.
Simplified filtering in both GetInventoryLevelsRequest and GetyFilterValuesResponse to use an object called "Filter".
futureAvailableInventoryQuantity and futureAvailableInventoryTimeStamp changed to required. The FutureAvailabilityArray is optional, so when specifying an element in the array, it must have this info.
Changed address1,address2,address3 and address4 to string array and renamed to addressLines to match the PO spec.
Updated default endpoint location to "[Endpoint URL]"
Renamed partSize to labelSize to match ProductData spec.
Renamed colorName to partColor to match ProductData spec.
Renamed filterSize to labelSizeEnum to match ProductData spec.
Renamed futureAvailableInventoryTimeStamp to arrivalDate
Changed quantityAvailable to use Quantity object
Changed onOrderQuantity to use Quantity object
Changed futureAvailableInventoryQuantity to use Quantity object
Changed warehouseName to be optional
Changed Address object to be optional
Paul Fleischman, Technical Lead, PCNA
2.0.0RC211/20/2017Renamed Warehouse object to InventoryLocation
Renamed warehouseName to inventoryLocationName
Renamed warehouseQuantity to inventoryLocationQuantity
Renamed warehouseId to inventoryLocationId
Paul Fleischman, Technical Lead, PCNA
2.0.0RC312/7/2017Renamed ErrorMessage to ServiceMessagePaul Fleischman, Technical Lead, PCNA
2.0.0RC402/26/2018Changes made based on February meeting:
Removed partId element from GetFilterValuesRequest
Created a partIdArray within the Filter object
Changed the FilterArray to not be an array within GetFilterValuesResponse. A single instance is all that is needed because of the new partIdArray within the Filter object.
Paul Fleischman, Technical Lead, PCNA
2.0.0RC405/10/2018On the SharedObjectsInventory.xsd:
o added mentioned partIdArray definition
o Removed FilterValues definition
o Replaced the partId with a partIdArray on the Filter definition.
Raj Mukherjee, Integration Team Lead, Hit Promotional Products Inc

Tim Dietrich, NetSuite Integrator / PromoStandards Implementer
2.0.007/24/2018On the SharedObjectsInventory.xsd:
added replenishmentLeadTime
Removed SelectionArray definition from Filter object
Raj Mukherjee, Integration Team Lead, Hit Promotional Products Inc

Contributors

  • Raj Mukherjee, Integration Team Lead, Hit Promotional Products, Inc
  • Paul Fleischman, Technical Lead, PCNA
  • Eric Shonebarger, CIO, Hit Promotional Products, Inc
  • Jon Norris, VP of Operations, Starline

Abstract and Recommended Audience

This document describes the technologies for integration of suppliers and distributors in the Promotional Products Industry. It provides details on the technology required to build the interface and offers sample code. The reader is expected to be fluent in web-based technologies.


Background Information

Specifications are built using the Simple Object Access Protocol (SOAP) over HTTPS for secure communication. More information on SOAP can be found at w3.org (opens in a new tab).


Service Details

  • Function: getFilterValues():

    Gets the different variations on a product, broken out by size, colour, selection.

  • Function: getInventoryLevels():

    Provides inventory levels for a product by product and inventory location. It also provides future stock details.


Function: getFilterValues()

Description: Gets the different variations on a product, broken out by size, color, and selection.

Request: GetFilterValuesRequest

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
wsVersionThe Standard Version of the Web Service being referenced. Values are enumerated {2.0.0}STRINGVARCHAR(64)TRUE
idThe customerId or any other agreed upon Id.STRINGVARCHAR(64)TRUE
passwordThe password associated with the customerId.STRINGVARCHAR(64)FALSE
productIdThe Product IdSTRINGVARCHAR(64)TRUE

Reply: GetFilterValuesResponse

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
FilterValuesAn object containing the variations of a product by size, color, selection, etc.OBJECTOBJECTFALSE
ServiceMessageArrayError message object ArrayOBJECT ARRAYOBJECT ARRAYFALSE

FilterValues

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
productIdThe product idVARCHAR(64)VARCHAR(64)TRUE
FilterA Filter Object that contains the variations of a product by part, size, and/or color.OBJECTOBJECTTRUE

Function: getInventoryLevels()

Description: Gets the different inventory levels for the product broken out by product and inventory location. It also provides details on future stock for the product.

Request: getInventoryLevelsRequest

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
wsVersionThe Standard Version of the Web Service being referenced. Values are enumerated {2.0.0}STRINGVARCHAR(64)TRUE
idThe customer Id or any other agreed upon Id.STRINGVARCHAR(64)TRUE
passwordThe password associated with the Id.STRINGVARCHAR(64)FALSE
productIdThe Product IdSTRINGVARCHAR(64)TRUE
FilterFilter the response of getInventoryLevels by using a portion of the filter information received in the response of GetFilterValuesRequest.OBJECTOBJECTFALSE

Reply: getInventoryLevelsResponse

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
InventoryAn object containing inventory by part and inventory location. Also shows future inventory by part and inventory location.OBJECTOBJECTFALSE
ServiceMessageArrayService message objectOBJECTOBJECTFALSE

Inventory

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
productIdThe product idVARCHAR(64)VARCHAR(64)TRUE
PartInventoryArrayAn array of ProductVariation objectsOBJECT ARRAYOBJECT ARRAYFALSE

PartInventoryArray

An array of ProductVariation objects

PartInventory

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
partIdThe part idVARCHAR(64)VARCHAR(64)TRUE
mainPartA boolean value indicating if this is a main part of the product. In a tumbler with an optional lid configuration, the parts associated with the tumbler would be set to TRUE. The parts associated with the Lid would be set to false.BOOLEANBOOLEANTRUE
partColorDescription of the color of the partVARCHAR(64)VARCHAR(64)FALSE
labelSizeThe apparel items tagged size. Enumerated values: {6XS,5XS,4XS,3XS,2XS,XS,S,M,L,XL,2XL,3XL,4XL,5XL,6XL,CUSTOM} CUSTOM is used for any size that does not match one of the other sizes. For example 7XL and 8XL would return CUSTOM. To identify the actual size when CUSTOM is returned, reference the Product Data endpoint.ENUMERATED STRINGVARCHAR(6)FALSE
partDescriptionDescription of the partVARCHAR(256)VARCHAR(256)FALSE
quantityAvailableA quantity object containing the sum of inventory of all inventory locations of the partQUANTITY OBJECTQUANTITY OBJECTFALSE
manufacturedItemIndicates that the supplier produces this part according to demand. The supplier may keep a limited amount of inventory or inventory may be 0.BOOLEANBOOLEANTRUE
buyToOrderIndicates that the supplier purchases this product to order. The supplier may keep a limited amount of inventory, show available inventory to buy, or it might be 0.BOOLEANBOOLEANTRUE
replenishmentLeadTimeTime to replenish buy to order or made to orderINT(3)INT(3)FALSE
attributeSelectionA string describing the attribute of the product other than size and colorVARCHAR(64)VARCHAR(64)FALSE
InventoryLocationArrayAn array of InventoryLocation objectsARRAYARRAYFALSE
lastModifiedA date timestamp in UTC specifying the last time inventory was modified.DATETIMEDATETIMEFALSE

InventoryLocation

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
inventoryLocationIdThe inventory location idVARCHAR(64)VARCHAR(64)TRUE
inventoryLocationNameThe name of the inventory locationVARCHAR(64)VARCHAR(64)FALSE
postalCodeThe postal codeSTRINGVARCHAR(10)FALSE
countryThe country in ISO 3166-2 formatSTRINGVARCHAR(2)FALSE
inventoryLocationQuantityAn object which contains available to order quantity for this inventory locationQUANTITY OBJECTQUANTITY OBJECTTRUE
FutureAvailabilityArrayArray of FutureAvailability objectsOBJECT ARRAYOBJECT ARRAYFALSE

FutureAvailabilityArray

This array provides details about the future availability of specific parts of a product.

FutureAvailability

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
QuantityFuture net available inventory quantity for the part/inventory location combination indicating goods on order or future quantity at manufactured goods.QUANTITY OBJECTQUANTITY OBJECTTRUE
availableOnA date timestamp in UTC specifying the valid timestamp depicting when the inventory will be available for allocation to sales orders.DATETIMEDATETIMETRUE

Filter

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
partIdArrayA list of part ids to be used when filteringSTRING ARRAYVARCHAR(64)FALSE
LabelSizeArrayAn array of labelSize objectSTRING ARRAYVARCHAR(64)FALSE
PartColorArrayA list of colors to be used when filteringSTRING ARRAYVARCHAR(64)FALSE

Quantity

This object provides details about the quantity value and its unit of measure.

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
valueThe quantity value.DECIMALDECIMAL(12,4)TRUE
uomThe unit of measure; values are enumerated.
Values include:
BX (Box),
CA (Case),
DZ (Dozen),
EA (Each),
KT (Kit),
PR (Pair),
PK (Package),
RL (Roll),
ST (Set),
SL (Sleeve),
TH (Thousand)
ENUMERATED STRINGVARCHAR(2)TRUE

Appendix A: Error Messages

ServiceMessage Object

FieldDescriptionWSDL Data TypeSQL Data TypeRequired?
codeThe numerical value of the codeINTINTTRUE
descriptionResponse for any message requiring notification to requestorSTRINGVARCHAR(256)TRUE
severityThe severity of the message. Values are enumerated: {Error, Information, Warning}ENUMERATED STRINGVARCHAR(64)TRUE

Standardized Codes range from 100-199 for standardized error codes. The number 999 is reserved for a "General Error - Contact System Service Provider".

CodeDescription
100ID (customerID) not found
104This account is unauthorized to use this service. Please contact the service provider
105Authentication Credentials failed
110Authentication Credentials required
115wsVersion not found
120The following field(s) are required [Comma Delimited field names]
125Not Supported: [details]
999General Error – Contact the System Service Provider Details: [Details]

Service Specific Code: These error codes are only for this service.

CodeDescription
600Product Id not found
610Data violation: {0}
(Occurs when a supplier does a pre-check on the data and finds that there is a mismatch of data and/or there are incorrect calculations)
620Field is not supported: {0}
630Part Id not found

Diagrams

getFilterValues

getInventoryLevels

Class Diagram for ServiceMessage and QuantityObject