Inventory
The following services are included in this functional area:
Appointments
The following services are included in this functional area:
Appointment Upload Service
The following services are included in this functional area:
Create Appointment
Business Overview
This service can be used to create a new appointment in Merchandising. An appointment is sent to Merchandising when merchandise is about to arrive at a location. After performing the business level validations, appointments will be created through this message in the Scheduled status.
Input Payload Details
Table 5-164 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of appointments. |
Table 5-165 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the location where the merchandise has been sent. |
appointmentNo |
Yes |
Number (9) |
This field contains the unique number generated by warehouse while creating an appointment. |
appointmentDateTime |
No |
date-time |
The date and time of the scheduled appointment,i.e. when the goods are expected to arrive at the receiving location. |
action |
Yes |
String (2) |
The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed. |
details |
No |
Collection of Object |
References a collection of appointment details. |
receiptDateTime |
No |
date-time |
The actual date and time upon which the trailer arrived at the receiving location for the appointment. |
Table 5-166 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This field contains the items shipped to the location. |
unitQuantity |
Yes |
Number (12,4) |
This field contains the quantity of the item slated to be sent to the location. |
documentNo |
Yes |
Number (12) |
This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise. |
documentType |
Yes |
String (1) |
This field indicates the type of document corresponding to the shipped merchandise. Possible choices are Purchase Order (P), Transfer (T), or Allocation (A). Types 'D' and 'V' are also valid document types that are treated the same as transfers. |
asnNo |
No |
String (30) |
This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"location": 2,
"appointmentNo": 200911,
"appointmentDateTime": "2001-12-31T23:59:59.123Z",
"action": "SC",
"details": [
{
"item": "101200001",
"unitQuantity": 3,
"documentNo": 100000135000,
"documentType": "T",
"asnNo": null
}
],
"receiptDateTime": "2001-12-31T23:59:59.123Z"
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Delete Appointment
Business Overview
This service can be used to delete existing appointments in Merchandising. In addition, Merchandising attempts to close the document that is related to the appointment, when applicable. For more details on Appointments, see the Create Appointment service description.
Input Payload Details
Table 5-167 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of appointments. |
Table 5-168 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
appointmentNo |
Yes |
Number (9) |
This field contains the unique number generated by warehouse while creating an appointment. |
location |
Yes |
Number (10) |
This field contains the location where the merchandise has been sent. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"appointmentNo": 200911,
"location": 2
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Delete Appointment Details
Business Overview
This service is used to delete appointment details from Merchandising. To know more about appointment details, see the Manage Appointment Details service description.
Input Payload Details
Table 5-169 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of appointment details. |
Table 5-170 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
appointmentNo |
Yes |
Number (9) |
This field contains the unique number generated by warehouse while creating an appointment. |
location |
Yes |
Number (10) |
This field contains the location where the merchandise has been sent. |
details |
No |
Collection of Object |
References a collection of appointment details. |
Table 5-171 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This field contains the items shipped to the location. |
documentNo |
Yes |
Number (12) |
This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise. |
asnNo |
No |
String (30) |
This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"appointmentNo": 200911,
"location": 2,
"details": [
{
"item": "101200001",
"documentNo": 100000135000,
"asnNo": null
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Manage Appointment Details
Business Overview
This service updates an appointment detail record that was previously sent, such as an update to the quantity for an item. If the record doesn't already exist, it is added.
An appointment is sent to Merchandising when merchandise is about to arrive at a location. These appointment messages are processed by Merchandising and it attempts to receive against the appointment and close it, wherever it is possible. This message contains the item information associated with an appointment, including the ASN and the document number (PO, transfer, or allocation)
Input Payload Details
Table 5-172 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of appointments. |
Table 5-173 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the location where the merchandise has been sent. |
appointmentNo |
Yes |
Number (9) |
This field contains the unique number generated by warehouse while creating an appointment. |
action |
Yes |
String (2) |
The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed. |
details |
No |
Collection of Object |
References a collection of appointment details. |
Table 5-174 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This field contains the items shipped to the location. |
unitQuantity |
Yes |
Number (12,4) |
This field contains the quantity of the item slated to be sent to the location. |
documentNo |
Yes |
Number (12) |
This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise. |
documentType |
Yes |
String (1) |
This field indicates the type of document corresponding to the shipped merchandise. Possible choices are Purchase Order (P), Transfer (T), or Allocation (A). Types 'D' and 'V' are also valid document types that are treated the same as transfers. |
asnNo |
No |
String (30) |
This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"location": 2,
"appointmentNo": 200911,
"action": "SC",
"details": [
{
"item": "101200001",
"unitQuantity": 12,
"documentNo": 100000135000,
"documentType": "T",
"asnNo": null
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Update Appointment
Business Overview
This service is used to edit an existing appointment in Merchandising. An update message updates the status of an existing appointment if already exists. Valid values for the status column include:
-
SC–Scheduled
-
MS–Modified Scheduled
-
AR–Arrived
-
AC–Closed
For more details about Appointments, see the Create Appointment service description.
Input Payload Details
Table 5-175 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of appointments. |
Table 5-176 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the location where the merchandise has been sent. |
appointmentNo |
Yes |
Number (9) |
This field contains the unique number generated by warehouse while creating an appointment. |
appointmentDateTime |
No |
date-time |
The date and time of the scheduled appointment,i.e. when the goods are expected to arrive at the receiving location. |
action |
Yes |
String (2) |
The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed. |
receiptDateTime |
No |
date-time |
The actual date and time upon which the trailer arrived at the receiving location for the appointment. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"location": 2,
"appointmentNo": 200911,
"appointmentDateTime": "2001-12-31T23:59:59.123Z",
"action": "SC",
"receiptDateTime": "2001-12-31T23:59:59.123Z"
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Inventory Download Service
The following services are included in this functional area:
Get Item Available Inventory at Customer Orderable Locations
Business Overview
This integration web service fetches available inventory at a customer-orderable store or warehouse location. This service fetches approved transaction-level items that are sellable, inventoried, and ranged to stockholding and customer-orderable locations. To keep the volume served by this service manageable for performance consideration, this serves either
-
item/locations that currently have non-zero inventory positions
-
while the current inventory position is zero, the item/locations that had non-zero inventory position in the last 7 days
ReST URL
/MerchIntegrations/services/inventory/available? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}&locationType={locationType}&location={location}
Input Parameters
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
offsetkey |
No |
String |
Offset Key. Valid Value is combination of location type, location ID and item in case of pagination when the next page has to start the last fetched record of the previous call |
limit |
No |
Number |
Pagination limit. Default Value is 1000. |
locationType |
No |
String |
Allowed value for |
location |
No |
Number |
Should be a valid store or a virtual warehouse if inventory position for a particular
location must be fetched. |
Output
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Item details. Valid Values
are |
locationType |
String |
This field contains
the Type of location in the location field. This will be either |
location |
Number |
This field contains the numeric identifier of the location in which the item is to be found. |
item |
String |
This field contains the unique alphanumeric value that identifies the item. This will be an approved, sellable, transaction-level item. In case of warehouse location, pack items are also included. |
availableQuantity |
Number |
This field represents the available inventory of an item in a particular location. This is calculated as Stock on Hand minus sum of non-sellable, transfer reserved, customer order reserve, RTV and in-progress sales quantity. In case of warehouse location, the inventory as an item as a component of a pack is also included in the available inventory calculation. |
stockOnHand |
Number |
This field contains current stock on hand for the item. |
standardUom |
String |
This field contains the Unit of measure in which stock of the item is tracked at a corporate level. |
physicalWarehouse |
Number |
This field contains the physical warehouse ID of the location field. This is only populated for warehouse locations. |
channelId |
Number |
This field contains the channel ID for the store or the channel of the virtual warehouse for location type of warehouse. |
cacheTimestamp |
Datetime |
This field holds the database timestamp when the message was prepared/cached to serve this service for an item/location combination. The message serving this service is cached for an item/location when inventory position is changed, and this will continue to hold the same timestamp value till the next inventory change. The consumer can use this field for sequencing records for an item/location |
Elements in JSON Output
Elements | Description | |
---|---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
|
hasMore |
This is dependent on limit value. If the total rows are more than the limit defined then |
|
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to |
|
links |
|
Example JSON Input
{
"items": [{
"action": "INSERT",
"locationType": "W",
"location": "13",
"item": "102900026",
"availableQuantity": 1,
"stockOnHand": 1,
"standardUom": "EA",
"physicalWarehouse": 1,
"channelId": 1,
"cacheTimestamp": "2022-07-11T15:57:42.147Z"
}],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [{
"href": "http://<hostname>:<port>:/MerchIntegrations/services/inventory/available?locationType=W&limit=1&since=1970-01-01T00:00:00.001Z&before=2022-07-18T23:27:26.547666+00:00",
"rel": "self"
},
{
"href": "http://<hostname>:<port>:/MerchIntegrations/services/inventory/available?locationType=W&offsetkey=W%2C13%2C102900026&limit=1&since=1970-01-01T00:00:00.001Z&before=2022-07-18T23:27:26.547666+00:00",
"rel": "next"
}
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
WH |
Yes |
No |
No |
No |
MERCHAPI_ITEM_LOC_SOH |
Yes |
No |
No |
No |
Get Item Location Inventory
This section describes the Item Loc Inventory Detail service.
Business Overview
Item Loc Inventory Detail service allows user to retrieve Item Location and Item Location Stock on Hand information for a selected item and location. If location and location type are not specified, all locations for the item will be retrieved. If location type is specified but not the location, all locations for the item and location type will be retrieved.
ReST URL
ItemlocInvDtl/itemlocInvDetail?item={itemNumber}&location={locationNumber}&locationType={locationType}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
Item |
Yes |
Item ID |
Location |
No |
Location ID. |
Location Type |
No |
Location Type. |
Output
RestItemlocInvDtlRecRDO
Parameter Name | Data Type |
---|---|
item |
String |
itemParent |
String |
loc |
BigDecimal |
locType |
String |
unitRetail |
BigDecimal |
sellingUom |
String |
clearInd |
String |
taxableInd |
String |
localItemDesc |
String |
status |
String |
primarySupp |
BigDecimal |
primaryCntry |
String |
avCost |
BigDecimal |
unitCost |
BigDecimal |
stockOnHand |
BigDecimal |
sohUpdateDatetime |
Timestamp |
inTransitQty |
BigDecimal |
packCompSoh |
BigDecimal |
packCompResv |
BigDecimal |
packCompExp |
BigDecimal |
rtvQty |
BigDecimal |
customerResv |
BigDecimal |
sellingUnitRetail |
BigDecimal |
localShortDesc |
String |
packCompIntran |
BigDecimal |
tsfReservedQty |
BigDecimal |
tsfExpectedQty |
BigDecimal |
nonSellableQty |
BigDecimal |
customerBackorder |
BigDecimal |
packCompCustResv |
BigDecimal |
packCompCustBack |
BigDecimal |
packCompNonSellable |
BigDecimal |
inProgressSalesQty |
BigDecimal |
firstReceived |
Timestamp |
lastReceived |
Timestamp |
JSON Structure
{
"item": null,
"itemParent": null,
"loc": null,
"locType": null,
"unitRetail": null,
"sellingUom": null,
"clearInd": null,
"taxableInd": null,
"localItemDesc": null,
"status": null,
"primarySupp": null,
"primaryCntry": null,
"avCost": null,
"unitCost": null,
"stockOnHand": null,
"sohUpdateDatetime": null,
"inTransitQty": null,
"packCompSoh": null,
"packCompResv": null,
"packCompExp": null,
"rtvQty": null,
"customerResv": null,
"sellingUnitRetail": null,
"localShortDesc": null,
"packCompIntran": null,
"tsfReservedQty": null,
"tsfExpectedQty": null,
"nonSellableQty": null,
"customerBackorder": null,
"packCompCustResv": null,
"packCompCustBack": null,
"packCompNonSellable": null,
"inProgressSalesQty": null,
"firstReceived": null,
"lastReceived": null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Inventory Adjustments
The following services are included in this functional area:
Inventory Adjustment Upload Service
The following services are included in this functional area:
Create Inventory Adjustment for Items at a Location
This section describes the Inventory Adjustment service.
Business Overview
Deprecated in v23.1.401.0: Scheduled for Removal in 2 Years. Use MerchIntegrations/services/inventory/inventoryAdjustments/create
The primary role of this service is to create inventory adjustment and send them to Merchandising.
Inventory Adjustment
Business Overview
Deprecated in v23.1.401.0: Scheduled for Removal in 2 Years. Use MerchIntegrations/services/inventory/inventoryAdjustments/create
This service creates inventory adjustment by calling the package SVCPROV_INVADJ
to load input data to
the staging tables and then calling the core inventory adjustment package to validate and insert data to the Merchandising
tables.
Input Parameters
SvcprovInvadjdescRecRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
Invadjdtl |
List<SvcprovInvadjdescdtlRecRDO> |
SvcprovInvadjdescdtlRecRDO
Parameter Name | Data Type |
---|---|
unitQty |
BigDecimal |
toDisposition |
String |
adjReasonCode |
BigDecimal |
docType |
String |
toWipCode |
String |
item |
String |
poNbr |
String |
auxReasonCode |
String |
weight |
BigDecimal |
toTroubleCode |
String |
fromWipCode |
String |
weightUom |
String |
unitCost |
BigDecimal |
fromTroubleCode |
String |
transshipmentNumber |
String |
fromDisposition |
String |
transactionCode |
BigDecimal |
adjTranDate |
Date (Format: |
userId |
String |
JSON Structure
[
{
"location":null,
"invadjdtl":[
{
"unitQty":null,
"toDisposition":null,
"adjReasonCode":null,
"docType":null,
"toWipCode":null,
"item":null,
"poNbr":null,
"auxReasonCode":null,
"weight":null,
"toTroubleCode":null,
"fromWipCode":null,
"weightUom":null,
"unitCost":null,
"fromTroubleCode":null,
"transshipmentNumber":null,
"fromDisposition":null,
"transactionCode":null,
"adjTranDate":null,
"userId":null,
}
]
}
]
Output
SvcprovInvadjStatusRecRDO
Parameter Name | Data Type |
---|---|
statusMsg |
String |
invadjErrTbl |
List< SvcprovFailInvadjRecRDO > |
SvcprovFailInvadjRecRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
unitQty |
BigDecimal |
adjReasonCode |
BigDecimal |
item |
String |
errorMsg |
String |
The output will contain the status of the request including validation errors, if any.
JSON Structure
{
"statusMsg": null,
" invadjErrTbl ": [
{
" location": null,
"unitQty": null,
" adjReasonCode": null,
" item": null,
"errorMsg": null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Create Inventory Adjustments
Business Overview
Merchandising receives requests for inventory adjustments from an integration subsystem through this service. The request contains information about the item and location whose inventory is being adjusted, the quantity to adjust, a ‘from’ and a ‘to’ disposition code, and the reason for the adjustment. Merchandising uses the information in these requests to perform the following actions :
-
Adjust overall quantities of stock on hand for the item and location combination
-
Adjust the availability of item-location quantities based on status.
After initial processing and validation, Merchandising performs the following tasks:
-
The item/location is ranged if it does not already exist.
-
For total stock on hand adjustments:
-
Stock on hand is updated for the item at the location, for total stock on hand adjustments.
-
Stock adjustment is recorded to the Merchandising transaction level stock ledger.
-
-
For status-based adjustments:
-
Quantities by inventory status are adjusted for the item/location combination.
-
Non-sellable quantity is updated for the item/location.
-
-
For both types, an audit trail is created for the inventory adjustment by item, location, inventory status and reason.
Note:
An adjustment can impact both total stock on hand and inventory status at the same time.Inventory Adjustment Transaction Codes
Whenever the status or quantity of inventory changes, Merchandising writes transaction codes to adjust inventory values in the stock ledger. The types of inventory adjustment transaction codes are:
-
Tran code 22 - adjustments where positive and negative adjustments are made to total stock on hand using a reason code with the COGS indicator = N. In this case, a transaction is inserted to the transaction level stock ledger for both the retail and cost value of the adjustment.
-
Tran code 23 - adjustments where positive and negative adjustments are made to total stock on hand using a reason code with the COGS indicator = Y. In this case, a transaction is inserted to the transaction level stock ledger for both the retail and cost value of the adjustment.
-
Tran code 25 - adjustments to inventory status, where inventory is moved to or from an unavailable or non-sellable status.
Other Notes:
-
One or both of the ‘from’ disposition and ‘to’ disposition fields must have values. Both cannot be empty.
-
The item must be inventoried and approved.
-
If the item is a simple pack catch weight item, then both the weight and weight UOM need to be defined or NULL. The weight UOM must be of the type ‘Mass’.
-
The item should be a transaction-level or a reference item. When a reference item is passed in, its parent item (the transaction level item) has its inventory adjusted.
-
If adjusting a pack at a warehouse, the pack item must have its inventory tracked at the pack level (receive as type = Pack for the item/warehouse).
-
If the location is a warehouse, then either a virtual or physical warehouse can be supported. If it is a virtual warehouse, it must be a stockholding warehouse. If it is a physical warehouse, then the adjusted quantity is distributed among the virtual locations of the physical location.
Inventory Adjustment Transaction Codes
Whenever the status or quantity of inventory changes, Merchandising writes transaction codes to adjust inventory values in the stock ledger. The types of inventory adjustment transaction codes are:
-
Tran code 22 - adjustments where positive and negative adjustments are made to total stock on hand using a reason code with the COGS indicator = N. In this case, a transaction is inserted to the transaction level stock ledger for both the retail and cost value of the adjustment.
-
Tran code 23 - adjustments where positive and negative adjustments are made to total stock on hand using a reason code with the COGS indicator = Y. In this case, a transaction is inserted to the transaction level stock ledger for both the retail and cost value of the adjustment.
-
Tran code 25 - adjustments to inventory status, where inventory is moved to or from an unavailable or non-sellable status.
Other Notes
-
One or both of the ‘from’ disposition and ‘to’ disposition fields must have values. Both cannot be empty.
-
The item must be inventoried and approved.
-
If the item is a simple pack catch weight item, then both the weight and weight UOM need to be defined or NULL. The weight UOM must be of the type ‘Mass’.
-
The item should be a transaction-level or a reference item. When a reference item is passed in, its parent item (the transaction level item) has its inventory adjusted.
-
If adjusting a pack at a warehouse, the pack item must have its inventory tracked at the pack level (receive as type = Pack for the item/warehouse).
-
If the location is a warehouse, then either a virtual or physical warehouse can be supported. If it is a virtual warehouse, it must be a stockholding warehouse. If it is a physical warehouse, then the adjusted quantity is distributed among the virtual locations of the physical location.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-177 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of inventory adjustment details. |
Table 5-178 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the location where the inventory adjustment is being made. |
details |
Yes |
Collection of Object |
References a collection of items for which stock is being adjusted. |
Table 5-179 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This contains the item for which stock is being adjusted. The item should be an approved inventory item. |
adjustmentReasonCode |
No |
Number (4) |
Contains the reason for inventory adjustment. This field will only have a value for saleable inventory types. |
unitQuantity |
No |
Number (12,4) |
This field contains the number of units to be added or reduced. The value should not be 0 and should be a whole number if the standard UOM of the item is EA. The value should be null for Weight-only adjustments which is applicable for Catch weight simple packs and catch weight type 3 and 4 component items having standard UOM as EA. |
fromDisposition |
No |
String (4) |
Used to fetch the inv_status. Also used to determine if the adjustment quantity is negative or positive. |
toDisposition |
No |
String (4) |
Used to fetch the inv_status. Also used to determine if the adjustment quantity is negative or positive. |
userId |
Yes |
String (30) |
This field contains the name of the user who created the inventory adjustment. |
createDate |
Yes |
date-time |
This field contains the date and time the inventory adjustment was made. It has a deprecation support for the date only format, yyyy-MM-dd. |
poNo |
No |
String (12) |
This field contains either a PO, Allocation, BOL or Transfer number associated to the inventory adjustment based on the doc_type. The value should exist in Merchandising. |
documentType |
No |
String (1) |
This field indicates the type of document where the inventory adjustment originated from. Valid values are: P - Purchase Order, T - Transfer, A - Allocation, D - Distro |
weight |
No |
Number (12,4) |
This contains the weight of the item. Weight and Weight UOM should both have values or both should be NULL. |
weightUom |
No |
String (4) |
This is the unit of measurement for weight. Weight and Weight UOM should both have values, or both should be NULL. This value should belong to the uom_class, MASS. |
unitCost |
No |
Number (20,4) |
Contains the current unit cost of the item |
weightType |
No |
String (6) |
Indicates whether the weight adjustment is the Total weight (T) or the Weight per unit (WPU). This field is applicable only for Catch weight simple packs and catch weight type 3 and 4 component items having standard UOM as EA. |
weightOnlyAdjustment |
No |
String (1) |
Indicates whether the adjustment is only for the weight (Y) or for both stock and weight (N). |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"location": 6000,
"details": [
{
"item": "100100076",
"adjustmentReasonCode": 99,
"unitQuantity": 3,
"fromDisposition": null,
"toDisposition": "ATS",
"userId": "BOYLE",
"createDate": "2001-12-31T23:59:59.123Z",
"poNo": null,
"documentType": null,
"weight": 2.5,
"weightUom": "KG",
"unitCost": 9.65,
"weightType": "WPU",
"weightOnlyAdjustment": "N"
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Item Transformation Upload Service
The following services are included in this functional area:
Create Item Transformations
Business Overview
The service provides the ability to process inventory adjustments and WAC recalculation in Merchandising for item transformations from an external system such as the Fresh Product Management System. The service accepts the list of input & output items involved in the transformation and carry out inventory adjustments to account for inventory conversions in the transformation. Based on the product transformations details, the inventory of the input item(s) will be decremented, and the inventory of the output item(s) will be incremented.
An item transformation may also include the costs involved in labor and packaging. In order to communicate the conversion cost to Merchandising as this will have impact on Stock Ledger postings and WAC calculation, the transformation request can also carry activity codes for each transformation activity involved in producing the output items. The cost associated with each of these activities can be predefined in Merchandising or can be interfaced in the transformation message with the activity code.
The service supports a collection of item transformation request and will return success or failure through the service response object. If there are upload validation errors, the record will be rejected, and a failure status will be returned as part of the response object in the web service call.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-180 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
Collection of item transformations. |
Table 5-181 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transformationId |
Yes |
String (15) |
The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level. |
location |
Yes |
Number (10) |
The stockholding company store or the stockholding virtual warehouse at which the transformation was performed. |
locationType |
Yes |
String (1) |
The type of the location. Valid values are S - Store and W - Warehouse. |
transformationDate |
No |
date |
The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'. |
workOrderActivity |
No |
Collection of Object |
Collection of all the work order activities involved in the transformation. |
transformationInput |
Yes |
Collection of Object |
Collection of the input item details involved in the transformation. |
transformationOutput |
Yes |
Collection of Object |
Collection of the output item details involved in the transformation. |
Table 5-182 WorkOrderActivity - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
activityCode |
Yes |
String (10) |
The activity code corresponding to the work order activity involved in transformation such as labor and packaging cost. |
activityCost |
No |
Number (20,4) |
The cost involved in the work order activity. |
currencyCode |
No |
String (3) |
The currency in which the activity cost is provided. If the value is null and an activity cost is provided, then it is assumed that the given activity cost is in the location's currency. |
Table 5-183 TransformationInput - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
The transaction level or below transaction level item which was used as an input item or as an output item in the transformation activity. |
disposition |
No |
String (10) |
This value is used to determine if the quantity of the input/output item consumed/generated in the transformation is from available or unavailable inventory buckets based on the dispositions INV_STATUS value in the INV_STATUS_CODES table. |
quantity |
Yes |
Number (12,4) |
The quantity consumed for the input item or the quantity generated for the output item. |
quantityUom |
No |
String (4) |
The UOM corresponding to the quantity value. It should be a UOM from the same uom class as that of the uom class of the Standard UOM of the item. |
weightType |
No |
String (6) |
Indicates whether the WEIGHT is the Total weight (T) or the Weight per unit (WPU). Valid values are defined in code detail with code type INVW. |
weight |
No |
Number (12,4) |
Weight of the item utilized (input) or generated (output). For weight type Total, the given weight is the Total weight for the quantity utilized or generated. |
weightUom |
No |
String (4) |
Unit of Measure of the weight. |
Table 5-184 CreateError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
itemTransformationError |
Yes |
Collection of Object |
Collection of Item transformation error records. |
Table 5-185 ItemTransformationError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transformationId |
Yes |
String (15) |
The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level. |
location |
Yes |
Number (10) |
The stockholding company store or the stockholding virtual warehouse at which the transformation was performed. |
locationType |
Yes |
String (1) |
The type of the location. Valid values are S - Store and W - Warehouse. |
transformationDate |
Yes |
date |
The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'. |
errors |
Yes |
Array of String |
Collection of error messages. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"transformationId": "10001",
"location": 1531,
"locationType": "S",
"transformationDate": "2001-12-31",
"workOrderActivity": [
{
"activityCode": "12122",
"activityCost": 10,
"currencyCode": "USD"
}
],
"transformationInput": [
{
"item": "101050103",
"disposition": "ATS",
"quantity": 2,
"quantityUom": "EA",
"weightType": "WPU",
"weight": 2.5,
"weightUom": "KG"
}
],
"transformationOutput": [
{
"item": "101050103",
"disposition": "ATS",
"quantity": 2,
"quantityUom": "EA",
"weightType": "WPU",
"weight": 2.5,
"weightUom": "KG"
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Table 5-186 CreateError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
itemTransformationError |
Yes |
Collection of Object |
Collection of Item transformation error records. |
Table 5-187 ItemTransformationError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transformationId |
Yes |
String (15) |
The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level. |
location |
Yes |
Number (10) |
The stockholding company store or the stockholding virtual warehouse at which the transformation was performed. |
locationType |
Yes |
String (1) |
The type of the location. Valid values are S - Store and W - Warehouse. |
transformationDate |
Yes |
date |
The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'. |
errors |
Yes |
Array of String |
Collection of error messages. |
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
{
"itemTransformationError": [
{
"transformationId": "String",
"location": 190104,
"locationType": "?",
"transformationDate": "2001-12-31",
"errors": [
"String"
]
}
]
}
]
}
Returns To Vendor
The following services are included in this functional area:
Return to Vendor Download Service
The following services are included in this functional area:
RTV Publish Services
Endpoints
MerchIntegrations/services/inventory/rtv
MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Business Overview
This service can be used by external applications to get all or selected approved RTVs and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/rtv? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Input Parameters for MerchIntegrations/services/inventory/rtv
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: yyyy-mm-dd"T"hh24:mi:ss.fftzh:tzm |
before |
No |
String |
Before Date Format: yyyy-mm-dd"T"hh24:mi:ss.fftzh:tzm |
offsetkey |
No |
String |
Offset Key. Valid Value is combination of sort_order_seq and node id. |
limit |
No |
BigDecimal |
Pagination limit. Default Value is 1000. |
Input Parameters for MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Parameter Name | Required | Data Type | Description |
---|---|---|---|
rtvOrderNo |
Yes |
Number |
This number uniquely identifies the return to vendor within the system. |
Output - RTV Head
Name | Data Type | Description |
---|---|---|
action |
String |
Action for the RTV record. Valid values are INSERT, UPDATE and DELETE. |
rtvOrderNo |
Number |
The number that uniquely identifies the return to vendor within the system. |
supplier |
Number |
The supplier site to which the merchandise is being returned. |
supplierName |
String |
The supplier site’s name in the system's primary language. |
status |
String |
The status of the return. Valid values include: 10 - Approved and 20 – Cancelled. |
location |
Number |
The store or virtual warehouse number from which the return will occur. |
locationType |
String |
The type of location returning the items. Valid values are store (S) or warehouse (W). |
physicalLocation |
Number |
The store number or the physical warehouse from which the items are being returned. |
totalOrderAmount |
Number |
The total amount of the return in the supplier's currency. |
shipToAddress1 |
String |
The first line of the supplier's address for returns. |
shipToAddress2 |
String |
The second line of the supplier's address for returns. |
shipToAddress3 |
String |
The third line of the supplier's address for returns. |
shipToCity |
String |
The city name of the supplier's address for returns. |
state |
String |
The state code of the supplier's address for returns. |
shipToCountry |
String |
The country ID of the supplier's address for returns. |
shipToPostalCode |
String |
The postal code of the supplier's address for returns. |
returnAuthorizationNo |
String |
The number that the supplier provides when the decision is made that an order may be returned, if required. |
returnCourier |
String |
The courier’s name if the supplier requires that returns be sent by a designated carrier. |
freightCharge |
Number |
The freight cost associated with the vendor return. This field is stored in the supplier's currency. |
creationDate |
String |
The date the vendor return was created. |
completedDate |
String |
The date the vendor return was completed (for updates only). |
restockingPercentage |
Number |
The handling (restocking) percent charged to the retailer for returns, if specified. |
restockingCost |
Number |
The handling (restocking) percent charged to the retailer for returns, if specified. |
externalReferenceNo |
String |
Reference number used in an external system; only applicable if the RTV was initiated in the store or warehouse (for updates only). |
comments |
String |
Comments associated with the return. |
notAfterDate |
String |
The last date that the return can be shipped to the vendor. |
massReturnTransferNo |
Number |
This field holds the unique identifier for the Mass Return Transfer (MRT) if the RTV is created through a MRT. |
shipToJurisdictionCode |
String |
This field Identifies the jurisdiction code for the country-state relationship. |
rtvOriginatedInd |
String |
This identifies the source of a specific return present in the table. It will distinguish the RTVs originating from different sources. Valid values are: MAN - Manual, EXTGEN -Externally Generated, MRT - Mass Return Transfer, CUST - Customer Return, TSF -Transfer, ALLOC - Allocation, OWNCHG - Ownership Change. Default value is MAN. |
createDateTime |
String |
This field holds the record creation date. |
updateDateTime |
String |
This field holds the date when the record was last updated. |
Details |
RTV details |
|
customFlexAttribute |
Custom flex attributes of the RTV. |
|
cacheTimestamp |
String |
This field specifies date and time when the RTV record was last maintained. |
Output - RTV Details
Name | Data Type | Description |
---|---|---|
item |
String |
Unique identifier for the item. |
shipment |
Number |
The RTV shipment number. |
invStatus |
String |
The inventory status code. Only applicable if the reason field has a value of 'U' for unavailable inventory. |
quantityRequested |
Number |
The quantity of items requested to be returned to the supplier. |
unitCost |
Number |
The cost per unit for the SKU being returned in the supplier's currency. |
Reason |
String |
The cost per unit for the SKU being returned in the supplier's currency. |
sequenceNo |
Number |
The sequence number of the RTV detail record that is being deleted. |
quantityCancelled |
Number |
The difference between qty_requested and qty_returned. This is updated after the RTV has been shipped. |
quantityReturned |
Number |
This field contains the quantity of this item that was shipped to the supplier on this RTV. |
restockPercentage |
Number |
This field contains the Restocking Fee percentage applicable to the item. This is the fee as percentage of the total return value charged by the supplier for recovering the expenses that may have to be incurred while restocking them at suppliers location. |
originalUnitCost |
Number |
This field contains the current weighted average cost for the item at the return location. |
updatedByRmsInd |
String |
This field indicates if the last update to RTV_DETAIL table is done by RMS or an external application. If by RMS, then the indicator will be set to Y and a message will be published to external systems; otherwise, the indicator will be set to N and a message will not be published to external systems. |
createDateTime |
String |
Date time when record was inserted. |
updateDateTime |
string |
Date time when record was updated. |
Output - Custom Flex Attributes
Name | Data Type | Description |
---|---|---|
name |
String |
This field will hold the custom flex attribute name. |
value |
String |
This field will hold the numeric or string value of the custom flex attribute. |
valueDate |
String |
This field will hold the date value of the custom flex attribute. |
createDateTime |
String |
This field will hold the date time when the custom flex attribute was inserted. |
updateDateTime |
String |
This field will hold the date time when the custom flex attribute was last updated. |
Elements in JSON Output
Elements | Description | |
---|---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
|
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
|
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
|
links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON output:
{
"items": [
{
"action": "NO_CHANGE",
"rtvOrderNo": 0,
"supplier": 0,
"supplierName": "string",
"status": 0,
"location": 0,
"locationType": "string",
"physicalLocation": 0,
"totalOrderAmount": 0,
"shipToAddress1": "string",
"shipToAddress2": "string",
"shipToAddress3": "string",
"shipToCity": "string",
"state": "string",
"shipToCountry": "string",
"shipToPostalCode": "string",
"returnAuthorizationNo": "string",
"returnCourier": "string",
"freightCharge": 0,
"creationDate": "string",
"completedDate": "string",
"restockingPercentage": 0,
"restockingCost": 0,
"externalReferenceNo": "string",
"comments": "string",
"notAfterDate": "string",
"massReturnTransferNo": 0,
"shipToJurisdictionCode": "string",
"originInd": "string",
"createDateTime": "string",
"updateDateTime": "string",
"details": [
{
"item": "string",
"shipment": "string",
"invStatus": "string",
"quantityRequested": 0,
"unitCost": 0,
"reason": "string",
"sequenceNo": 0,
"quantityCancelled": 0,
"quantityReturned": 0,
"restockPercentage": 0,
"originalUnitCost": 0,
"updatedByRmsInd": "string",
"createDateTime": "string",
"updateDateTime": "string"
}
],
"customFlexAttribute": [
{
"name": "string",
"value": "string",
"valueDate": "string",
"createDateTime": "string",
"updateDateTime": "string"
}
],
"rtvOriginatedInd": "string",
"cacheTimestamp": "string"
}
],
"hasMore": true,
"limit": 0,
"count": 0,
"links": [
"SELF_LINK"
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_RTV |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_RTV |
Yes |
Yes |
Yes |
Yes |
V_ MERCHAPI_EXT_RTV _JSON |
Yes |
No |
No |
No |
Return to Vendor Upload Service
The following services are included in this functional area:
Manage Returns to Vendor
Business Overview
Merchandising subscribes to return-to-vendor (RTV) messages when an RTV is shipped out from a warehouse or store. This shipment could be for an RTV that was initially created in Merchandising, or one initiated at the store or warehouse. The RTV information is sent from a warehouse management system (WMS), such as Oracle WMS Cloud or the store inventory solutions, such as Oracle Retail Store Inventory and Operations Cloud Service (SIOCS) when the RTV is created or shipped out of the location. Additionally, RTV information may also come from an external application where RTVs are planned. The external system can create, cancel or update RTVs using this service in the similar manner these are created in Merchandising.
This service allows the above listed systems to create, update or cancel RTVs in Merchandising. Create, update and cancel messages can be sent through this single service.
This service accepts the following status:
A - Approved
P - In-Progress
S - Shipped
C - Cancelled
Create RTVs
If the message contains a new RTV generated in the store or warehouse, then it must contain both header and detail information. RTVs from external systems can be created in Approved, In-Progress or Shipped status. RTVs created in Approved status will be editable through Merchandising screen where details can be updated including an approved RTVs being shipped and cancelled. RTVs created in Approved status via this service will be integrated to downstream systems.
Update RTVs
RTVs in Input (created via Merchandising UI), In-Progress, Approved and Shipped status can be updated using this service. To update an RTV, you can send either only the header information or both header and detail level information. The most common update is to ship a previously created RTV. While updating an approved or in-progress RTV to the Shipped status, if only the header information is provided, then the requested quantity of all the items that are present in the approved RTV will be shipped. Note: Once RTVs are Shipped, they cannot be changed back to the approved status. Alternatively, approved RTVs can also be set to Cancelled status by updating the quantities in case they cannot be shipped for some reason.
Cancel RTV
An RTV can be cancelled without specifying the individual item quantities by sending the header information with Cancelled status. Only Input and Approved RTVs can be cancelled.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-188 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of return to vendor details. |
Table 5-189 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
rtvNo |
No |
Number (10) |
Contains the number that uniquely identifies the return to vendor within the system. If both the rtvNo and extRefNo are provided, it is assumed that an existing externally generated RTV that contains the same rtvNo/extRefNo combination needs to be updated. If no match is found, then the service will return an error. In order to create a new return to vendor, the rtvNo field must be blank. When updating a return to vendor that was initiated in Merchandising, both the rtvNo and extRefNo must be provided but only the rtvNo is expected to match since the extRefNo is blank for these types of RTVs. |
location |
Yes |
Number (10) |
Contains the location number that the items are returned from. If the location is a store, the STORE column gets populated with the location value, and the WH column is defaulted to -1. If the location is a warehouse, the WH column gets populated. |
externalReferenceNo |
Yes |
String (30) |
Audit trail reference to external system when an external transaction initiates master record creation in Merchandising. |
returnAuthorizationNo |
No |
String (12) |
Contains the number that the supplier provides when the decision is made that an order may be returned. This value is not always required and is determined by vendor level data. |
supplier |
Yes |
Number (10) |
Contains the supplier ID to which the merchandise is being returned. |
shipToAddress1 |
No |
String (240) |
Contains the first line of the supplier's address for returns. |
shipToAddress2 |
No |
String (240) |
Contains the second line of the supplier's address for returns. |
shipToAddress3 |
No |
String (240) |
Contains the third line of the supplier's address for returns. |
shipToState |
No |
String (3) |
Contains the state of the supplier's address for returns. |
shipToCity |
No |
String (120) |
Contains the city name of the supplier's address for returns. |
shipToPostalCode |
No |
String (30) |
Contains the zip code of the supplier's address for returns. |
shipToCountry |
No |
String (3) |
Contains the country ID of the supplier's address for returns. |
createdDate |
No |
date |
Contains the date the vendor return was created. |
status |
No |
String (1) |
This value is used to determine the current status of the return. If this is 'A', Merchandising will set the status to 10 (Approved). If this is 'P', Merchandising will set the status to 12 (In Progress). If this is 'S' or null, it will be set to 15 (Shipped). If this is 'C', Merchandising will set the status to 20 (Cancelled). |
comments |
No |
String (2000) |
Contains any comments associated with the return. |
details |
No |
Collection of Object |
References a collection of items on the RTV. If no details are provided for the RTV status being updated from Approved to Shipped, then the quantity requested for all the items that are present in the RTV will be shipped. |
customFlexAttribute |
No |
Collection of Object |
References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL. |
ConsignmentVendorRtvInd |
No |
String (1) |
This indicator determine whether the RTV being interfaced is a Consignment Vendor RTV. |
Table 5-190 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Unique identifier for the item on the RTV. |
unitQuantity |
Yes |
Number (12,4) |
Contains the item quantity that is being returned to the supplier under this RTV number. When updating the quantity in an RTV, the value of the return/requested quantity will be increased if the unit quantity provided is positive whereas a negative unit quantity will increase the quantity cancelled. This quantity cannot be negative for RTVs in shipped status, and should always be greater than zero when creating a new RTV detail record. |
fromDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
unitCost |
No |
Number (20,4) |
Contains the cost per unit for the SKU being returned. This field is stored in the supplier's currency. |
reason |
No |
String (6) |
Contains the value identifying the reason for the return. Valid values are: Q - QC Failed, U - Unavailable Inventory. Other values may also be entered via the codes table under code type 'RTVR', however, the two codes listed previously may never be deleted. Note that any value added can only be related to RTV from existing inventory (e. g. overstock). |
weight |
No |
Number (12,4) |
Contains the actual weight shipped for the items on the RTV. This should not be provided for RTVs in the approved status. |
weightUom |
No |
String (4) |
Unit of Measure for the weight (e. g. pounds, kilograms). |
Table 5-191 CustomFlexAttribute - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
name |
Yes |
String (30) |
Holds the attribute name. |
value |
No |
String (250) |
Holds the numeric or string value of the attribute. |
valueDate |
No |
date |
Holds the date value of the attribute. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"rtvNo": 188295,
"location": 1521,
"externalReferenceNo": "RETURN01",
"returnAuthorizationNo": "5522014",
"supplier": 2400,
"shipToAddress1": "2243 Pennys Way",
"shipToAddress2": null,
"shipToAddress3": null,
"shipToState": "ORE",
"shipToCity": "Woodburn",
"shipToPostalCode": "4522",
"shipToCountry": "US",
"createdDate": "2001-12-31",
"status": "A",
"comments": "creating RTV via ReST service",
"details": [
{
"item": "100100068",
"unitQuantity": 3,
"fromDisposition": "ATS",
"unitCost": 9.65,
"reason": "O",
"weight": 1,
"weightUom": "KG"
}
],
"customFlexAttribute": [
{
"name": "COMMENT",
"value": "CFA Comment creating RTV via ReST service",
"valueDate": "2001-12-31"
}
],
"ConsignmentVendorRtvInd": "Y"
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Shipments and Receipts
The following services are included in this functional area:
Receiver Unit Adjustment Download Service
The following services are included in this functional area:
Get Receiver Unit Adjustment
Business Overview
This service can be used by external applications to get all or selected receiver unit adjustments and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/receiverunitadj? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
offsetkey |
No |
String |
Offset Key. Valid Value is an order ID. |
limit |
No |
BigDecimal |
Pagination limit. Default Value is |
Output
Name | Data Type | Description |
---|---|---|
action |
String |
Action for RUA details. Valid Value is INSERT. |
location |
Number |
This field uniquely identifies the location. |
locationType |
String |
This field determine, type of the location. The location will be a store if Location type is S, a Warehouse if Location type is W |
orderNo |
Number |
This field contains unique identifier for the order, against which a receiver unit adjustment was performed. |
asnNo |
String |
This field holds the advanced shipment notification number associated with the shipment for which a receiver unit adjustment was performed |
item |
String |
This field holds the ID of the item. |
containerId |
String |
This field holds the unique identifier for the carton that contained the item against which the receiver unit adjustment was performed. |
unitQuantity |
Number |
This field holds the quantity of the receiver unit adjustment. |
fromDisposition |
String |
This field contains a value which along with the to disposition value, is used to determine if the inventory is available or unavailable |
toDisposition |
String |
This field contains the value to determine if the inventory is available or unavailable based in the value of INV_STATUS column in the INV_STATUS_CODES table. |
cacheTimestamp |
String |
This field specifies date and time when RUA record was last maintained. |
Table 5-192 Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
{
"items": [
{
"action": "INSERT",
"location": 1515,
"locationType": "S",
"orderNo": 10001,
"asnNo": "10001",
"item": "100500002",
"containerId": "carton10001",
"unitQuantity": 50,
"fromDisposition": "ATS",
"toDisposition": null,
"cacheTimestamp": "2022-02-03T19:23:17.357Z"
},
{
"action": "INSERT",
"location": 1515,
"locationType": "S",
"orderNo": 10001,
"asnNo": "10001",
"item": "100500002",
"containerId": "carton10001",
"unitQuantity": 5,
"fromDisposition": null,
"toDisposition": "ATS",
"cacheTimestamp": "2022-02-03T19:23:17.357Z"
}
],
"hasMore": false,
"limit": 10000,
"count": 2,
"links": [
{
"href": "https://<hostname>:<portnumber>/MerchIntegrations/services/inventory/receiverunitadj?limit=10000&since=1970-01-01T00:00:00.001Z&before=2022-04-07T06:10:22.454797+00:00",
"rel": "self"
}
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
Yes |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_RCV_UNIT_ADJ |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_RCV_UNIT_ADJ |
No |
Yes |
No |
Yes |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
Shipment and Receipt Download Service
The following services are included in this functional area:
Get Shipment Detail
This section describes the Shipment Detail Service.
Business Overview
Shipment Detail service allows user to retrieve shipment and shipment item details for a given distro (transfer or allocation) or purchase order (PO).
ReST URL
Shipment/shipmentDetail?orderNumber={orderNumber}&distroNumber={distroNumber}&distroType={distroType}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
orderNumber |
No |
Order Number. If none is specified, then Distro Number and Distro Type are required. |
distroNumber |
No |
Distro Number. If none is specified, then Order Number is required. |
distroType |
No |
Distro Type. If none is specified, then Order Number is required. |
Output
RestShipmentRecRDO
Parameter Name | Data Type |
---|---|
shipment |
BigDecimal |
bolNo |
String |
asn |
String |
shipDate |
Timestamp |
receiveDate |
Timestamp |
estArrDate |
Timestamp |
shipOrigin |
String |
statusCode |
String |
toLoc |
BigDecimal |
toLocType |
String |
fromLoc |
BigDecimal |
fromLocType |
String |
parentShipment |
BigDecimal |
seqNo |
BigDecimal |
item |
String |
refItem |
String |
carton |
String |
invStatus |
BigDecimal |
shipskuStatusCode |
String |
qtyReceived |
BigDecimal |
unitCost |
BigDecimal |
unitRetail |
BigDecimal |
qtyExpected |
BigDecimal |
adjustType |
String |
actualReceivingStore |
BigDecimal |
reconcileUserId |
String |
reconcileDate |
Timestamp |
tamperedInd |
String |
dispositionedInd |
String |
JSON Structure
{
"shipment":null,
"bolNo":null,
"asn":null,
"shipDate":null,
"receiveDate":null,
"estArrDate":null,
"shipOrigin":null,
"statusCode":null,
"toLoc":null,
"toLocType":null,
"fromLoc":null,
"fromLocType":null,
"parentShipment":null,
"seqNo":null,
"item":null,
"refItem":null,
"carton":null,
"invStatus":null,
"shipskuStatusCode":null,
"qtyReceived":null,
"unitCost":null,
"unitRetail":null,
"qtyExpected":null,
"adjustType":null,
"actualReceivingStore":null,
"reconcileUserId":null,
"reconcileDate":null,
"tamperedInd":null,
"dispositionedInd":null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Shipment and Receipt Upload Service
The following services are included in this functional area:
Create DSD Receipts
Business Overview
Direct store delivery (DSD) is the delivery of merchandise to and/or the performance of services in a store without the benefit of a pre-approved purchase order. When the delivery or service occurs, the store inventory system (for example, SIOCS) informs Merchandising of the receipt, which also generates the purchase order at the same time. The receipt can include both the merchandise item as well as the non-merchandise information associated with the order. This information works in conjunction with payment details sent through Sales Audit if payment was made a part of the delivery or service at the store.
Availability During Nightly Batch Cycle
This service will not be available when batches affecting either inventory or cost are in-progress.
Input Payload Details
Table 5-193 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of DSD Receipts. |
Table 5-194 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
supplier |
Yes |
Number (10) |
This field contains the unique identifying number for a supplier for the receipt. |
originCountry |
Yes |
String (3) |
This field contains the identifier of the country from which the item is being sourced. |
store |
Yes |
Number (10) |
This field contains the location where the items were delivered. |
dept |
No |
Number (4) |
The department in which all the items on the order belong. |
currencyCode |
Yes |
String (3) |
This field contains a code identifying the currency the supplier uses for business transactions. |
paidInd |
Yes |
String (1) |
This field indicates if the invoice has already been paid. Valid values are Y (invoice has already been paid) or N (invoice should be paid in accounts payable system). |
externalReferenceNo |
No |
String (30) |
If the invoice indicator is Y (invoice has been created), the external reference number, proof of delivery number, or payment reference number must be provided. |
proofOfDeliveryNo |
No |
String (30) |
This field contains the proof of delivery or service number given at the time of receipt at the store. This field will also be included when the invoice is interfaced through Sales Audit. |
paymentReferenceNo |
No |
String (16) |
This field contains the reference number attached to the invoice payment, used when the invoice is paid from the POS system and interfaced through Sales Audit. |
paymentDate |
No |
date |
This field contains the date when the invoice was paid from the POS system. This field will be populated when the invoice is interfaced through Sales Audit. |
invoiceInd |
Yes |
String (1) |
This field indicates whether an invoice was created for this receipt by the supplier. Valid values are Yes (Y) and No (N). |
dealsInd |
Yes |
String (1) |
This field indicates whether deals need to be applied to the DSD Purchase Order or not. Valid values are Yes (Y) and No (N). |
externalReceiptNo |
No |
String (17) |
This field holds the external transaction sequence number for the receipt. |
receiptDate |
No |
date |
This field contains the date of the receipt. |
details |
No |
Collection of Object |
References a collection of DSD Receipt detail records. |
nonMerchDetails |
No |
Collection of Object |
References a collection of DSD Non Merchandise detail records. |
Table 5-195 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This field contains the item in the receipt. The item must be an approved item that is at transaction level or above. |
quantityReceived |
Yes |
Number (12,4) |
This field contains the number of items received for the item/shipment combination. The value must be greater than 0. |
unitCost |
No |
Number (20,4) |
This field contains the cost of the item from the supplier/origin country in the supplier's currency. |
weight |
No |
Number (12,4) |
This field contains the weight of the item in the receipt, if it is a catch weight item. |
weightUom |
No |
String (4) |
This field contains the unit of measure of the received weight. |
Table 5-196 NonMerchDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
nonMerchCode |
Yes |
String (6) |
This field contains the non-merchandising code that will be added to an invoice for services or other non-merchandise costs associated with the order. |
nonMerchAmount |
Yes |
Number (20) |
This field contains the amount of the non-merchandise cost that was invoiced. This field will be held in the invoice currency. |
vatCode |
No |
String (6) |
This field contains the code identifying the VAT rate that should be applied to the non-merchandise amount entered. |
servicePerformedInd |
Yes |
String (1) |
Indicates if a service non-merchandise cost has actually been performed. Valid values are 'Y' (service has been performed) or 'N' (service has not been performed or non-merchandise cost is not a service cost). |
Sample Input Message
{
"items": [
{
"supplier": 2400,
"originCountry": "US",
"store": 1531,
"dept": 1117,
"currencyCode": "USD",
"paidInd": "Y",
"externalReferenceNo": "REF1531",
"proofOfDeliveryNo": null,
"paymentReferenceNo": null,
"paymentDate": "2001-12-31",
"invoiceInd": "Y",
"dealsInd": "Y",
"externalReceiptNo": "RECREF1531",
"receiptDate": "2001-12-31",
"details": [
{
"item": "100750001",
"quantityReceived": 3,
"unitCost": 9.65,
"weight": 79.00,
"weightUom": null
}
],
"nonMerchDetails": [
{
"nonMerchCode": "B720",
"nonMerchAmount": 123456,
"vatCode": "S",
"servicePerformedInd": "N"
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Create Outbound ASNs
Business Overview
Merchandising receives advanced shipping notifications (ASNs), also known as a bill of lading (BOL) messages, from a warehouse management system, like Oracle Warehouse Management Cloud, or a store inventory system like Oracle Retail Store Inventory and Operations Cloud Service (SIOCS).
These ASNs are notifications to Merchandising that inventory is moving from one location to another and they contain data that is used by Merchandising to create or modify a shipment record. ASNs are received for:
-
Pre-existing allocations
-
Pre-existing transfers
-
Externally generated transfers created in the store or warehouse (created as transfer type of EG within Merchandising).
An ASN message may contain details related to multiple transfers or allocations, and would enable the shipment record in Merchandising to reflect these multiple movements of the merchandise. The BOL number present on the shipment record is a way to track one or more transfers and allocations through their respective stock order records. Shipments for customer orders, franchise orders, and franchise returns are also managed through this service. If the receiving location is a non-stockholding location, like in the case of a warehouse shipment to a non-stockholding franchise store, or a warehouse shipment direct to a customer (that is processed through a non-stockholding store), then the shipment will be automatically received when processed by Merchandising.
Note:
ASNs related to a purchase order from a supplier are classified as an Inbound ASNs. Details for those types of expected shipments are found in the ASN In Subscription service documentation.Other Notes
-
For customer order fulfillment, SIOCS will send an ASN Out message that does not include a ship-to location. Such messages are ignored by Merchandising.
-
Store to customer fulfillment requests will not have associated transfers in Merchandising. When Oracle Retail Store Inventory and Operations Cloud Service (SIOCS) ships the customer order, then SIOCS will generate an Outbound ASN message with an empty ‘To Location’ or with the Location Type set as Customer (C). Since there are no associated transfers within Merchandising, it will not process these Outbound ASN messages. The reserved inventory will be backed out when Merchandising processes the related SALES transaction.
-
Messages received through this service can create new shipments or update existing shipments. A new shipment record will be created in Merchandising in the ‘Input’ status if the BOL number is not yet associated to any shipment record. If the BOL number is already associated to a shipment record, the shipment record will be updated accordingly.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-197 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of ASN details. |
Table 5-198 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
No |
Number (10) |
Contains the location that the shipment will be delivered to. |
fromLocation |
Yes |
Number (10) |
For transfer and allocation shipments, this field will hold the location from which the shipment was sourced. |
cartonQuantity |
No |
Number (6) |
Contains the number of boxes associated with the shipment. |
asnNo |
No |
String (30) |
Holds the bill of lading number associated with a shipment. This field will be persisted in the bol_no column of the Shipment table in Merchandising. |
bolNo |
Yes |
String (17) |
Holds the transaction sequence number on the message from the transfer shipment confirmation process. This field will be persisted in the ext_ref_no_out column of the Shipment table in Merchandising. |
shipDate |
No |
date |
This field contains the date the transfer or PO was shipped. |
estimatedArrivalDate |
No |
date |
This field contains the estimated arrival date of a vendor PO shipment. It is updated by EDIUP856. It is used for vendor/lead time analysis. |
comments |
No |
String (2000) |
Contains any miscellaneous comments about the shipment. |
carrierCode |
No |
String (4) |
Contains the courier that will deliver the shipment. |
shipmentDetails |
No |
Collection of Object |
Description is not available. |
Table 5-199 ShipmentDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
distroNo |
Yes |
String (12) |
Specifies the transfer or allocation number associated with the shipment/item/carton. |
distroDocumentType |
Yes |
String (1) |
Specifies what the distro_nbr field corresponds to in Merchandising: V, D, and T specify transfer, A specifies Allocation. |
customerOrderNo |
No |
String (48) |
This is the customer order number that was generated by OMS and contains multiple fulfillment numbers. |
fulfillOrderNo |
No |
String (48) |
Based on a customer order - OMS will generate fulfillments to specific locations based on availability. RMS will generate Transfers based on the fulfillment request. |
comments |
No |
String (2000) |
Not used by RMS. |
cartons |
Yes |
Collection of Object |
Description is not available. |
Table 5-200 Cartons - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
carton |
Yes |
String (30) |
Identifies the UCC-128 carton number for shipments originating from the Advance Shipment Notification process as carton shipments. This field will be zero for all shipments that are not at a carton level. |
weight |
No |
Number (12,4) |
Actual weight shipped for the container. |
weightUom |
No |
String (4) |
Unit of measurement for weight (e. g. pounds, kilograms) that was shipped. |
items |
Yes |
Collection of Object |
Description is not available. |
Table 5-201 Cartons.Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Unique identifier for the item. |
unitQuantity |
Yes |
Number (12,4) |
Contains the number of items expected to be received based on the supplier's advance shipment notification for this item/shipment combination. |
fromDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
unitCost |
No |
Number (20,4) |
Contains the unit cost of the item in the shipment. |
baseCost |
No |
Number (20,4) |
This value will be used to get the base cost (BC) from RFM for a transfer, which will flow into RMS. |
weight |
No |
Number (12,4) |
Actual weight shipped. |
weightUom |
No |
String (4) |
Unit of measurement for weight (e. g. pounds, kilograms) shipped. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"toLocation": 1221,
"fromLocation": 1151,
"cartonQuantity": 5,
"asnNo": "ASN-100100990",
"bolNo": "BOL-100100990",
"shipDate": "2001-12-31",
"estimatedArrivalDate": "2001-12-31",
"comments": "Shipment for transfer 100100990",
"carrierCode": "FDX",
"shipmentDetails": [
{
"distroNo": "100100990",
"distroDocumentType": "T",
"customerOrderNo": null,
"fulfillOrderNo": null,
"comments": "Shipment for transfer 100100990",
"cartons": [
{
"carton": "CRTN10001",
"weight": 3,
"weightUom": "KG",
"items": [
{
"item": "100100991",
"unitQuantity": 10,
"fromDisposition": "ATS",
"unitCost": 9.65,
"baseCost": 10.65,
"weight": 3,
"weightUom": "KG"
}
]
}
]
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Delete Inbound ASNs
Business Overview
This service is used to delete shipments from Merchandising that have not been received. Only ASN shipments (Ship Origin = 0) and ASN UCC-128 shipments (Ship Origin = 6) can be deleted using this service.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-202 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of ASN details for deletion. |
Table 5-203 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
asnNo |
Yes |
String (30) |
Not used in Merchandising. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"asnNo": "ASN-464690028"
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Manage Inbound ASN
Business Overview
This service creates a new shipment record or updates an existing shipment for ASNs that have not been received once the supplier or consolidator sends an advanced shipping notice (ASN) to Merchandising. Merchandising subscribes to this ASN information and stores the information in the related tables depending upon the validity of the records enclosed within the ASN message. If an existing ASN number and carton combination already exists, the shipment details (shipment date, carrier code, unit quantity, etc.) will be updated with the values in the request, otherwise a new shipment record will be created.
The ASN message will consist of a header record, a series of order records, carton records, and item records. For each message, the header, order and item records are required while the carton portion of the record is optional. However, if a carton record is present or the ASN type is ‘C’, then the carton details must be present. The header record will contain information about the shipment, such as it's destination location and estimated arrival date. The order records will identify the purchase orders that are associated with the shipment. If the shipment is packed in cartons, then the carton records will identify the items present in the cartons. The item records will contain details on the items that are present on the shipments, along with the quantity that will be shipped.
The location that is contained on the ASN will represent the expected receiving location for the order. If the location is set up as a non-stockholding store in Merchandising, then the shipment will also be automatically received when the ASN is processed. The two types of non-stockholding stores/orders for which orders are supported in this integration are Franchise stores and Customer orders.
Once the ship quantity is matched, an invoice is generated for Invoice Matching.
Note:
This message can also be used by stores and warehouses for inbound transfer and allocation shipments. However, for Merchandising, all those shipments are processed as Outbound ASNs.Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-204 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of ASN details. |
Table 5-205 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
No |
Number (10) |
Contains the location that the shipment will be delivered to. For purchase orders this will always be either a store or a physical warehouse. |
asnNo |
Yes |
String (30) |
Not used in Merchandising. |
shipDate |
Yes |
date |
This field contains the date the transfer or PO was shipped. |
estimatedArrivalDate |
No |
date |
This field contains the estimated arrival date of a vendor PO shipment. It is updated by EDIUP856. It is used for vendor/lead time analysis. |
comments |
No |
String (2000) |
Contains any comments about the shipment. |
carrierCode |
No |
String (4) |
This column contains a code that indicates the carrier that is involved in the shipment. |
asnType |
Yes |
String (1) |
This field is used to determine the ship origin. If asn_type is 'C', ship_origin will be set to '6' (ASN UCC-128) upon insert to the SHIPMENT table. Otherwise, SHIP_ORIGIN is defaulted to '0' (ASN Shipment). |
supplier |
Yes |
Number (10) |
Contains the supplier who will provide the merchandise specified in the order. This element is used to validate the order number(s) in ASNInPO (ASNInPO. po_nbr). The order number must be in the table ORDHEAD, in either the ORDER_NO column or VENDOR_ORDER_NO column. |
shipPayMethod |
No |
String (2) |
This column indicates the payment terms for freight charges associated with the order. Valid values are found in code type SHMT. Examples are Collect (CC), Collected Freight Credited Back to Cust (CF) and Defined by Buyer and Seller (DF). |
asnDetails |
Yes |
Collection of Object |
References a collection of ASN details. |
Table 5-206 AsnDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
Yes |
Number (12) |
Identifies the order number which relates to the goods delivered in the shipment. Validated against the ORDHEAD table, and also the SHIPMENT table if the message applies to an existing shipment. |
notAfterDate |
No |
date |
This field contains the last date that delivery of the order will be accepted. |
containers |
No |
Collection of Object |
References a collection of shipment cartons. |
items |
No |
Collection of Object |
References a collection of items and item details. |
Table 5-207 Containers - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
containerId |
Yes |
String (30) |
Holds the UCC-128 carton number. |
finalLocation |
Yes |
Number (10) |
This will be the final destination of the carton. For a cross-dock order this will be the allocation location, otherwise it will be the direct to order location. |
items |
Yes |
Collection of Object |
References a collection of items and item details. |
Table 5-208 Containers.Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
No |
String (25) |
Unique identifier for the item. Either vpn, item_id, or ref_item must be specified in the message. |
unitQuantity |
Yes |
Number (12,4) |
This column contains the quantity of the item that is expected to be received. |
vpn |
No |
String (30) |
This column contains the vendor product number used to find the item number. Either VPN, item number, or reference item must be specified in the message. |
referenceItem |
No |
String (25) |
The column contains a bar code or reference item. Either VPN, item number, or reference item must be specified in the message. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"toLocation": 2,
"asnNo": "ASN-464690028",
"shipDate": "2001-12-31",
"estimatedArrivalDate": "2001-12-31",
"comments": "commentDesc",
"carrierCode": "FDX",
"asnType": "C",
"supplier": 2400,
"shipPayMethod": "PO",
"asnDetails": [
{
"orderNo": 464690028,
"notAfterDate": "2001-12-31",
"containers": [
{
"containerId": "00152100-1",
"finalLocation": 1521,
"items": [
{
"item": "103900095",
"unitQuantity": 3,
"vpn": "vpn-00152100-1-103900095",
"referenceItem": null
}
]
}
],
"items": [
{
"item": "103900095",
"unitQuantity": 3,
"vpn": "vpn-00152100-1-103900095",
"referenceItem": null
}
]
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Manage Purchase Order and Stock Order Receipts
Business Overview
This service processes receipts that Merchandising receives against purchase orders, transfers, and allocations received at a store, warehouse or finisher. Purchase orders can be received at the item level only using this message, while transfers and allocations, collectively referred to as stock orders, may be received at the bill of lading (BOL) level, where the entire shipment is received without including details, carton level, or item level.
When a transfer, PO or allocation is received at a location, Merchandising will update the appropriate tables, including the shipment, the transfer, allocation, purchase order, stock on hand, as well as other inventory buckets (for example, in-transit). A record of the receipt is also made in the Stock Ledger.
Receiving Exceptions
Merchandising has the ability to automatically resolve several common exceptions that can occur during the receiving process. The following exceptions can be automatically processed when a stock order is received through this service:
-
Receipt Against the Wrong BOL
In this case, the receiving location should send a carton status of Dummy (D) or Overage (O), indicating that a dummy BOL number was used. But, even if that status is not used, this exception processing can still take place. Merchandising will attempt to match the contents of the receipt to a valid BOL as follows:
-
If the carton belongs to a valid BOL at the given location, Merchandising receives the carton against the intended BOL at the given location.
-
If the carton belongs to a valid BOL at a related walk-through store, Merchandising receives the carton against the intended BOL at the intended location.
-
If the carton belongs to a valid BOL at an unrelated location, Merchandising uses the wrong store receiving process.
-
-
Walk-through Store Receiving
If you have configured two or more stores as 'walk-through' locations, via attribution at on the store table in Merchandising, then if the BOL was intended to be received at the walk-through location instead of the location on the message, Merchandising will automatically adjust the receipt and process against the correct location.
-
Misdirected Container
Misdirected containers, or wrong store receiving, is when one or more containers on a receipt is identified as having been originally shipped to a different location (Location A) than the location that sent the receipt message (Location B). Whether or not misdirected container receiving is supported in Merchandising is controlled by a system option called Wrong Store Receipt Exception Handling. If this option is unchecked (N), then the receipt at the Location B will raise an error in this service. If set to checked (Y), then the shipment at Location A will be backed out, including in-transit updates, WAC adjustments, and stock ledger postings, and re-applied to Location B, prior to processing the receipt into Location B.
In order correctly manage this processing, Merchandising must receive the original carton number on the receipt. In some cases, such as when integrating with Store Inventory and Operations Cloud Service (SIOCS), the carton ID is reassigned by the receiving location. In that case, the reference carton field in the Receipt Detail node of the message must be populated to trigger this process. Otherwise, it will be treated as an overage at the actual receiving location and the original location will not have its quantities reversed until the transfer is reconciled.
Note:
Wrong location receiving is supported only for item-level transfer/allocation receipts. -
Unwanded Cartons
An unwanded carton is a situation where Merchandising never received notification of the original shipment, only the receipt. In this case, if receiving is done at the item level, Merchandising will process both the shipment and receipt together. If item level details are not included for the carton, an error will be raised, as Merchandising will not be able to determine the contents of the carton, having never received the initial shipment details.
-
Zero Receipts
This type of exception occurs when a location indicates to Merchandising that nothing was received for the item at the location by sending a receipt of zero and indicating that the carton is closed. Merchandising will reconcile the original ship to location based on system option settings to determine where to write off the lost items.
If a zero receipt occurs for an item that is part of a misdirected container, then some slightly different processing will occur. If the zero receipt is sent after a misdirected container reconciliation, then no further updates will be made, as the line would have been previously reconciled. If a zero receipt occurs before misdirected container processing, then the misdirected container processing at the actual receiving location will be treated as an overage, as the original location would have already been reconciled.
Other Key Notes
-
Externally generated warehouse-to-warehouse transfers are not supported in Merchandising, where the transfer is created in Merchandising at the physical warehouse level for both locations. For example, a warehouse-to-warehouse transfer created in WMS. This includes the receipt of such a transfer using this service.
-
Wrong store receiving is not supported for franchise transactions.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-209 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of receipt records. |
Table 5-210 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
appointmentNo |
No |
Number (9) |
Unique identifier for receiving a group of items. |
receipts |
Yes |
Collection of Object |
References a collection of customer order receipts. |
receiptOverages |
No |
Collection of Object |
Contains the Receipt Overage Information. This optional overage node is ignored by Merchandising. This overage group is used by Retail Fiscal Management system to differentiate whether an item or item quantity was not received due to specific reason codes (such as "damaged", for example). |
Table 5-211 Receipts - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID. |
distroNo |
No |
String (12) |
Specified the unique identifier of the purchase order, allocation or transfer. |
documentType |
Yes |
String (1) |
Specified whether the receipt is for an allocation 'A', purchase order 'P', or transfer 'T'. Types 'D' and 'V' are also valid document types that are treated the same as transfers. |
referenceDocumentNo |
No |
Number (10) |
Contains a reference number for a document associated to the shipment (e.g., Fiscal Document ID for Brazilian based transactions). |
asnNo |
No |
String (30) |
Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations. |
receiptType |
No |
String (2) |
This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt. |
fromLocation |
No |
Number (10) |
Contains the source location of the shipment. |
fromLocationType |
No |
String (1) |
Contains the from location type of the shipment. Valid values are W - Warehouse, E - External Finisher and S - Store. |
status |
No |
String (1) |
Indicates the status of the ASN received. This field is used only for stock order receiving and a status of C indicates that the entire ASN is will be set to closed. |
receiptDetails |
No |
Collection of Object |
References a collection of receipt details. |
cartons |
No |
Collection of Object |
References a collection of container details. |
Table 5-212 ReceiptDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Specifies the item on the allocation, purchase order, or transfer that has been received. |
receivedQuantity |
Yes |
Number (12,4) |
Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure. |
receiptTransactionType |
Yes |
String (1) |
Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type. |
receiptDate |
No |
date |
Identifies the date on which the transaction was received. |
externalReferenceNo |
Yes |
String (17) |
An externally generated identifier corresponding to the receipt of the item at the location. |
distroLocation |
No |
Number (10) |
Only used for purchase order receipt, when the purchase order has an allocation attached to it. This element specifies the location to which the allocation is being sent. |
containerId |
No |
String (30) |
Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments. |
refContainerId |
No |
String (30) |
Identifies the original carton number the item was shipped under, if it was being received at the wrong destination. This is required by Merchandising to process the updates correctly, as SIOCS reassigns the container ID at the receiving location. |
distroNo |
No |
String (12) |
Only used for purchase order receipts, when the purchase order has an allocation attached to it. This element contains the allocation id. |
distroDocumentType |
No |
String (1) |
Only used for purchase orders, when the purchase order has an allocation attached to it. When populated, this value should always be A to specify an allocation. |
toDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
fromDisposition |
No |
String (4) |
This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided. |
unitCost |
No |
Number (20,4) |
Used for purchase order receipts when configured for Global Tax (GTS) where the location’s country is localized. Otherwise, it is ignored except in scenarios where there is an unexpected item on the receipt, in which case it can be optionally included to indicate the receipt cost of the item. If not included for unexpected receipts, the default supplier cost is used. Cost is converted to the order’s currency before insert/update. |
shippedQuantity |
No |
Number (12,4) |
Only used for doc_type of 'P'. Updates the number of items expected to be received, originally set by the ASN process. |
weight |
No |
Number (12,4) |
Contains the actual weight of the item received for the shipment. This will be included for some catch weight items. |
weightUom |
No |
String (4) |
Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL. |
grossCost |
No |
Number (20,4) |
Contains the Unit cost and Expenses incurred on an item in a particular transaction. |
dummyCartonInd |
No |
String (1) |
Indicates if this carton is a dummy carton. This field is only used for transfer receipts. |
tamperedCartonInd |
No |
String (1) |
Indicates if the carton was tampered. This field is only used for transfer receipts. |
itemLineNo |
No |
Number (10) |
This field indicates the item line number from customer orders. |
Table 5-213 Cartons - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cartonStatus |
No |
String (1) |
Denotes the status of the carton received. It can be Actual (A), Dummy (D), Overage (O), or Closed (C). This field is used only for stock order receiving. A status of C indicates that the entire container is missing and the missing stock will be reconciled in RMS. |
containerId |
No |
String (30) |
Contains the carton ID for the shipment. |
receiptTransactionType |
Yes |
String (1) |
Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type. |
receiptDate |
No |
date |
This field contains the date on which the carton is received. |
externalReferenceNo |
No |
String (17) |
This field holds the externally generated number when the shipment is received at the location. |
toDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
weight |
No |
Number (12,4) |
Contains the actual weight of the item received for the shipment. This will be included for some catch weight items. |
weightUom |
No |
String (4) |
Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL. |
Table 5-214 ReceiptOverages - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo | No | String (12) | Contains purchase order number. |
details | No | Collection of Object | References a collection of Overage Receipt Detail Information |
Table 5-215 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item | No | String (25) | Unique identifier for the item. |
overageQuantity | No | Number (12,4) | Contains the quantity of the item received at the location as overage, damaged etc. |
reasonCode | No | Number (4) | Contains the rejection reason code or overage reason code. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"appointmentNo": 2,
"receipts": [
{
"location": 1111,
"distroNo": "100000055001",
"documentType": "T",
"referenceDocumentNo": 531121,
"asnNo": "ASN_11223344_2",
"receiptType": "BL",
"fromLocation": 2,
"fromLocationType": "W",
"status": null,
"receiptDetails": [
{
"item": "106400029",
"receivedQuantity": 3,
"receiptTransactionType": "R",
"receiptDate": "2001-12-31",
"externalReferenceNo": "ERN_10091",
"distroLocation": 2,
"containerId": "CTN_1_ASN_11223344_2",
"refContainerId": null,
"distroNo": "100000055001",
"distroDocumentType": "A",
"toDisposition": "ATS",
"fromDisposition": "ATS",
"unitCost": 9.65,
"shippedQuantity": 3,
"weight": 3,
"weightUom": "KG",
"grossCost": 9.65,
"dummyCartonInd": "Y",
"tamperedCartonInd": "Y",
"itemLineNo": null
}
],
"cartons": [
{
"cartonStatus": "A",
"containerId": "CTN_1_ASN_11223344_2",
"receiptTransactionType": "R",
"receiptDate": "2001-12-31",
"externalReferenceNo": "ERN_10091",
"toDisposition": "ATS",
"weight": 3,
"weightUom": "KG"
}
]
}
],
"receiptOverages": [
{
"orderNo": "545005",
"details": [
{
"item": "106400029",
"overageQuantity": 24,
"reasonCode": 3
}
]
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Manage Purchase Order Receipts
Business Overview
This service is used to process receipts within Merchandising against purchase orders. The receipt gets processed against the matching shipment if it already exists within Merchandising whereas a new shipment record and receipt are created if it does not find a matching shipment. Purchase orders can be received only at an item level using this service.
When a PO is received at a location, Merchandising will update the appropriate tables, including the shipment and purchase order, stock on hand, as well as other inventory buckets (e.g., in-transit). A record of the receipt is also made in the transaction level stock ledger.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-216 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of receipt records. |
Table 5-217 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
appointmentNo |
No |
Number (9) |
Unique identifier for receiving a group of items. |
receipts |
Yes |
Collection of Object |
References a collection of purchase order receipts. |
receiptOverages |
No |
Collection of Object |
Contains the Receipt Overage Information. This optional overage node is ignored by MFCS. This overage group is used by Retail Fiscal Management system to differentiate whether an item or item quantity was not received due to specific reason codes such as damaged for example. |
Table 5-218 Receipts - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID. |
orderNo |
No |
Number (12) |
Specified the unique identifier of the purchase order, allocation or transfer. |
referenceDocumentNo |
No |
Number (10) |
Contains a reference number for a document associated to the shipment (e.g., Fiscal Document ID for Brazilian based transactions). |
asnNo |
No |
String (30) |
Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations. |
receiptDetails |
No |
Collection of Object |
References a collection of receipt details. |
Table 5-219 ReceiptDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Specifies the item on the allocation, purchase order, or transfer that has been received. |
receivedQuantity |
Yes |
Number (12,4) |
Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure. |
receiptTransactionType |
Yes |
String (1) |
Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type. |
receiptDate |
No |
date |
Identifies the date on which the transaction was received. |
externalReferenceNo |
Yes |
String (17) |
An externally generated identifier corresponding to the receipt of the item at the location. |
distroLocation |
No |
Number (10) |
Only used for purchase order receipt, when the purchase order has an allocation attached to it. This element specifies the location to which the allocation is being sent. |
containerId |
No |
String (30) |
Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments. |
distroNo |
No |
String (12) |
Only used for purchase order receipts, when the purchase order has an allocation attached to it. This element contains the allocation id. |
distroDocumentType |
No |
String (1) |
Only used for purchase orders, when the purchase order has an allocation attached to it. When populated, this value should always be A to specify an allocation. |
toDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
fromDisposition |
No |
String (4) |
This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided. |
unitCost |
No |
Number (20,4) |
Used for purchase order receipts when configured for Global Tax (GTS) where the location’s country is localized. Otherwise, it is ignored except in scenarios where there is an unexpected item on the receipt, in which case it can be optionally included to indicate the receipt cost of the item. If not included for unexpected receipts, the default supplier cost will be used. Cost is converted to the order’s currency before insert/update. |
shippedQuantity |
No |
Number (12,4) |
Only used for doc_type of 'P'. Updates the number of items expected to be received, originally set by the ASN process. |
weight |
No |
Number (12,4) |
Contains the actual weight of the item received for the shipment. This will be included for some catch weight items. |
weightUom |
No |
String (4) |
Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL. |
grossCost |
No |
Number (20,4) |
Contains the Unit cost and Expenses incurred on an item in a particular transaction. |
itemLineNo |
No |
Number (10) |
This field indicates the item line number from customer orders. |
Table 5-220 ReceiptOverages - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
No |
String (12) |
Specifies the unique identifier of the purchase order. |
details |
No |
Collection of Object |
References a collection of Overage Receipt Detail Information |
Table 5-221 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
No |
String (25) |
Unique identifier for the item. |
overageQuantity |
No |
Number (12,4) |
Contains the quantity of the item received at the location as overage, damaged etc. |
reasonCode |
No |
Number (4) |
Contains the rejection reason code or overage reason code. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"appointmentNo": 1,
"receipts": [
{
"location": 1211,
"orderNo": 545005,
"referenceDocumentNo": 531121,
"asnNo": "PO_54005_2",
"receiptDetails": [
{
"item": "106400029",
"receivedQuantity": 3,
"receiptTransactionType": "R",
"receiptDate": "2001-12-31",
"externalReferenceNo": "Receipt_531121",
"distroLocation": null,
"containerId": null,
"distroNo": null,
"distroDocumentType": null,
"toDisposition": "ATS",
"fromDisposition": "ATS",
"unitCost": 10,
"shippedQuantity": 5,
"weight": 5,
"weightUom": "KG",
"grossCost": 10.5,
"itemLineNo": null
}
]
}
],
"receiptOverages": [
{
"orderNo": "545005",
"details": [
{
"item": "106400029",
"overageQuantity": 24,
"reasonCode": 3
}
]
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Manage Stock Order Receipts
Business Overview
This service processes receipts that Merchandising receives against transfers, and allocations received at a store, warehouse or finisher. Transfers and allocations, collectively referred to as stock orders, may be received at the bill of lading (BOL) level, where the entire shipment is received without including details, carton level, or item level.
When a transfer or allocation is received at a location, Merchandising will update the appropriate tables, including the shipment, the transfer or allocation, stock on hand, as well as other inventory buckets (e.g., in-transit). A record of the receipt is also made in the Stock Ledger.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-222 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of receipt records. |
Table 5-223 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
appointmentNo |
No |
Number (9) |
Unique identifier for receiving a group of items. |
receipts |
Yes |
Collection of Object |
References a collection of transfer receipts. |
Table 5-224 Receipts - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID. |
distroNo |
No |
String (12) |
Specified the unique identifier of the purchase order, allocation or transfer. |
documentType |
Yes |
String (1) |
Specified whether the receipt is for an allocation 'A', purchase order 'P', or transfer 'T'. Types 'D' and 'V' are also valid document types that are treated the same as transfers. |
asnNo |
No |
String (30) |
Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations. |
receiptType |
No |
String (2) |
This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt. |
fromLocation |
No |
Number (10) |
Contains the source location of the shipment. |
fromLocationType |
No |
String (1) |
Contains the from location type of the shipment. Valid values are W - Warehouse, E - External Finisher and S - Store. |
status |
No |
String (1) |
Indicates the status of the ASN received. This field is used only for stock order receiving and a status of C indicates that the entire ASN is will be set to closed. |
receiptDetails |
No |
Collection of Object |
References a collection of receipt details. |
cartons |
No |
Collection of Object |
References a collection of container details. |
Table 5-225 ReceiptDetails - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Specifies the item on the allocation, purchase order, or transfer that has been received. |
receivedQuantity |
Yes |
Number (12,4) |
Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure. |
receiptTransactionType |
Yes |
String (1) |
Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type. |
receiptDate |
No |
date |
Identifies the date on which the transaction was received. |
externalReferenceNo |
Yes |
String (17) |
An externally generated identifier corresponding to the receipt of the item at the location. |
containerId |
No |
String (30) |
Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments. |
refContainerId |
No |
String (30) |
Identifies the original carton number the item was shipped under, if it was being received at the wrong destination. This is required by Merchandising to process the updates correctly, as SIOCS reassigns the container ID at the receiving location. |
toDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
fromDisposition |
No |
String (4) |
This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided. |
weight |
No |
Number (12,4) |
Contains the actual weight of the item received for the shipment. This will be included for some catch weight items. |
weightUom |
No |
String (4) |
Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL. |
dummyCartonInd |
No |
String (1) |
Indicates if this carton is a dummy carton. This field is only used for transfer receipts. |
tamperedCartonInd |
No |
String (1) |
Indicates if the carton was tampered. This field is only used for transfer receipts. |
Table 5-226 Cartons - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cartonStatus |
No |
String (1) |
Denotes the status of the carton received. It can be Actual (A), Dummy (D), Overage (O), or Closed (C). This field is used only for stock order receiving. A status of C indicates that the entire container is missing and the missing stock will be reconciled in RMS. |
containerId |
No |
String (30) |
Contains the carton ID for the shipment. |
receiptTransactionType |
Yes |
String (1) |
Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type. |
receiptDate |
No |
date |
This field contains the date on which the carton is received. |
externalReferenceNo |
No |
String (17) |
This field holds the externally generated number when the shipment is received at the location. |
toDisposition |
No |
String (4) |
This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table. |
weight |
No |
Number (12,4) |
Contains the actual weight of the item received for the shipment. This will be included for some catch weight items. |
weightUom |
No |
String (4) |
Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"appointmentNo": 2,
"receipts": [
{
"location": 1111,
"distroNo": "100000055001",
"documentType": "T",
"asnNo": "ASN_11223344_2",
"receiptType": "BL",
"fromLocation": 2,
"fromLocationType": "W",
"status": null,
"receiptDetails": [
{
"item": "104100022",
"receivedQuantity": 3,
"receiptTransactionType": "R",
"receiptDate": "2001-12-31",
"externalReferenceNo": "ERN_10091",
"containerId": "CTN_1_ASN_11223344_2",
"refContainerId": null,
"toDisposition": "ATS",
"fromDisposition": "ATS",
"weight": 3,
"weightUom": "KG",
"dummyCartonInd": "Y",
"tamperedCartonInd": "Y"
}
],
"cartons": [
{
"cartonStatus": "A",
"containerId": "CTN_1_ASN_11223344_2",
"receiptTransactionType": "R",
"receiptDate": "2001-12-31",
"externalReferenceNo": "ERN_10091",
"toDisposition": "ATS",
"weight": 3,
"weightUom": "KG"
}
]
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Update DSD Receipts
Business Overview
This service allows to modify an existing direct store delivery (DSD) receipt within Merchandising. For more information about the DSD receipts, see the Create DSD Receipts service.
Availability During Nightly Batch Cycle
This service will not be available when batches affecting either inventory or cost are in-progress.
Input Payload Details
Table 5-227 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of DSD Receipts. |
Table 5-228 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
supplier |
Yes |
Number (10) |
This field contains the unique identifying number for a supplier for the receipt. |
store |
Yes |
Number (10) |
This field contains the location where the items were delivered. |
externalReceiptNo |
No |
String (17) |
This field holds the external transaction sequence number for the receipt. |
receiptDate |
No |
date |
This field contains the date of the receipt. |
details |
No |
Collection of Object |
References a collection of DSD Receipt detail records. |
Table 5-229 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
This field contains the item in the receipt. The item must be an approved item that is at transaction level or above. |
quantityReceived |
Yes |
Number (12,4) |
This field contains the number of items received for the item/shipment combination. The value must be greater than 0. |
unitCost |
No |
Number (20,4) |
This field contains the cost of the item from the supplier/origin country in the supplier's currency. |
weight |
No |
Number (12,4) |
This field contains the weight of the item in the receipt, if it is a catch weight item. |
weightUom |
No |
String (4) |
This field contains the unit of measure of the received weight. |
Sample Input Message
{
"items": [
{
"supplier": 2400,
"store": 1531,
"externalReceiptNo": "RECREF1531",
"receiptDate": "2001-12-31",
"details": [
{
"item": "100750001",
"quantityReceived": 3,
"unitCost": 9.65,
"weight": 3,
"weightUom": null
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Stock Counts
The following services are included in this functional area:
Stock Count Download Service
The following services are included in this functional area:
Get Stock Count Detail
This section describes the Stock Count Detail service.
Business Overview
Stock Count Detail service allows user to retrieve open stock count details for a given item and/or store.
ReST URL
StockCount/stockCountDetail?cycleCount={cycleCount}&locationType={locationType}&location={location}&item={item}&stocktakeDate={stocktakeDate}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
Item |
No |
Item |
Location |
No |
Location |
Location Type |
No |
Location Type |
Cycle Count |
No |
Cycle Count |
Stocktake Date |
No |
Stocktake Date (always optional) |
Output
RestStockCountRecRDO
Parameter Name | Data Type |
---|---|
cycleCount |
BigDecimal |
cycleCountDesc |
String |
stocktakeDate |
Timestamp |
stocktakeType |
String |
stakeSkuLoc |
List<RestStakeSkuLocRecRDO> |
RestStakeSkuLocRecRDO
Parameter Name | Data Type |
---|---|
item |
String |
location |
BigDecimal |
locType |
String |
snapshotOnHandQty |
BigDecimal |
snapshotInTransitQty |
BigDecimal |
snapshotUnitCost |
BigDecimal |
snapshotUnitRetail |
BigDecimal |
processed |
String |
physicalCountQty |
BigDecimal |
packCompQty |
BigDecimal |
inTransitAmt |
BigDecimal |
depositItemType |
String |
xformItemType |
String |
distributeQty |
BigDecimal |
JSON Structure
{
"cycleCount":null,
"cycleCountDesc":null,
"stocktakeDate":null,
"stocktakeType":null,
"stakeSkuLoc": [
{
"item":null,
"location":null,
"locType":null,
"snapshotOnHandQty":null,
"snapshotInTransitQty":null,
"snapshotUnitCost":null,
"snapshotUnitRetail":null,
"processed":null,
"physicalCountQty":null,
"packCompQty":null,
"inTransitAmt":null,
"depositItemType":null,
"xformItemType":null,
"distributeQty":null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Stock Count Upload Service
The following services are included in this functional area:
Create Stock Count Schedules
Business Overview
Stock count schedules are published by an inventory sub-system, such as Oracle Retail Store Inventory and Operations Cloud Service (SIOCS), to communicate unit and value stock count schedules to Merchandising. This stock count schedule data helps in synchronizing the inventory values of the integrated system and Merchandising. This integrated system then performs a physical inventory count and uploads the results, and Merchandising compares the discrepancies.
This webservice allows the external systems to create Unit and Value stock count requests within Merchandising. The count is assumed to be for the full location, unless any department, class or subclass details are included.
When a new stock count request is created, this webservice will validate all the required fields that are present in the message which includes a description, date, location type and location details. The stock take type will always be B (both unit and dollar). Optionally, the merchandise hierarchy information can also be included, but, if not included, it will be assumed the entire location will be counted. After the required field and business validations are successfully completed, the stock counts will be created in Merchandising.
Availability During Nightly Batch Cycle
This service will not be available during total duration of nightly batch run cycle.
Input Payload Details
Table 5-230 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of stock count schedule records. |
Table 5-231 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cycleCount |
Yes |
Number (8) |
Contains the number which uniquely identifies the stock or cycle count. |
description |
Yes |
String (250) |
This field contains a description of the cycle or stock count which, along with the cycle count number, identifies the cycle or stock count. |
locationType |
Yes |
String (1) |
This field contains an indicator which identifies whether the cycle count will be for Stores or Warehouses. Valid values are Store (S) and Warehouse (W). |
stocktakeDate |
Yes |
date |
Contains the date on which the stock or cycle count even will take place. |
merchandiseHierarchy |
No |
Collection of Object |
References a collection of merchandies hierarchies to be included in the stock count. If not present, all departments will be included in the count. |
locations |
No |
Collection of Object |
References a collection of locations to be included in the stock count. |
Table 5-232 MerchandiseHierarchy - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
dept |
Yes |
Number (4) |
This field contains the department number where the cycle count will occur. If the value = -1, the stock count will apply to all departments. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
class |
No |
Number (4) |
This field contains the class number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
subclass |
No |
Number (4) |
This field contains the subclass number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
Table 5-233 Locations - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"cycleCount": 1001,
"description": "Cycle count 1001",
"locationType": "S",
"stocktakeDate": "2001-12-31",
"merchandiseHierarchy": [
{
"dept": 3041,
"class": 1,
"subclass": 1
}
],
"locations": [
{
"location": 6000
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Delete Stock Count Schedule Locations
Business Overview
This webservice allows external systems to delete locations from existing stock counts within Merchandising. This validates if all the required fields are present in the message and after the required field and business validations are completed successfully, the stock count locations will be removed. If all locations in the stock count are deleted, the entire stock count will be marked for deletion.
Availability During Nightly Batch Cycle
This service will not be available during total duration of nightly batch run cycle.
Input Payload Details
Table 5-234 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cycleCount |
Yes |
Number (8) |
Contains the number which uniquely identifies the stock or cycle count. |
locations |
No |
Collection of Object |
References a collection of locations to be deleted from the stock count. |
Table 5-235 Locations - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising. |
Sample Input Message
{
"cycleCount": 1001,
"locations": [
{
"location": 6000
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Delete Stock Count Schedules
Business Overview
This webservice allows the external systems to delete stock counts from Merchandising. This webservice will validate if all the required fields are present in the message. After required field and business validation are successfully completed, the stock counts will be marked for deletion in Merchandising.
A separate webservice Delete Stock Count Schedule Locations supports deleting a location from the count.
For more details on Stock Count Schedules, see the Create Stock Count Schedule service description.
Availability During Nightly Batch Cycle
This service will not be available during total duration of nightly batch run cycle.
Input Payload Details
Table 5-236 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cycleCount |
Yes |
Number (8) |
Contains the number which uniquely identifies the stock or cycle count. |
Sample Input Message
{
"cycleCount": 1001
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Update Stock Count Schedules
Business Overview
This webservice allows external systems to modify Unit and Value stock count requests that are already present within Merchandising. When an existing stock count request is updated, this webservice will validate all the required fields that are present in the message which includes a description, date, location type, and location details. After the required field and business validations are completed successfully, the stock counts will be updated in Merchandising.
For more details on Stock Count Schedules, see the Create Stock Count Schedule service description.
Availability During Nightly Batch Cycle
This service will not be available during total duration of nightly batch run cycle.
Input Payload Details
Table 5-237 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
cycleCount |
Yes |
Number (8) |
Contains the number which uniquely identifies the stock or cycle count. |
description |
Yes |
String (250) |
This field contains a description of the cycle or stock count which, along with the cycle count number, identifies the cycle or stock count. |
locationType |
Yes |
String (1) |
This field contains an indicator which identifies whether the cycle count will be for Stores or Warehouses. Valid values are Store (S) and Warehouse (W). |
stocktakeDate |
Yes |
date |
Contains the date on which the stock or cycle count even will take place. |
merchandiseHierarchy |
No |
Collection of Object |
References a collection of merchandies hierarchies to be included in the stock count. If not present, all departments will be included in the count. |
locations |
No |
Collection of Object |
References a collection of locations to be included in the stock count. |
Table 5-238 MerchandiseHierarchy - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
dept |
Yes |
Number (4) |
This field contains the department number where the cycle count will occur. If the value = -1, the stock count will apply to all departments. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
class |
No |
Number (4) |
This field contains the class number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
subclass |
No |
Number (4) |
This field contains the subclass number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising. |
Table 5-239 Locations - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising. |
Sample Input Message
{
"cycleCount": 1001,
"description": "Cycle count 1001",
"locationType": "S",
"stocktakeDate": "2001-12-31",
"merchandiseHierarchy": [
{
"dept": 3041,
"class": 1,
"subclass": 1
}
],
"locations": [
{
"location": 6000
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Transfers and Allocations
The following services are included in this functional area:
Allocation Download Service
The following services are included in this functional area:
Get Allocation Details for Provided Allocation
Endpoint
MerchIntegrations/services/inventory/allocation
MerchIntegrations/services/inventory/allocation/{allocNo}
Business Overview
This service can be used by external applications to get all or selected allocations and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/allocation? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
offsetkey |
No |
String |
Offset Key. Valid Value is warehouse id and ware house type. |
limit |
No |
BigDecimal |
Pagination limit. Default Value is |
Output
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Allocation details. Valid Values are INSERT, UPDATE and DELETE. |
allocNo |
Number |
This field specifies the number that uniquely identifies the allocation within the system. |
docType |
String |
This field specifies type that is source for allocation. |
physicalWarehouse |
Number |
This field specifies number that is used to identify physical warehouse for virtual warehouse. |
warehouse |
Number |
This field specifies number which uniquely identifies the warehouse. |
item |
String |
This field specifies unique alphanumeric value that identifies the item. |
pickNotBeforeDate |
String |
This field specifies first date on which the allocation should be released from the warehouse for delivery to the store locations. |
pickNotAfterDate |
String |
This field specifies last date on which the allocation should be released from the warehouse for delivery to the store locations. |
orderType |
String |
This field specifies identifies the type of the order. Allocations created against Purchase Orders will be marked as PREDIST order types. Allocations created against Warehouse stock will be populated with the DEFAULT_ORDER_TYPE from the SYSTEM_OPTIONS table which can be AUTOMATIC, MANUAL or WAVE. |
orderNo |
Number |
This field specifies order number to which the allocation applies. |
orderDocType |
String |
This field specifies order type and defaulted to ‘P’. |
priority |
Number |
This field specifies the priority of an allocation. This field is defaulted to 1. |
ticketTypeId |
String |
This field uniquely identifies the ticket type which is associated with the item. |
contextType |
String |
This field specifies functional area code to which the transfer relates to, for example, Promotions. Valid values are: PROM - Promotion. |
contextValue |
String |
This field specifies value relating to the context type, for example, Promotion Number. |
allocStatus |
String |
This field specifies status of the allocation. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the date when the record was last updated. |
details |
This list holds detail records for the allocation. |
|
cacheTimestamp |
String |
This field specifies date and time when allocation record was last maintained. |
Table 5-240 details
Name | Data Type | Description |
---|---|---|
physicaltoLocation |
Number |
This field specifies physical warehouse of virtual warehouse, provide to location is a warehouse. |
toLocation |
Number |
This field specfies location to which the allocation is being sent. |
locationType |
String |
This field specfies type of location in the location field. Valid values are Store and Warehouse. |
storeType |
String |
This field specfies if the store is company or franchise store and not populated in case of warehouse. |
stockholdingInd |
String |
This field specfies indicates whether the store can hold stock. In a non-multichannel environment, field is defaulted to Y.Not populated in case of warehouse. |
quantityAllocated |
Number |
This column contains the total number of items allocated. |
price |
Number |
This field specifies unit retail price in the selling unit retail. |
sellingUom |
String |
This field specifies selling unit of measure for an item. |
priority |
Number |
This field specifies the priority of an allocation details. This field is defaulted to 1. |
storeOrderMultiple |
String |
This field contains the multiple in which the item needs to be shipped from a warehouse to the location. |
inStoreDate |
String |
This field contains the date to be included in the publication to communication for warehouse. |
rushFlag |
String |
This field contains rush flag indicator to be included in the publication to communication for warehouse. |
createDateTime |
String |
This field holds the record creation date. |
updateDateTime |
String |
This field holds the date when the record was last updated. |
detailsTicket |
This List holds attributes for details of allocation details ticket record. |
Table 5-241 detailsTicket
Name | Data Type | Description |
---|---|---|
componentItem |
String |
This field specifies Alphanumeric value that identifies the component item within the pack. |
componentPrice |
Number |
This field specifies unit retail price in the selling unit retail of the component item within the pack. |
componentSellingUom |
String |
This field specifies selling unit of measure for an component item within the pack. |
Table 5-242 Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"allocNo": 5002,
"docType": "A",
"physicalWarehouse": 440,
"warehouse": 441,
"item": "100500002",
"pickNotBeforeDate": "2022-02-16",
"pickNotAfterDate": "2022-03-18",
"orderType": "AUTOMATIC",
"orderNo": null,
"orderDocType": "P",
"priority": 1,
"ticketTypeId": null,
"contextType": null,
"contextValue": null,
"allocStatus": "A",
"createDateTime": "2022-02-16T19:06:31.000Z",
"updateDateTime": "2022-02-16T19:06:31.000Z",
"details": [
{
"physicaltoLocation": 8811,
"toLocation": 8811,
"locationType": "S",
"storeType": "C",
"stockholdingInd": "Y",
"quantityAllocated": 1,
"price": 12.22,
"sellingUom": "EA",
"priority": 1,
"storeOrderMultiple": "E",
"inStoreDate": "2022-02-17",
"rushFlag": null,
"createDateTime": "2022-02-16T19:06:31.000Z",
"updateDateTime": "2022-02-16T19:06:31.000Z",
"detailsTicket": null
}
],
"cacheTimestamp": "2022-04-06T11:36:30.809Z"
},
{
"action": "INSERT",
"allocNo": 5003,
"docType": "A",
"physicalWarehouse": 440,
"warehouse": 441,
"item": "100500002",
"pickNotBeforeDate": "2022-02-16",
"pickNotAfterDate": "2022-03-18",
"orderType": "AUTOMATIC",
"orderNo": null,
"orderDocType": "P",
"priority": 1,
"ticketTypeId": null,
"contextType": null,
"contextValue": null,
"allocStatus": "A",
"createDateTime": "2022-02-16T19:27:43.000Z",
"updateDateTime": "2022-02-16T19:27:43.000Z",
"details": [
{
"physicaltoLocation": 1515,
"toLocation": 1515,
"locationType": "S",
"storeType": "C",
"stockholdingInd": "Y",
"quantityAllocated": 1,
"price": 12.22,
"sellingUom": "EA",
"priority": 1,
"storeOrderMultiple": "E",
"inStoreDate": "2022-02-17",
"rushFlag": null,
"createDateTime": "2022-02-16T19:27:43.000Z",
"updateDateTime": "2022-02-16T19:27:43.000Z",
"detailsTicket": null
}
],
"cacheTimestamp": "2022-04-06T11:36:31.628Z"
}
],
"hasMore": true,
"limit": 2,
"count": 2,
"links": [
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/allocation?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-08T12:19:48.608912+00:00",
"rel": "self"
},
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/allocation?offsetkey=5003&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-08T12:19:48.608912+00:00",
"rel": "next"
}
]
}"
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_ALLOC |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_ALLOC |
Yes |
Yes |
Yes |
No |
V_MERCHAPI_EXT_ALLOC_JSON |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
Get Details for an Allocation
This section describes the Allocation Detail service.
Business Overview
Allocation Detail service allows user to retrieve Allocation information for a selected allocation number.
Output
RestAllocRecRDO
Parameter Name | Data Type |
---|---|
alloc_no |
BigDecimal |
order_no |
BigDecimal |
wh |
BigDecimal |
item |
String |
status |
String |
alloc_desc |
String |
po_type |
String |
alloc_method |
String |
release_date |
Date |
order_type |
String |
doc |
String |
doc_type |
String |
origin_ind |
String |
close_date |
Date |
alloc_detail |
List<RestAllocDetailRecRDO> |
RestAllocDetailRecRDO
Parameter Name | Data Type |
---|---|
to_loc |
BigDecimal |
to_loc_type |
String |
qty_transferred |
BigDecimal |
qty_allocated |
BigDecimal |
qty_prescaled |
BigDecimal |
qty_distro |
BigDecimal |
qty_selected |
BigDecimal |
qty_cancelled |
BigDecimal |
qty_received |
BigDecimal |
qty_reconciled |
BigDecimal |
po_rcvd_qty |
BigDecimal |
non_scale_ind |
String |
in_store_date |
Date |
wf_order_no |
BigDecimal |
rush_flag |
String |
JSON Structure
[
{
"docType": null,
"allocDetail": [
{
"qtyTransferred": null,
"rushFlag": null,
"wfOrderNo": null,
"inStoreDate": null,
"qtyAllocated": null,
"nonScaleInd": null,
"toLoc": null,
"qtyPrescaled": null,
"toLocType": null,
"qtyDistro": null,
"qtySelected": null,
"qtyReceived": null,
"qtyCancelled": null,
"qtyReconciled": null,
"poRcvdQty": null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"doc": null,
"originInd": null,
"allocNo": null,
"wh": null,
"allocMethod": null,
"allocDesc": null,
"poType": null,
"item": null,
"status": null,
"orderNo": null,
"orderType": null,
"releaseDate": null,
"closeDate": null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
]
Allocation Number Download Service
The following services are included in this functional area:
Get Next Allocation Numbers Service
Business Overview
This service retrieves next available allocation numbers from Merchandising. This service
takes an optional query parameter of count
to retreive multiple (up to
999
) allocation numbers. The count
defaults to
1
if the query parameter is not provided.
Input Parameters
Parameter Name | Required | Description |
---|---|---|
Count | No | Count (1-999) of allocation numbers to be fetched. Default value is
1 .
|
Output
Parameter Name | Data Type | Details |
---|---|---|
allocNo | Number | Deprecated (Use allocNumbers ) as this service has been enhanced
to return multiple allocation numbers. This field will contain the first allocation
number from the allocNumbers list.
|
allocNumbers | Array |
Contains list of available allocation numbers. |
JSON Structure:
{
"allocNo": 123456,
"allocNumbers": [123456,123457]
}
Allocation Upload Service
The following services are included in this functional area:
Close Allocations
Business Overview
This service can be used to close allocations within Merchandising from an external system. After successfully validating the information in the message, the header level record is updated to the Closed (C) status.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-243 Close - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
No |
Collection of Object |
References a collection of allocations. |
Table 5-244 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Create Allocation Details
Business Overview
This service can be used to create detail level records for one or more allocations within Merchandising from an external application. This would add new destination locations to the items that are already present in existing allocations.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-245 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of allocations. |
Table 5-246 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
allocationDescription |
Yes |
String (300) |
Contains the user defined description of the allocation. |
orderNo |
No |
Number (12) |
Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order. |
item |
Yes |
String (25) |
Contains the transaction level item that is being allocated. |
fromLocation |
Yes |
Number (10) |
Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse. |
documentNo |
No |
String (30) |
Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order. |
documentType |
No |
String (5) |
Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided. |
details |
No |
Collection of Object |
References a collection of allocation details. |
Table 5-247 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
Yes |
Number (10) |
Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse. |
toLocationType |
Yes |
String (1) |
Contains the type of the destination location. Valid values are S (store) and W (warehouse). |
quantityAllocated |
Yes |
Number (12,4) |
Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value. |
inStoreDate |
No |
date |
Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse. |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"allocationDescription": "Allocation to 1311.",
"orderNo": 585036,
"item": "2147483647",
"fromLocation": 10001,
"documentNo": null,
"documentType": null,
"details": [
{
"toLocation": 6000,
"toLocationType": "S",
"quantityAllocated": 3,
"inStoreDate": "2001-12-31"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Create Allocations
Business Overview
This service can be used to create allocations within Merchandising from an external system. Allocations created or updated using this API include those that are based on warehouse inventory, as well as those using inventory from another transaction such as a purchase order, another allocation, a transfer, or a shipment (Vendor ASN or BOL). When allocating using something other than warehouse inventory, the ID of the transaction must also be included as part of the message.
Allocations can involve both stockholding and non-stockholding locations. This includes the ability to process allocations to both stockholding and non-stockholding company and franchise stores, as well as any stockholding warehouse locations, except internal finishers. If an allocation for a franchise store is received, Merchandising will also create a corresponding franchise order. This API supports multiple types of destination locations (warehouses as well as stores) as part of the detail section within the same message.
The Oracle Retail Allocation Cloud Service does not use this API to interface allocations to Merchandising.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-248 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of allocations. |
Table 5-249 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
allocationDescription |
Yes |
String (300) |
Contains the user defined description of the allocation. |
orderNo |
No |
Number (12) |
Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order. |
item |
Yes |
String (25) |
Contains the transaction level item that is being allocated. |
fromLocation |
Yes |
Number (10) |
Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse. |
releaseDate |
No |
date |
Contains the earliest date on which the warehouse should ship the allocation. |
originInd |
No |
String (6) |
Indicates the source application that sends the allocation. Valid values are 'AIP' and 'EG'. It will be defaulted to 'EG' in Merchandising if not defined. |
documentNo |
No |
String (30) |
Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order. |
documentType |
No |
String (5) |
Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided. |
contextType |
No |
String (6) |
Contains the functional area code to which the allocation relates to. Valid codes are defined in the CNTX code type. Examples are Promotion, Repairing. |
contextValue |
No |
String (25) |
Contains the value relating to the context type. Example: Promotion Number. |
details |
No |
Collection of Object |
References a collection of allocation details |
Table 5-250 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
Yes |
Number (10) |
Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse. |
toLocationType |
Yes |
String (1) |
Contains the type of the destination location. Valid values are S (store) and W (warehouse). |
quantityAllocated |
Yes |
Number (12,4) |
Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value. |
inStoreDate |
No |
date |
Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse. |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"allocationDescription": "Allocation to 1311.",
"orderNo": 585036,
"item": "2147483647",
"fromLocation": 10001,
"releaseDate": "2001-12-31",
"originInd": "EG",
"documentNo": null,
"documentType": null,
"contextType": "PROM",
"contextValue": "79890",
"details": [
{
"toLocation": 6000,
"toLocationType": "S",
"quantityAllocated": 3,
"inStoreDate": "2001-12-31"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Delete Allocation Details
Business Overview
This service can be used to remove detail level data from one or more allocations within Merchandising from an external system. On successful validation of the information present in the message, the detail level records are deleted from the database.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-251 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
No |
Collection of Object |
References a collection of allocations. |
Table 5-252 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
details |
No |
Collection of Object |
References a collection of allocation details |
Table 5-253 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
Yes |
Number (10) |
Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse. |
toLocationType |
Yes |
String (1) |
Contains the type of the destination location. Valid values are S (store) and W (warehouse). |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"details": [
{
"toLocation": 1311,
"toLocationType": "S"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Update Allocation Details
Business Overview
This service allows an external application modify details on one or more allocations at a time within Merchandising. If modifying an existing location, Merchandising assumes the passed in quantity is an adjustment to the current quantity as opposed to an overwrite. The service verifies the allocation is not in-transit, received, nor in progress and that the quantity does not fall to zero or below.
For more information about allocation, see the Create Allocation Service.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-254 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of allocations. |
Table 5-255 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
orderNo |
No |
Number (12) |
Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order. |
item |
Yes |
String (25) |
Contains the transaction level item that is being allocated. |
fromLocation |
Yes |
Number (10) |
Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse. |
documentNo |
No |
String (30) |
Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order. |
documentType |
No |
String (5) |
Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided. |
details |
No |
Collection of Object |
References a collection of allocation details. |
Table 5-256 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
Yes |
Number (10) |
Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse. |
toLocationType |
Yes |
String (1) |
Contains the type of the destination location. Valid values are S (store) and W (warehouse). |
quantityAllocated |
Yes |
Number (12,4) |
Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value. |
inStoreDate |
No |
date |
Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse. |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"orderNo": 585036,
"item": "2147483647",
"fromLocation": 10001,
"documentNo": null,
"documentType": null,
"details": [
{
"toLocation": 6000,
"toLocationType": "S",
"quantityAllocated": 3,
"inStoreDate": "2001-12-31"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Update Allocations
Business Overview
This service can be used to update allocations within Merchandising from an external system. In order to perform an update, the existence of a matching record in the allocation header table is mandatory. Currently, only the allocation description and the release date can be modified at the header level.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-257 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of allocations. |
Table 5-258 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
allocationNo |
Yes |
Number (10) |
Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations. |
allocationDescription |
Yes |
String (300) |
Contains the user defined description of the allocation. |
item |
Yes |
String (25) |
Contains the transaction level item that is being allocated. |
fromLocation |
Yes |
Number (10) |
Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse. |
releaseDate |
No |
date |
Contains the earliest date on which the warehouse should ship the allocation. |
contextType |
No |
String (6) |
Contains the actual purpose behind the creation of the allocation in the overall business setup. Valid codes need to be defined in the code type = 'CNTX'. E.g. - Promotion, Repairing, etc. |
contextValue |
No |
String (25) |
Contains the value related to the specified context type, wherever applicable. E.g.: Promotion ID when the context type is set as 'Promotion'. |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"allocationDescription": "Allocation to 1311.",
"item": "2147483647",
"fromLocation": 10001,
"releaseDate": "2001-12-31",
"contextType": "REPAIR",
"contextValue": "71256"
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Mobile Workflow Transfer Download Service
The following services are included in this functional area:
Create Transfer - Get From Locations for Transfer
This section describes the Search From Location service.
Business Overview
This service retrieves locations applicable for inventory transfer. Location can be searched by either 'S'tore or 'W'arehouse. Then enter a location number, a partial location number, a location description, or a partial location description in the search string.
The locations returned are constrained by the following criteria:
-
When search type is warehouse only virtual warehouses are returned.
-
Only stockholding location.
-
When search type is store then only open stores are returned.
-
When items are sent as input then only locations with available inventory are returned.
-
When To Location is sent as input then:
-
It cannot be the same as the To Location.
-
When transfer type is Manual Requisition, then only locations with the same Transfer Entity/Set of Books as the To Location are returned in the search results.
-
When the transfer type is Intercompany, then only locations with a different Transfer Entity/Set of Books to the To Location are returned in the search results.
-
Only locations in the same transfer zone are returned in the search results.
-
ReST URL
/Transfer/fromLocation?locationType={locationType}&searchString={searchString}&tsfType={tsfType}&toLocation={toLocation}&items={items}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
LocationType |
Yes |
Location type Store or warehouse |
|
SearchString |
Yes |
search string for locations Id or Name |
NA |
tsfType |
Yes |
Transfer type |
|
toLocation |
No |
Selected to location ID |
NA |
items |
No |
Comma Separated values for selected items |
NA |
PageSize |
No |
Maximum number of locations to retrieve per page |
NA |
PageNumber |
No |
Result page to retrieve |
NA |
Output
TsfLocSearchResultRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
locType |
String |
locName |
String |
locCurrencyCode |
String |
entity |
BigDecimal |
entityDesc |
String |
tsfLocitemSearchRes |
List<TsfLocitemSearchResRDO> |
TsfLocitemSearchResRDO
Parameter Name | Data Type |
---|---|
item |
String |
availQty |
BigDecimal |
averageCost |
BigDecimal |
unitRetail |
BigDecimal |
currencyCode |
String |
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
Next Page URL |
String |
Previous Page URL |
String |
JSON Structure
{
"links": [],
"totalRecordCount": 1,
"results": [
{
"links": [],
"location": 5991,
"locType": "S",
"locName": "DIT Company Stockholding Store",
"locCurrencyCode": "USD",
"entity": 1000,
"entityDesc": "Regular Stores",
"tsfLocitemSearchRes": [
{
"links": [],
"item": "100054006",
"availQty": 100,
"averageCost": 0,
"unitRetail": 181.82,
"currencyCode": "USD",
"hyperMediaContent": {
"linkRDO": []
}
},
{
"links": [],
"item": "100040051",
"availQty": 998,
"averageCost": 1,
"unitRetail": 1.54,
"currencyCode": "USD",
"hyperMediaContent": {
"linkRDO": []
}
}
],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"hyperMediaContent": {
"linkRDO": []
}
}
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ALLOC_HEADER |
Yes |
No |
No |
No |
ALLOC_DETAIL |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
MV_LOC_SOB |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORG_UNIT |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
TRANSFER_LOC |
Yes |
No |
No |
No |
TSF_ENTITY |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_TRANSFER_FROM_LOC |
Yes |
No |
No |
No |
V_TRANSFER_TO_LOC |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Create Transfer - Get Items for Transfer
Business Overview
This service retrieves items applicable for inventory transfer. Item can be searched either by Item or VPN. To search the item, enter an item number, a partial item description, or a VPN in the search string.
-
When search type is ITEM, the search string can be an item number, a partial item number, an item description, or partial item description. In this case, the query returns all items which match the item description or partial description, or which match the item number entered.
-
When search type is VPN, the search string can be a VPN or partial VPN, the API should return all items with that VPN.
The items returned are constrained by the following criteria:
-
Approved status.
-
Transaction-level items.
-
Inventory items.
-
-
When From Location is sent as an input, then only the following items are returned:
-
With available inventory at the From Location.
-
Packs with Receive as Type as Each are filtered out when, from location is a virtual warehouse.
-
-
If the System Option for DEPT_LEVEL_TRANSFERS is set as"Y" and a Department ID is sent as input, then only the input department items are returned.
ReST URL
/Transfer/item?itemSearchType={itemSearchType}&searchString={searchString}&dept={dept}&fromLocation={fromLocation}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
itemSearchType |
Yes |
Search type item or VPN. |
ITEM, VPN |
searchString |
Yes |
Search string for items ID or Name. |
NA |
dept |
No |
Selected items' department ID. |
NA |
fromLocation |
No |
Selected from location ID. |
NA |
PageSize |
No |
Maximum number of items to retrieve per page. |
NA |
PageNumber |
No |
Result page to retrieve. |
NA |
Output
Table 5-259 TsfItemSearchRDO
Parameter Name | Data Type |
---|---|
item |
String |
itemDesc |
String |
dept |
BigDecimal |
availQty |
BigDecimal |
averageCost |
BigDecimal |
unitRetail |
BigDecimal |
currencyCode |
String |
standardlUnitOfMeasure |
String |
suppPackSize |
BigDecimal |
innerPackSize |
BigDecimal |
itemImageUrl |
String |
Table 5-260 PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
Next Page URL |
String |
Previous Page URL |
String |
JSON Structure
{
"links": [
{
"href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=3",
"rel": "next",
"type": "GET",
"methodType": null
},
{
"href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=1",
"rel": "prev",
"type": "GET",
"methodType": null
}
],
"totalRecordCount": 51,
"results": [
{
"links": [],
"item": "100001406",
"itemDesc": "DIT Test 11:Black:Extra Small",
"dept": 1102,
"availQty": 100,
"averageCost": 5,
"unitRetail": 7.26,
"currencyCode": "USD",
"standardlUnitOfMeasure": "CKG",
"suppPackSize": 1,
"innerPackSize": 1,
"itemImageUrl": null,
"hyperMediaContent": {
"linkRDO": []
}
}
],
"hyperMediaContent": {
"linkRDO": [
{
"href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=3",
"rel": "next",
"type": "GET",
"methodType": null
},
{
"href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=1",
"rel": "prev",
"type": "GET",
"methodType": null
}
]
}
}
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ALLOC_HEADER |
Yes |
No |
No |
No |
ALLOC_DETAIL |
Yes |
No |
No |
No |
DAILY_PURGE |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
ITEM_IMAGE |
Yes |
No |
No |
No |
ITEM_SUPPLIER |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
V_ITEM_MASTER |
Yes |
No |
No |
No |
WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Create Transfer - Get Next Transfer Numbers
Business Overview
This service retrieves the next available transfer numbers from Merchandising. This service
takes an optional query parameter of count
to retrieve multiple (up to 999)
transfer numbers. The count
defaults to 1
if the query
parameter is not provided.
Input Parameters
Parameter Name | Required | Description | |
---|---|---|---|
count | No | Count (1-999) of transfer numbers to be fetched. Default value is
1 .
|
Output
Parameter Name | Data Type | Details |
---|---|---|
transfer_no | Number | Deprecated (Use transferNumbers ) as this service has been
enhanced to return multiple transfer numbers. This field will contain the first
transfer number from transferNumbers list.
|
transferNumbers | Array |
Contains list of available transfer numbers. |
JSON Output
{
"transfer_no": 123456,
"transferNumbers": [123456, 123457]
}
Create Transfer - Get To Locations for Transfer
This section describes the Search To Location service.
Business Overview
This service retrieves locations applicable for inventory transfer. Location can be searched by either 'S'tore or 'W'arehouse. Then enter a location number, a partial location number, a location description, or a partial location description in the search string.
The locations returned are constrained by the following criteria:
-
When search type is warehouse only virtual warehouses are returned.
-
Internal finishers are filtered out.
-
Only stockholding location.
-
When search type is Store then only open stores are returned.
-
When items are sent as input then only locations with available inventory are returned.
-
When From Location is sent as input then:
-
To Location cannot be the same as the From Location.
-
When Transfer Type is set as a manual request, then only locations with the same Transfer Entity/Set of Books as the From Location are returned in the search results.
-
When the Transfer Type is Intercompany, then only locations with a different Transfer Entity/Set of Books to the From Location are returned in the search results.
-
Only locations in the same transfer zone are returned in the search results.
-
ReST URL
/Transfer/toLocation?locationType={locationType}&searchString={searchString}&tsfType={tsfType}&fromLocation={fromLocation}&pageSize={pageSize}&pageNumber={pageNumber}")
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
LocationType |
Yes |
Location type Store or warehouse |
|
SearchString |
Yes |
search string for locations Id or Name |
NA |
tsfType |
Yes |
Transfer type |
|
fromLocation |
No |
Selected from location ID |
N/A |
PageSize |
No |
Maximum number of locations to retrieve per page |
N/A |
PageNumber |
No |
Result page to retrieve |
N/A |
Output
TsfLocSearchResultRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
locType |
String |
locName |
String |
locCurrencyCode |
String |
entity |
BigDecimal |
entityDesc |
String |
tsfLocitemSearchRes |
List<TsfLocitemSearchResRDO> |
TsfLocitemSearchResRDO
Parameter Name | Data Type |
---|---|
item |
String |
availQty |
BigDecimal |
averageCost |
BigDecimal |
unitRetail |
BigDecimal |
currencyCode |
String |
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
Next Page URL |
String |
Previous Page URL |
String |
JSON Structure
{
"links": [],
"totalRecordCount": 1,
"results": [
{
"links": [],
"location": 5991,
"locType": "S",
"locName": "DIT Company Stockholding Store",
"locCurrencyCode": "USD",
"entity": 1000,
"entityDesc": "Regular Stores",
"tsfLocitemSearchRes": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"hyperMediaContent": {
"linkRDO": []
}
}
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ALLOC_HEADER |
Yes |
No |
No |
No |
ALLOC_DETAIL |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
MV_LOC_SOB |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORG_UNIT |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
TRANSFER_LOC |
Yes |
No |
No |
No |
TSF_ENTITY |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_TRANSFER_FROM_LOC |
Yes |
No |
No |
No |
V_TRANSFER_TO_LOC |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Create Transfer - Refresh Transfer Items
This section describes the load items.
Business Overview
Load items service allows the user to refresh item records information for already selected items.
Service Type
Get
ReST URL
/Transfer/item/load?items={items}&fromLocation={fromLocation}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
items |
Yes |
Comma Separated values for selected items' ID. |
fromLocation |
No |
Selected from location ID. |
Output
TsfItemSearchRDO
Parameter Name | Data Type |
---|---|
item |
String |
itemDesc |
String |
dept |
BigDecimal |
availQty |
BigDecimal |
averageCost |
BigDecimal |
unitRetail |
BigDecimal |
currencyCode |
String |
standardlUnitOfMeasure |
String |
suppPackSize |
BigDecimal |
innerPackSize |
BigDecimal |
itemImageUrl |
String |
JSON Structure
[
{
"links": [],
"item": "100001887",
"itemDesc": "DIT Test 12:Black:Medium",
"dept": 1102,
"availQty": 100,
"averageCost": 5,
"unitRetail": 7.26,
"currencyCode": "USD",
"standardlUnitOfMeasure": "CKG",
"suppPackSize": 1,
"innerPackSize": 1,
"itemImageUrl": null,
"hyperMediaContent": {
"linkRDO": []
}
}
]
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ALLOC_HEADER |
Yes |
No |
No |
No |
ALLOC_DETAIL |
Yes |
No |
No |
No |
DAILY_PURGE |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
ITEM_IMAGE |
Yes |
No |
No |
No |
ITEM_SUPPLIER |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
V_ITEM_MASTER |
Yes |
No |
No |
No |
WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Create Transfer - Refresh Transfer Locations
This section describes the Load Locations service.
Input Parameters
Parameter Name | Required | Description |
---|---|---|
FromLocation |
No |
Selected from location ID. |
ToLocation |
No |
Selected to location ID. |
Output
TsfLocSearchResultRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
locType |
String |
locName |
String |
locCurrencyCode |
String |
entity |
BigDecimal |
entityDesc |
String |
tsfLocitemSearchRes |
List<TsfLocitemSearchResRDO> |
TsfLocitemSearchResRDO
Parameter Name | Data Type |
---|---|
item |
String |
availQty |
BigDecimal |
averageCost |
BigDecimal |
unitRetail |
BigDecimal |
currencyCode |
String |
JSON Structure
[
{
"links": [],
"location": 5991,
"locType": "S",
"locName": "DIT Company Stockholding Store",
"locCurrencyCode": "USD",
"entity": 1000,
"entityDesc": "Regular Stores",
"tsfLocitemSearchRes": [],
"hyperMediaContent": {
"linkRDO": []
}
},
{
"links": [],
"location": 12310101,
"locType": "W",
"locName": "test",
"locCurrencyCode": "USD",
"entity": 1000,
"entityDesc": "Regular Stores",
"tsfLocitemSearchRes": [],
"hyperMediaContent": {
"linkRDO": []
}
}
]
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ALLOC_HEADER |
Yes |
No |
No |
No |
ALLOC_DETAIL |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
MV_LOC_SOB |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORG_UNIT |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
TRANSFER_LOC |
Yes |
No |
No |
No |
TSF_ENTITY |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_TRANSFER_FROM_LOC |
Yes |
No |
No |
No |
V_TRANSFER_TO_LOC |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Mobile Workflow - Get Locations on Existing Transfers
This section describes the transfer location search service.
Business Overview
The web service enables location search applicable for Transfers. Locations can be searched by either 'S'tore or 'W'arehouse, with the subsequent entry of a location number, a partial location number, a location description, or a partial location description in the search string.
The locations returned are constrained by the following criteria:
-
When search type is warehouse then:
-
Internal finishers are filtered out
-
-
When search type is store then:
-
Only company stores are returned
-
Only stockholding stores are returned
-
ReST URL
/Transfer/recent/transferLocSearch?searchString={searchString}&locType={locType}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
SearchString |
No |
Search string for locations ID or Name |
N/A |
LocType |
No |
Location type: Store or warehouse |
|
PageSize |
No |
Maximum number of locations to retrieve per page |
N/A |
PageNumber |
No |
Result page to retrieve |
N/A |
Output
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
results |
List<RtsfLocSearchResultRDO> |
RtsfLocSearchResultRDO
Parameter Name | Data Type |
---|---|
location |
BigDecimal |
locationType |
String |
locationName |
String |
currency |
String |
JSON Structure
{
"totalRecordCount": 1,
"results": [
{
"location": null,
"locationType": null,
"locationName": null,
"currency": null,
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
],
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
Mobile Workflow - Get Transfer Statuses
This section describes the Transfer Status List service.
Mobile Workflow - Get Transfer Summary
This section describes the Get Transfer Detail service.
Business Overview
Get Transfer Detail service allow user to retrieve Transfer information for a selected transfer number.
ReST URL
/Transfer/recent/transferDetail?transferNumber={transferNumber}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
TransferNumber |
Yes |
Transfer Number ID |
PageSize |
No |
Maximum number of items to retrieve per page |
PageNumber |
No |
Result page to retrieve |
Output
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
results |
List<RtsfTsfDtlRDO> |
RtsfTsfDtlRDO
Parameter Name | Data Type |
---|---|
transferNumber |
BigDecimal |
status |
String |
fromLocation |
BigDecimal |
fromLocationName |
String |
finisher |
BigDecimal |
finisherName |
String |
toLocation |
BigDecimal |
toLocationName |
String |
transferType |
String |
totalCost |
BigDecimal |
totalRetail |
BigDecimal |
currency |
String |
deliveryDate |
Long |
createId |
String |
createDate |
Long |
transferItemsTable |
List<RtsfTsfDtlItemRDO> |
RtsfTsfDtlItemRDO
Parameter Name | Data Type |
---|---|
item |
String |
itemDescription |
String |
transferQuantity |
BigDecimal |
JSON Structure
{
"totalRecordCount": null,
"results": [
{
"transferNumber": null,
"status": null,
"fromLocation": null,
"fromLocationName": null,
"finisher": null,
"finisherName": null,
"toLocation": null,
"toLocationName": null,
"transferType": null,
"totalCost": null,
"totalRetail": null,
"currency": null,
"deliveryDate": null,
"createId": null,
"createDate": null,
"transferItemsTable": [
{
"item": null,
"itemDescription": null,
"transferQuantity": null,
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
],
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
],
"links": [],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
No |
No |
TSF_ITEM_INV_FLOW |
Yes |
No |
No |
No |
V_EXTERNAL_FINISHER |
Yes |
No |
No |
No |
V_INTERNAL_FINISHER |
Yes |
No |
No |
No |
V_ITEM_MASTER |
Yes |
No |
No |
No |
V_LOCATION |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_TSFDETAIL |
Yes |
No |
No |
No |
V_TSFHEAD |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Mobile Workflow - Get Transfer Types
This section describes the Transfer Type List service.
Mobile Workflow - Get Transfer Users
This section describes the Search Transfer User IDs.
Business Overview
The Search Transfer User IDs service retrieves for all User IDs that created transfers.
ReST URL
/Transfer/recent/searchUserIds?searchString={searchString}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description |
---|---|---|
SearchString |
Yes |
search string for User Id |
PageSize |
No |
Maximum number of transfer user IDs to retrieve per page |
PageNumber |
No |
Result page to retrieve |
Output
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
results |
List<VarcharIdRDO> |
VarcharIdRDO
Parameter Name | Data Type |
---|---|
id |
String |
JSON Structure
{
"totalRecordCount": null,
"results": [
{
"id": null,
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
],
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
Mobile Workflow - Get Transfers
This section describes the Transfer Search service.
Business Overview
The web services in this area enables search for applicable transfers. Transfers can be searched by their status, transfer types, transfer number, create date, delivery date, create ID, item department and/or locations.The transfers returned are constrained by the following criteria:
-
Customer Orders and Book Transfers are filtered out.
-
Only Transfers with transfer details are returned.
ReST URL
/Transfer/recent/transferSearch?statuses={statuses}&transferTypes={transferTypes}&createIds={createIds}&startCreateDate={startCreateDate}&endCreateDate={endCreateDate}&startDeliveryDate={startDeliveryDate}&endDeliveryDate={endDeliveryDate}&transferNumber={transferNumber}&locations={locations}&departments={departments}&pageSize={pageSize}&pageNumber={pageNumber}
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
Statuses |
No |
Comma Separated values for selected transfer statuses |
|
TransferTypes |
No |
Comma Separated values for selected transfer types |
|
CreateIds |
No |
Comma Separated values for selected transfer create ID |
|
StartCreateDate |
No |
Start of the range of transfer create dates |
|
EndCreateDate |
No |
End of the range of transfer create dates |
|
StartDeliveryDate |
No |
Start of the range of transfer create dates |
|
EndDeliveryDate |
No |
End of the range of transfer create dates |
|
TransferNumber |
No |
Transfer Number |
|
Locations |
No |
Comma Separated values for selected Location IDs |
|
Departments |
No |
Comma Separated values for selected Department IDs |
|
PageSize |
No |
Maximum number of locations to retrieve per page |
|
PageNumber |
No |
Result page to retrieve |
Output
PagedResultsRDO
Parameter Name | Data Type |
---|---|
totalRecordCount |
BigDecimal |
results |
List<RtsfSearchResRDO> |
RtsfSearchResRDO
Parameter Name | Data Type |
---|---|
transferNumber |
BigDecimal |
tsfType |
String |
fromLocation |
BigDecimal |
fromLocationType |
String |
fromLocationName |
String |
toLocation |
BigDecimal |
toLocationType |
String |
toLocationName |
String |
status |
String |
totalCost |
BigDecimal |
currency |
String |
deliveryDate |
Long |
JSON Structure
{
"totalRecordCount": null,
"results": [
{
"transferNumber": null,
"tsfType": null,
"fromLocation": null,
"fromLocationType": null,
"fromLocationName": null,
"toLocation": null,
"toLocationType": null,
"toLocationName": null,
"status": null,
"totalCost": null,
"currency": null,
"deliveryDate": null,
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
],
"links": [ ],
"hyperMediaContent": {
"linkRDO": [ ]
}
}
Mobile Workflow - Refresh Transfer Locations
This section describes the Transfer Location Load service.
Business Overview
This web service allows the user to refresh already selected Transfer locations records.
Input Parameters
Parameter Name | Required | Description |
---|---|---|
Locations |
No |
Comma-separated values for selected locations' ID |
Mobile Workflow Transfer Upload Service
The following services are included in this functional area:
Create Transfer
This section describes the Create Transfer service.
Business Overview
The Web service calls the existing Merchandising XTSF API directly with input parameters. For more information on Merchandising XTSF API, see Store Order Subscription API and Transfer Subscription API sections.
Input Parameters
Example JSON RDO Input
{
"links" : [ ],
"tsfdtlRDOs" : [
{
"links" : [ ],
"item" : null,
"tsfQty" : null,
"suppPackSize" : null,
"invStatus" : null,
"unitCost" : null,
"hyperMediaContent" : {
"linkRDO" : [ ]
}
}
],
"tsfNo" : null,
"fromLocType" : null,
"fromLoc" : null,
"toLocType" : null,
"toLoc" : null,
"deliveryDate" : null,
"dept" : null,
"routingCode" : null,
"freightCode" : null,
"tsfType" : null,
"status" : null,
"userId" : null,
"commentDesc" : null,
"contextType" : null,
"contextValue" : null,
"hyperMediaContent" : {
"linkRDO" : [ ]
}
}
Mobile Workflow - Update Transfer Status
This section describes the Update Transfer Status service.
ReST URL
/Transfer/recent/updateTransferStatus?newStatus={newStatus}&transferNumbers={transferNumbers}
Input Parameters
Parameter Name | Required | Description | Valid values |
---|---|---|---|
NewStatus |
Yes |
New status
of the transfer. May only be |
|
TransferNumbers |
Yes |
Comma Separated values for selected locations' ID |
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
TSFHEAD |
Yes |
No |
Yes |
No |
TSFDETAIL |
Yes |
Yes |
Yes |
Yes |
ITEM_LOC |
Yes |
No |
No |
No |
ITEM_LOC_SOH |
Yes |
No |
Yes |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
PACKITEM_BREAKOUT |
Yes |
No |
No |
No |
STORE |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
V_TSFHEAD |
Yes |
No |
No |
No |
WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Stock Order Status Upload Service
The following services are included in this functional area:
Manage Stock Order Status
Business Overview
A stock order is an outbound merchandise request from a warehouse or store. In Merchandising, a stock order takes the form of either a transfer or allocation. Merchandising subscribes to stock order status messages published by an external application, such as a store system (SIOCS, for example) or a warehouse management system (Oracle WMS Cloud, for example) to communicate the status of a specific stock order.
Listed are the stock order statuses for both transfers and allocation document types and what occurs in Merchandising after receiving the respective status. Statuses other than listed below are ignored by Merchandising.
#### Statuses for Document Types T, D, and S
Document types of T, D, and S all refer to transfers and indicate if the transfer is initiated in Merchandising, a warehouse system, or a store system, respectively.
-
SI (Stock Increased) - Insert or increase transfer quantity and increase item/location transfer reserve quantity for the source location and transfer expected quantity for the destination location.
-
SD (Stock Decreased) - Delete or decrease the transfer quantity for the transfer/item combination. Transfer quantity for the transfer/item combination will be deleted if the transfer has been created but has not been shipped. Additionally, the item/location transfer reserved quantity for the source location and the transfer expected quantity for the destination location will be decreased.
-
DS (Details Selected) - Increase the selected quantity for the transfer/item combination.
-
DU (Details Un-selected) - Decrease selected and transfer quantity for the transfer/item by the quantity on the message and increase the cancelled quantity. Additionally, it will decrease the reserved quantity for the source location and decrease the expected quantity for the destination location by the lesser of the quantity on the message and transfer - shipped quantity. The transfer will also be added to the document close queue if transfer status is not closed. Document Close batch program will then determine if the transfer should be closed based on certain conditions. Transfers with outstanding appointments are not closed.
-
PP (Distributed) - Decreases the selected quantity and increases the distro quantity for the transfer/item.
-
PU (Un-Distribute) - Decreases the distro quantity for the transfer/item.
-
RS (Return to Stock) - Decreases distro quantity and transfer quantity for the transfer/item; the cancelled quantity for the transfer/item is increased. Additionally, transfer reserved is decreased for the item/source location and transfer expected is decreased for the item/destination location for the lesser of the quantity in the message and the transfer - shipped quantity if the transfer status is not closed.
-
EX (Expired) - Decreases transfer quantity for the transfer/item; the cancelled quantity for the transfer/item is increased. Additionally, transfer reserved is decreased for the item/source location and transfer expected is decreased for the item/destination location for the lesser of the quantity in the message and the transfer - shipped quantity if the transfer status is not closed. The transfer will also be added to the document close queue if transfer status is not closed. Document Close batch program will then determine if the transfer should be closed based on certain conditions. Transfers with outstanding appointments are not closed.
-
SR (Store Reassign) - Updates the distro quantity for the transfer/item. This can either increase or decrease the value, depending on whether a positive or negative value is sent.
#### Statuses for Document Type A
Document type A is always used for Allocations.
-
SI (Stock Increased) - Insert or increase allocated quantity and increase item/location transfer reserve quantity for the source location and transfer expected quantity for the destination location.
-
SD (Stock Decreased) - Decrease the allocated quantity for the allocation/item combination. Additionally, the item/location transfer reserved quantity for the source location and the transfer expected quantity for the destination location will be decreased.
-
DS (Details Selected) - Increase the selected quantity for the allocation/item combination.
-
DU (Details Un-Selected) - Decrease the selected quantity for the allocation/item combination.
-
NI (WMS Line Cancellation) - Decrease selected and allocation quantity for the allocation/item by the quantity on the message and increase the cancelled quantity. Additionally, it will decrease the reserved quantity for the source location and decrease the expected quantity for the destination location by the lesser of the quantity on the message and allocation - shipped quantity if the allocation is not closed. The allocation will also be added to the document close queue if allocation status is not closed. Document Close batch program will then determine if the allocation should be closed based on certain conditions. Allocations with outstanding appointments are not closed.
-
PP (Distributed) - Decreases the selected quantity and increases the distro quantity for the allocation/item.
-
PU (Un-Distribute) - Decreases the distro quantity for the allocation/item.
-
RS (Return to Stock) - Decreases distro quantity and allocation quantity for the allocation/item; the cancelled quantity for the allocation/item is increased. Additionally, transfer reserved is decreased for the item/source location and transfer expected is decreased for the item/destination location for the lesser of the quantity in the message and the allocation - shipped quantity if the allocation status is not closed.
-
EX (Expired) - Decreases allocation quantity for the allocation/item; the cancelled quantity for the allocation/item is increased. Additionally, transfer reserved is decreased for the item/source location and transfer expected is decreased for the item/destination location for the lesser of the quantity in the message and the allocation - shipped quantity if the allocation status is not closed. The allocation will also be added to the document close queue if allocation status is not closed. Document Close batch program will then determine if the allocation should be closed based on certain conditions. Allocations with outstanding appointments are not closed.
-
SR (Store Reassign) - Updates the distro quantity for the allocation/item. This can either increase or decrease the value, depending on whether a positive or negative value is sent.
For customer orders, Merchandising assumes it will get updates from an OMS for customer order related stock orders. Therefore, to avoid duplicate processing, Merchandising will ignore No Inventory, Expired, Stock Decreased, and Stock Increased statuses received for a customer order transfer.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-261 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of stock order status records. |
Table 5-262 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
location |
Yes |
Number (10) |
Contains the location number of the stock order source location. |
distroNo |
No |
String (12) |
This field contains the stock order number. This is either the transfer or allocation number in Merchandising. |
distroType |
Yes |
String (1) |
This field specifies whether the stock order status pertains to an allocation (A) or transfer (T - transfers created in Merchandising, D - transfers created in a warehouse management system or S - transfers created in a store inventory system) that is already existing in Merchandising. Customer Order (C), and Virtual Distro (V) are also valid document types but will be ignored by Merchandising. |
contextType |
No |
String (6) |
This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR). |
contextValue |
No |
String (25) |
This field holds the value relating to the context type like promotion number. |
inventoryType |
No |
String (6) |
This field indicates if a transfer is made from the available (A) or unavailable (U) inventory. |
customerOrderNo |
No |
String (48) |
This field holds the master customer order number for a stock order associated with a customer order. |
fulfillOrderNo |
No |
String (48) |
This field holds the number related to the fulfillment details for a stock order associated with a customer order. One or more fulfillment orders could relate back to a single customer order. |
details |
Yes |
Collection of Object |
References a collection of stock order details. |
Table 5-263 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
toLocation |
Yes |
Number (10) |
Contains the location number of the stock order receiving location. |
toLocationType |
Yes |
String (1) |
Type of stock order receiving location. Valid values are: 'S' - Store, 'W' - Warehouse, 'E' - Finisher. |
item |
Yes |
String (25) |
This contains the unique identifier for the item. |
unitQuantity |
No |
Number (12,4) |
This field contains the difference between the number of item units shipped versus the receiving count for the given item. This is subtracted from the document-line-item-unit-count to yield an over/under variance between what a supplier said was shipped and what was counted and received at by the store's staff. |
status |
Yes |
String (2) |
This field contains the status of the stock order. Valid values are: Accepted (SI), Rejected (SD), Distributed (PP), Un-Distributed (PU), Details Selected (DS), Details Un-selected (DU), WMS Line Cancellation (NI), Return To Stock (RS), Expired (EX), and Store Reassign (SR). Statuses other than listed are ignored by Merchandising. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"location": 2,
"distroNo": "100000190000",
"distroType": "T",
"contextType": "PROM",
"contextValue": "2255",
"inventoryType": "A",
"customerOrderNo": null,
"fulfillOrderNo": null,
"details": [
{
"toLocation": 1211,
"toLocationType": "S",
"item": "102900034",
"unitQuantity": 10,
"status": "SI"
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Transfer Detail Service
This section describes the Transfer Detail service.
Output
RestTsfheadRecRDO
Parameter Name | Data Type |
---|---|
tsfNo |
BigDecimal |
tsfParentNo |
BigDecimal |
fromLocType |
String |
fromLoc |
BigDecimal |
toLocType |
String |
toLoc |
BigDecimal |
expDcDate |
Timestamp |
dept |
BigDecimal |
inventoryType |
String |
tsfType |
String |
status |
String |
deliveryDate |
Timestamp |
closeDate |
Timestamp |
notAfterDate |
Timestamp |
contextType |
String |
contextValue |
String |
wfOrderNo |
BigDecimal |
tsfdetail |
List<RestTsfdetailRecRDO> |
RestTsfdetailRecRDO
Parameter Name | Data Type |
---|---|
tsfSeqNo |
BigDecimal |
item |
String |
invStatus |
BigDecimal |
tsfPrice |
BigDecimal |
tsfQty |
BigDecimal |
fillQty |
BigDecimal |
shipQty |
BigDecimal |
receivedQty |
BigDecimal |
reconciledQty |
BigDecimal |
distroQty |
BigDecimal |
selectedQty |
BigDecimal |
cancelledQty |
BigDecimal |
suppPackSize |
BigDecimal |
tsfCost |
BigDecimal |
publishInd |
String |
JSON Structure
{
"tsfNo": null,
"tsfParentNo": null,
"fromLocType": null,
"fromLoc": null,
"toLocType": null,
"toLoc": null,
"expDcDate": null,
"dept": null,
"inventoryType": null,
"tsfType": null,
"status": null,
"deliveryDate": null,
"closeDate": null,
"notAfterDate": null,
"contextType": null,
"contextValue": null,
"wfOrderNo": null,
"tsfdetail": [
{
"tsfSeqNo": null,
"item": null,
"invStatus": null,
"tsfPrice": null,
"tsfQty": null,
"fillQty": null,
"shipQty": null,
"receivedQty": null,
"reconciledQty": null,
"distroQty": null,
"selectedQty": null,
"cancelledQty": null,
"suppPackSize": null,
"tsfCost": null,
"publishInd": null,
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Transfer Download Service
The following services are included in this functional area:
Get Transfer
Endpoint
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
Business Overview
This service can be used by external applications to get all or selected transfers and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/transfer? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
fromLoc |
No |
Number |
Source Location |
toLoc |
No |
Number |
Destination location |
fromLocType |
No |
String |
Source location type |
toLocType |
No |
String |
Destination location type |
offsetkey |
No |
String |
Offset Key. Valid Value is transfer ID. |
limit |
No |
BigDecimal |
Pagination limit. Default Value is |
Output
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Item details. Valid Values are INSERT, UPDATE and DELETE. |
transferNo |
Number |
This field specifies a number that uniquely identifies the transfer within the system. |
docType |
String |
This field Specifies the type of document. This field is defaulted to T for Transfers. |
physicalFromLocation |
String |
This field specifies number that is used to identify physical warehouse for virtual warehouse in case from location is warehouse. Store+ id is populated in case of store. |
fromLocationType |
String |
This field specifies the location type of from location of the transfer |
fromStoreType |
String |
This field specifies whether a particular store is a franchise or company store if from location is Store. Field not populated if from location is Warehouse. |
fromStockholdingInd |
Number |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y, if from location is Store. Field not populated if from location is Warehouse. |
fromLocation |
Number |
This field specifies location number of the transfer from location. |
physicalToLocation |
String |
This field specifies number that is used to identify physical warehouse for virtual warehouse in case to location is warehouse. Store id is populated in case of store. |
toLocationType |
String |
This field specifies the location type of to location of the transfer. |
toStoreType |
String |
This field specifies whether a particular store is a franchise or company store if to location is Store. Field not populated if to location is Warehouse. |
toStockholdingInd |
Number |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y, if to location is Store. Field not populated if to location is Warehouse. |
toLocation |
Number |
This field specifies location number of the transfer to location. |
transferType |
Number |
This field identifies the type or reason for the transfer. |
pickNotBeforeDate |
String |
This field Contains the date on which the transfer should be released from the from location for delivery to the to location. |
pickNotAfterDate |
Number |
This field is calculated as transfer approval date + days from code_detail where code_type = 'DEFT' and code = 'DATE'. |
orderType |
String |
This field specifies order type associated with transfers. |
breakByDistro |
String |
This field is set to 'Y' if the deliver_type for the transfer's customer is 'S'. Otherwise, set to N |
deliveryDate |
String |
This field specifies earliest date that the transfer can be delivered to the store. This will be populated if the transfer type is PO-Linked. |
deliverAdd1 |
String |
For customer order transfers, this field contains the first line of the delivery address of the customer. For other type's of transfer this field would not be populated. |
deliverAdd2 |
String |
For customer order transfers, this field contains the second line of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverCity |
String |
For customer order transfers, this field contains the city portion of the customer. For other types of transfer this field would not be populated. |
deliverState |
String |
For customer order transfers, this field contains the state portion of the customer. For other types of transfer this field would not be populated. |
deliverPost |
String |
For customer order transfers, this field contains the postal code portion of the customer. For other types of transfer this field would not be populated. |
deliverCountryId |
String |
For customer order transfers, this field contains the country portion of the customer. For other types of transfer this field would not be populated. |
comments |
String |
This field specifies any comments associated with the transfer. |
details |
This list holds detail records for the transfers |
|
transferParentNo |
Number |
This field identifies the transfer at the level above the transfer. |
expectedDcDate |
String |
This field specifies date the inventory is expected to arrive at the DC. |
approvalId |
String |
This field specifies ID of the user who approved the transfer. |
approvalDate |
String |
This field specifies date the transfer was approved. |
fromLocationTransferEntity |
Number |
This field specifies transfer entity of the from location. |
toLocationTransferEntity |
Number |
This field specifies transfer entity of the to location. |
invType |
String |
This field specifies transfer can only contain available or unavailable merchandise, never a combination of both. This field will indicate whether the transfer is for Available inventory or Unavailable inventory. |
transferStatus |
String |
This field specifies Status of the transfer. |
notAfterDate |
String |
This field specifies last day delivery of the transfer will be accepted. |
contextType |
String |
This field can be used to indicate the transfer reason or category, e.g., 'promotion'. |
contextValue |
String |
This field can be used to further info to indicate the reason or category for the transfer. For instance, if context type was 'promotion', this could be the promotion number. |
deliverySlotId |
String |
This field Specifies when the transfer quantity is needed at the location. |
deliverySlotDescription |
String |
This field Specifies delivery slot description. |
customerOrderNo |
String |
or customer order transfers, this field contains the master customer order number from the Order Management System. |
fulfillmentOrderNumber |
String |
Contains the fulfillment order number for the transfer as provided by OMS. One or more fulfillment orders could relate back to a single customer order in OMS. |
carrierCode |
String |
This field indicates the carrier the order is to be shipped with, if specified on the order. |
carrierServiceCode |
String |
This field indicates method that was selected for shipping by the customer placing the order (e.g., Standard Shipping, Overnight, etc.). |
consumerDeliveryDate |
String |
This field specifies desired date the delivery is required by the customer. |
consumerDeliveryTime |
String |
This field specifies desired time the delivery is required by the customer. |
deliverFirstName |
String |
For customer order transfers, this field contains the first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPhoneticFirst |
String |
For customer order transfers, this field contains the phonetic first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverLastName |
String |
For customer order transfers, this field contains the phonetic first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPhoneticLast |
String |
For customer order transfers, this field contains the phonetic last name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPreferredName |
String |
For customer order transfers, this field contains the preferred name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverCompanyName |
String |
For customer order transfers, this field contains the company name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverAdd3 |
String |
For customer order transfers, this field contains the third line of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverCounty |
String |
For customer order transfers, this field contains country of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverPhone |
String |
For customer order transfers, this field contains delivery phone number. For other types of transfer this field would not be populated. |
billFirstName |
String |
For customer order transfers, this field contains the first name for the billing address on the order. For other types of transfer this field would not be populated. |
billPhoneticFirst |
String |
For customer order transfers, this field contains the phonetic first name for the billing address on the order. For other types of transfer this field would not be populated. |
billLastName |
String |
For customer order transfers, this field contains the last name for the billing address on the order. For other types of transfer this field would not be populated. |
billPhoneticLast |
String |
For customer order transfers, this field contains the phonetic last name for the billing address on the order. For other types of transfer this field would not be populated. |
billPreferredName |
String |
For customer order transfers, this field contains the preferred name for the billing address on the order. For other types of transfer this field would not be populated. |
billCompanyName |
String |
For customer order transfers, this field contains the preferred name for the billing address on the order. For other types of transfer this field would not be populated. |
billAdd1 |
String |
For customer order transfers, this field contains the first line of the billing address of the customer. For other types of transfer this field would not be populated. |
billAdd2 |
String |
For customer order transfers, this field contains the second line of the billing address of the customer. For other types of transfer this field would not be populated. |
billAdd3 |
String |
For customer order transfers, this field contains the third line of the billing address of the customer. For other types of transfer this field would not be populated. |
billCounty |
String |
For customer order transfers, this field contains the county portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billCity |
String |
For customer order transfers, this field contains the city portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billCountry |
String |
For customer order transfers, this field contains the city portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billPost |
String |
For customer order transfers, this field contains the postal code portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billState |
String |
For customer order transfers, this field contains the state portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billPhone |
String |
For customer order transfers, this field contains the billing phone number. For other types of transfer this field would not be populated. |
partialDeliveryInd |
String |
For customer order transfers, this field indicates if the order can be picked and shipped partially or if it should be shipped only when complete. |
consumerDirectInd |
String |
This field indicates the order as being consumer direct (Y) or not (N). An order is consumer direct if it is a customer order. |
customFlexAttribute |
This list holds custom flex attributes for the transfers. |
|
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
his column holds the date when the record was last updated. |
Table 5-264 details
Name | Data Type | Description |
---|---|---|
item |
String |
This field specifies unique alphanumeric value that identifies the item. |
transferQuantity |
Number |
This field specifies total quantity of the item reserved at the from location for this transfer. |
price |
Number |
This field specifies unit retail price in the selling unit of measure for the item/location combination. |
sellingUom |
String |
This field specifies selling unit of measure of the item. |
expediteFlag |
String |
This field is determined from transfer's freight code field. |
storeOrderMultiple |
String |
This field specifies multiple in which the item needs to be shipped from a warehouse to the location. |
transferOrderLinkNo |
Number |
This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e. warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer. |
ticketTypeId |
String |
This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e., warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer. |
ticketDetails |
This List holds attributes for details of transfer details ticket record. |
|
invStatus |
String |
This field specifies inventory status, if one exists, for the transfer detail record. The inventory status field corresponds to the inventory status type found on the INV_STATUS_TYPES table |
transactionUom |
String |
This field specifies original transaction unit of measure to be passed on to the store system. It is only used for customer direct orders coming from the Order Management System. All quantities in the response payload are expressed in item's standard unit of measure. |
itemLineNo |
String |
This field specifies detail item line number for customer order transfers. For other types of transfer this field is not populated. |
comments |
String |
This field specifies any comments associated with the transfer line item. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the date when the record was last updated. |
Table 5-265 ticketDetails
Name | Data Type | Description |
---|---|---|
componentItem |
String |
This field specifies Alphanumeric value that identifies the component item within the pack. |
componentPrice |
Number |
This field specifies unit retail price in the selling unit retail of the component item within the pack. |
componentSellingUom |
String |
This field specifies selling unit of measure for a component item within the pack. |
Table 5-266 customFlexAttribute
Name | Data Type | Description |
---|---|---|
name |
String |
This field will hold the custom flex attribute name. |
value |
String |
This field will hold the numeric or string value of the custom flex attribute. |
valueDate |
String |
This field will hold the date value of the custom flex attribute. |
createDateTime |
String |
This field will hold the date time when the custom flex attribute was inserted. |
updateDateTime |
String |
This field will hold the date time when the custom flex attribute was last updated. |
Table 5-267 Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
{
"items": [
{
"action": "INSERT",
"transferNo": 100000005000,
"docType": "T",
"physicalFromLocation": 1515,
"fromLocationType": "S",
"fromStoreType": "C",
"fromStockholdingInd": "Y",
"fromLocation": 1515,
"physicalToLocation": 8811,
"toLocationType": "S",
"toStoreType": "C",
"toStockholdingInd": "Y",
"toLocation": 8811,
"transferType": "MR",
"pickNotBeforeDate": "2021-12-08",
"pickNotAfterDate": "2022-01-07",
"orderType": "AUTOMATIC",
"breakByDistro": "N",
"deliveryDate": "2021-12-08",
"deliverAdd1": null,
"deliverAdd2": null,
"deliverCity": null,
"deliverState": null,
"deliverPost": null,
"deliverCountryId": null,
"comments": null,
"details": [
{
"item": "100500002",
"transferQuantity": 1,
"price": 12.22,
"sellingUom": "EA",
"expediteFlag": "N",
"storeOrderMultiple": "E",
"transferOrderLinkNo": null,
"ticketTypeId": null,
"ticketDetails": null,
"invStatus": null,
"transactionUom": null,
"itemLineNo": null,
"comments": null,
"createDateTime": "2021-12-08T18:16:04.000Z",
"updateDateTime": "2021-12-08T18:16:10.000Z"
}
],
"transferParentNo": null,
"expectedDcDate": "2021-12-08",
"approvalId": "RMS_ADMIN",
"approvalDate": "2021-12-08",
"fromLocationTransferEntity": 1111,
"toLocationTransferEntity": 1111,
"invType": "A",
"transferStatus": "A",
"notAfterDate": "2021-12-10",
"contextType": null,
"contextValue": null,
"deliverySlotId": null,
"deliverySlotDescription": null,
"customerOrderNo": null,
"fulfillmentOrderNumber": null,
"carrierCode": null,
"carrierServiceCode": null,
"consumerDeliveryDate": null,
"consumerDeliveryTime": null,
"deliverFirstName": null,
"deliverPhoneticFirst": null,
"deliverLastName": null,
"deliverPhoneticLast": null,
"deliverPreferredName": null,
"deliverCompanyName": null,
"deliverAdd3": null,
"deliverCounty": null,
"deliverPhone": null,
"billFirstName": null,
"billPhoneticFirst": null,
"billLastName": null,
"billPhoneticLast": null,
"billPreferredName": null,
"billCompanyName": null,
"billAdd1": null,
"billAdd2": null,
"billAdd3": null,
"billCounty": null,
"billCity": null,
"billCountry": null,
"billPost": null,
"billState": null,
"billPhone": null,
"partialDeliveryInd": null,
"consumerDirectInd": "N",
"customFlexAttribute": null,
"createDateTime": "2021-12-08T00:00:00.000Z",
"updateDateTime": "2021-12-08T18:16:24.000Z",
"cacheTimestamp": "2022-04-06T10:00:47.220Z"
},
{
"action": "INSERT",
"transferNo": 100000015002,
"docType": "T",
"physicalFromLocation": 440,
"fromLocationType": "W",
"fromStoreType": null,
"fromStockholdingInd": null,
"fromLocation": 441,
"physicalToLocation": 2345,
"toLocationType": "E",
"toStoreType": null,
"toStockholdingInd": null,
"toLocation": 2345,
"transferType": "MR",
"pickNotBeforeDate": "2021-12-20",
"pickNotAfterDate": "2022-01-19",
"orderType": "AUTOMATIC",
"breakByDistro": "N",
"deliveryDate": "2021-12-21",
"deliverAdd1": null,
"deliverAdd2": null,
"deliverCity": null,
"deliverState": null,
"deliverPost": null,
"deliverCountryId": null,
"comments": null,
"details": [
{
"item": "100500002",
"transferQuantity": 3,
"price": 12.22,
"sellingUom": "EA",
"expediteFlag": "N",
"storeOrderMultiple": "E",
"transferOrderLinkNo": null,
"ticketTypeId": null,
"ticketDetails": null,
"invStatus": null,
"transactionUom": null,
"itemLineNo": null,
"comments": null,
"createDateTime": "2021-12-21T14:07:46.000Z",
"updateDateTime": "2021-12-21T14:07:50.000Z"
}
],
"transferParentNo": null,
"expectedDcDate": "2021-12-21",
"approvalId": "RMS_ADMIN",
"approvalDate": "2021-12-20",
"fromLocationTransferEntity": 1111,
"toLocationTransferEntity": 1111,
"invType": "A",
"transferStatus": "A",
"notAfterDate": "2021-12-22",
"contextType": null,
"contextValue": null,
"deliverySlotId": null,
"deliverySlotDescription": null,
"customerOrderNo": null,
"fulfillmentOrderNumber": null,
"carrierCode": null,
"carrierServiceCode": null,
"consumerDeliveryDate": null,
"consumerDeliveryTime": null,
"deliverFirstName": null,
"deliverPhoneticFirst": null,
"deliverLastName": null,
"deliverPhoneticLast": null,
"deliverPreferredName": null,
"deliverCompanyName": null,
"deliverAdd3": null,
"deliverCounty": null,
"deliverPhone": null,
"billFirstName": null,
"billPhoneticFirst": null,
"billLastName": null,
"billPhoneticLast": null,
"billPreferredName": null,
"billCompanyName": null,
"billAdd1": null,
"billAdd2": null,
"billAdd3": null,
"billCounty": null,
"billCity": null,
"billCountry": null,
"billPost": null,
"billState": null,
"billPhone": null,
"partialDeliveryInd": null,
"consumerDirectInd": "N",
"customFlexAttribute": null,
"createDateTime": "2021-12-20T00:00:00.000Z",
"updateDateTime": "2021-12-21T14:08:42.000Z",
"cacheTimestamp": "2022-04-06T10:00:48.823Z"
}
],
"hasMore": true,
"limit": 2,
"count": 2,
"links": [
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
"rel": "self"
},
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?offsetkey=100000015002&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
"rel": "next"
}
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
Yes |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_TRANSFER |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_TRANSFER |
Yes |
Yes |
Yes |
Yes |
MERCHAPI_EXT_TRANSFER_CFA |
No |
Yes |
No |
Yes |
TSFHEAD |
Yes |
No |
No |
No |
TSFHEAD_CFA_EXT |
Yes |
No |
No |
No |
V_MERCHAPI_EXT_TSF_JSON |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
Get Transfer Details for Provided Transfer
Endpoint
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
Business Overview
This service can be used by external applications to get all or selected transfers and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/transfer? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
fromLoc |
No |
Number |
Source Location |
toLoc |
No |
Number |
Destination location |
fromLocType |
No |
String |
Source location type |
toLocType |
No |
String |
Destination location type |
offsetkey |
No |
String |
Offset Key. Valid Value is transfer ID. |
limit |
No |
BigDecimal |
Pagination limit. Default Value is |
Output
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Item details. Valid Values are INSERT, UPDATE and DELETE. |
transferNo |
Number |
This field specifies a number that uniquely identifies the transfer within the system. |
docType |
String |
This field Specifies the type of document. This field is defaulted to T for Transfers. |
physicalFromLocation |
String |
This field specifies number that is used to identify physical warehouse for virtual warehouse in case from location is warehouse. Store+ id is populated in case of store. |
fromLocationType |
String |
This field specifies the location type of from location of the transfer |
fromStoreType |
String |
This field specifies whether a particular store is a franchise or company store if from location is Store. Field not populated if from location is Warehouse. |
fromStockholdingInd |
Number |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y, if from location is Store. Field not populated if from location is Warehouse. |
fromLocation |
Number |
This field specifies location number of the transfer from location. |
physicalToLocation |
String |
This field specifies number that is used to identify physical warehouse for virtual warehouse in case to location is warehouse. Store id is populated in case of store. |
toLocationType |
String |
This field specifies the location type of to location of the transfer. |
toStoreType |
String |
This field specifies whether a particular store is a franchise or company store if to location is Store. Field not populated if to location is Warehouse. |
toStockholdingInd |
Number |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y, if to location is Store. Field not populated if to location is Warehouse. |
toLocation |
Number |
This field specifies location number of the transfer to location. |
transferType |
Number |
This field identifies the type or reason for the transfer. |
pickNotBeforeDate |
String |
This field Contains the date on which the transfer should be released from the from location for delivery to the to location. |
pickNotAfterDate |
Number |
This field is calculated as transfer approval date + days from code_detail where code_type = 'DEFT' and code = 'DATE'. |
orderType |
String |
This field specifies order type associated with transfers. |
breakByDistro |
String |
This field is set to 'Y' if the deliver_type for the transfer's customer is 'S'. Otherwise, set to N |
deliveryDate |
String |
This field specifies earliest date that the transfer can be delivered to the store. This will be populated if the transfer type is PO-Linked. |
deliverAdd1 |
String |
For customer order transfers, this field contains the first line of the delivery address of the customer. For other type's of transfer this field would not be populated. |
deliverAdd2 |
String |
For customer order transfers, this field contains the second line of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverCity |
String |
For customer order transfers, this field contains the city portion of the customer. For other types of transfer this field would not be populated. |
deliverState |
String |
For customer order transfers, this field contains the state portion of the customer. For other types of transfer this field would not be populated. |
deliverPost |
String |
For customer order transfers, this field contains the postal code portion of the customer. For other types of transfer this field would not be populated. |
deliverCountryId |
String |
For customer order transfers, this field contains the country portion of the customer. For other types of transfer this field would not be populated. |
comments |
String |
This field specifies any comments associated with the transfer. |
details |
This list holds detail records for the transfers |
|
transferParentNo |
Number |
This field identifies the transfer at the level above the transfer. |
expectedDcDate |
String |
This field specifies date the inventory is expected to arrive at the DC. |
approvalId |
String |
This field specifies ID of the user who approved the transfer. |
approvalDate |
String |
This field specifies date the transfer was approved. |
fromLocationTransferEntity |
Number |
This field specifies transfer entity of the from location. |
toLocationTransferEntity |
Number |
This field specifies transfer entity of the to location. |
invType |
String |
This field specifies transfer can only contain available or unavailable merchandise, never a combination of both. This field will indicate whether the transfer is for Available inventory or Unavailable inventory. |
transferStatus |
String |
This field specifies Status of the transfer. |
notAfterDate |
String |
This field specifies last day delivery of the transfer will be accepted. |
contextType |
String |
This field can be used to indicate the transfer reason or category, e.g., 'promotion'. |
contextValue |
String |
This field can be used to further info to indicate the reason or category for the transfer. For instance, if context type was 'promotion', this could be the promotion number. |
deliverySlotId |
String |
This field Specifies when the transfer quantity is needed at the location. |
deliverySlotDescription |
String |
This field Specifies delivery slot description. |
customerOrderNo |
String |
or customer order transfers, this field contains the master customer order number from the Order Management System. |
fulfillmentOrderNumber |
String |
Contains the fulfillment order number for the transfer as provided by OMS. One or more fulfillment orders could relate back to a single customer order in OMS. |
carrierCode |
String |
This field indicates the carrier the order is to be shipped with, if specified on the order. |
carrierServiceCode |
String |
This field indicates method that was selected for shipping by the customer placing the order (e.g., Standard Shipping, Overnight, etc.). |
consumerDeliveryDate |
String |
This field specifies desired date the delivery is required by the customer. |
consumerDeliveryTime |
String |
This field specifies desired time the delivery is required by the customer. |
deliverFirstName |
String |
For customer order transfers, this field contains the first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPhoneticFirst |
String |
For customer order transfers, this field contains the phonetic first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverLastName |
String |
For customer order transfers, this field contains the phonetic first name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPhoneticLast |
String |
For customer order transfers, this field contains the phonetic last name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverPreferredName |
String |
For customer order transfers, this field contains the preferred name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverCompanyName |
String |
For customer order transfers, this field contains the company name for the delivery address on the order. For other types of transfer this field would not be populated. |
deliverAdd3 |
String |
For customer order transfers, this field contains the third line of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverCounty |
String |
For customer order transfers, this field contains country of the delivery address of the customer. For other types of transfer this field would not be populated. |
deliverPhone |
String |
For customer order transfers, this field contains delivery phone number. For other types of transfer this field would not be populated. |
billFirstName |
String |
For customer order transfers, this field contains the first name for the billing address on the order. For other types of transfer this field would not be populated. |
billPhoneticFirst |
String |
For customer order transfers, this field contains the phonetic first name for the billing address on the order. For other types of transfer this field would not be populated. |
billLastName |
String |
For customer order transfers, this field contains the last name for the billing address on the order. For other types of transfer this field would not be populated. |
billPhoneticLast |
String |
For customer order transfers, this field contains the phonetic last name for the billing address on the order. For other types of transfer this field would not be populated. |
billPreferredName |
String |
For customer order transfers, this field contains the preferred name for the billing address on the order. For other types of transfer this field would not be populated. |
billCompanyName |
String |
For customer order transfers, this field contains the preferred name for the billing address on the order. For other types of transfer this field would not be populated. |
billAdd1 |
String |
For customer order transfers, this field contains the first line of the billing address of the customer. For other types of transfer this field would not be populated. |
billAdd2 |
String |
For customer order transfers, this field contains the second line of the billing address of the customer. For other types of transfer this field would not be populated. |
billAdd3 |
String |
For customer order transfers, this field contains the third line of the billing address of the customer. For other types of transfer this field would not be populated. |
billCounty |
String |
For customer order transfers, this field contains the county portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billCity |
String |
For customer order transfers, this field contains the city portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billCountry |
String |
For customer order transfers, this field contains the city portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billPost |
String |
For customer order transfers, this field contains the postal code portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billState |
String |
For customer order transfers, this field contains the state portion of the billing address of the customer. For other types of transfer this field would not be populated. |
billPhone |
String |
For customer order transfers, this field contains the billing phone number. For other types of transfer this field would not be populated. |
partialDeliveryInd |
String |
For customer order transfers, this field indicates if the order can be picked and shipped partially or if it should be shipped only when complete. |
consumerDirectInd |
String |
This field indicates the order as being consumer direct (Y) or not (N). An order is consumer direct if it is a customer order. |
customFlexAttribute |
This list holds custom flex attributes for the transfers. |
|
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
his column holds the date when the record was last updated. |
Table 5-268 details
Name | Data Type | Description |
---|---|---|
item |
String |
This field specifies unique alphanumeric value that identifies the item. |
transferQuantity |
Number |
This field specifies total quantity of the item reserved at the from location for this transfer. |
price |
Number |
This field specifies unit retail price in the selling unit of measure for the item/location combination. |
sellingUom |
String |
This field specifies selling unit of measure of the item. |
expediteFlag |
String |
This field is determined from transfer's freight code field. |
storeOrderMultiple |
String |
This field specifies multiple in which the item needs to be shipped from a warehouse to the location. |
transferOrderLinkNo |
Number |
This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e. warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer. |
ticketTypeId |
String |
This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e., warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer. |
ticketDetails |
This List holds attributes for details of transfer details ticket record. |
|
invStatus |
String |
This field specifies inventory status, if one exists, for the transfer detail record. The inventory status field corresponds to the inventory status type found on the INV_STATUS_TYPES table |
transactionUom |
String |
This field specifies original transaction unit of measure to be passed on to the store system. It is only used for customer direct orders coming from the Order Management System. All quantities in the response payload are expressed in item's standard unit of measure. |
itemLineNo |
String |
This field specifies detail item line number for customer order transfers. For other types of transfer this field is not populated. |
comments |
String |
This field specifies any comments associated with the transfer line item. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the date when the record was last updated. |
Table 5-269 ticketDetails
Name | Data Type | Description |
---|---|---|
componentItem |
String |
This field specifies Alphanumeric value that identifies the component item within the pack. |
componentPrice |
Number |
This field specifies unit retail price in the selling unit retail of the component item within the pack. |
componentSellingUom |
String |
This field specifies selling unit of measure for a component item within the pack. |
Table 5-270 customFlexAttribute
Name | Data Type | Description |
---|---|---|
name |
String |
This field will hold the custom flex attribute name. |
value |
String |
This field will hold the numeric or string value of the custom flex attribute. |
valueDate |
String |
This field will hold the date value of the custom flex attribute. |
createDateTime |
String |
This field will hold the date time when the custom flex attribute was inserted. |
updateDateTime |
String |
This field will hold the date time when the custom flex attribute was last updated. |
Table 5-271 Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"transferNo": 100000005000,
"docType": "T",
"physicalFromLocation": 1515,
"fromLocationType": "S",
"fromStoreType": "C",
"fromStockholdingInd": "Y",
"fromLocation": 1515,
"physicalToLocation": 8811,
"toLocationType": "S",
"toStoreType": "C",
"toStockholdingInd": "Y",
"toLocation": 8811,
"transferType": "MR",
"pickNotBeforeDate": "2021-12-08",
"pickNotAfterDate": "2022-01-07",
"orderType": "AUTOMATIC",
"breakByDistro": "N",
"deliveryDate": "2021-12-08",
"deliverAdd1": null,
"deliverAdd2": null,
"deliverCity": null,
"deliverState": null,
"deliverPost": null,
"deliverCountryId": null,
"comments": null,
"details": [
{
"item": "100500002",
"transferQuantity": 1,
"price": 12.22,
"sellingUom": "EA",
"expediteFlag": "N",
"storeOrderMultiple": "E",
"transferOrderLinkNo": null,
"ticketTypeId": null,
"ticketDetails": null,
"invStatus": null,
"transactionUom": null,
"itemLineNo": null,
"comments": null,
"createDateTime": "2021-12-08T18:16:04.000Z",
"updateDateTime": "2021-12-08T18:16:10.000Z"
}
],
"transferParentNo": null,
"expectedDcDate": "2021-12-08",
"approvalId": "RMS_ADMIN",
"approvalDate": "2021-12-08",
"fromLocationTransferEntity": 1111,
"toLocationTransferEntity": 1111,
"invType": "A",
"transferStatus": "A",
"notAfterDate": "2021-12-10",
"contextType": null,
"contextValue": null,
"deliverySlotId": null,
"deliverySlotDescription": null,
"customerOrderNo": null,
"fulfillmentOrderNumber": null,
"carrierCode": null,
"carrierServiceCode": null,
"consumerDeliveryDate": null,
"consumerDeliveryTime": null,
"deliverFirstName": null,
"deliverPhoneticFirst": null,
"deliverLastName": null,
"deliverPhoneticLast": null,
"deliverPreferredName": null,
"deliverCompanyName": null,
"deliverAdd3": null,
"deliverCounty": null,
"deliverPhone": null,
"billFirstName": null,
"billPhoneticFirst": null,
"billLastName": null,
"billPhoneticLast": null,
"billPreferredName": null,
"billCompanyName": null,
"billAdd1": null,
"billAdd2": null,
"billAdd3": null,
"billCounty": null,
"billCity": null,
"billCountry": null,
"billPost": null,
"billState": null,
"billPhone": null,
"partialDeliveryInd": null,
"consumerDirectInd": "N",
"customFlexAttribute": null,
"createDateTime": "2021-12-08T00:00:00.000Z",
"updateDateTime": "2021-12-08T18:16:24.000Z",
"cacheTimestamp": "2022-04-06T10:00:47.220Z"
},
{
"action": "INSERT",
"transferNo": 100000015002,
"docType": "T",
"physicalFromLocation": 440,
"fromLocationType": "W",
"fromStoreType": null,
"fromStockholdingInd": null,
"fromLocation": 441,
"physicalToLocation": 2345,
"toLocationType": "E",
"toStoreType": null,
"toStockholdingInd": null,
"toLocation": 2345,
"transferType": "MR",
"pickNotBeforeDate": "2021-12-20",
"pickNotAfterDate": "2022-01-19",
"orderType": "AUTOMATIC",
"breakByDistro": "N",
"deliveryDate": "2021-12-21",
"deliverAdd1": null,
"deliverAdd2": null,
"deliverCity": null,
"deliverState": null,
"deliverPost": null,
"deliverCountryId": null,
"comments": null,
"details": [
{
"item": "100500002",
"transferQuantity": 3,
"price": 12.22,
"sellingUom": "EA",
"expediteFlag": "N",
"storeOrderMultiple": "E",
"transferOrderLinkNo": null,
"ticketTypeId": null,
"ticketDetails": null,
"invStatus": null,
"transactionUom": null,
"itemLineNo": null,
"comments": null,
"createDateTime": "2021-12-21T14:07:46.000Z",
"updateDateTime": "2021-12-21T14:07:50.000Z"
}
],
"transferParentNo": null,
"expectedDcDate": "2021-12-21",
"approvalId": "RMS_ADMIN",
"approvalDate": "2021-12-20",
"fromLocationTransferEntity": 1111,
"toLocationTransferEntity": 1111,
"invType": "A",
"transferStatus": "A",
"notAfterDate": "2021-12-22",
"contextType": null,
"contextValue": null,
"deliverySlotId": null,
"deliverySlotDescription": null,
"customerOrderNo": null,
"fulfillmentOrderNumber": null,
"carrierCode": null,
"carrierServiceCode": null,
"consumerDeliveryDate": null,
"consumerDeliveryTime": null,
"deliverFirstName": null,
"deliverPhoneticFirst": null,
"deliverLastName": null,
"deliverPhoneticLast": null,
"deliverPreferredName": null,
"deliverCompanyName": null,
"deliverAdd3": null,
"deliverCounty": null,
"deliverPhone": null,
"billFirstName": null,
"billPhoneticFirst": null,
"billLastName": null,
"billPhoneticLast": null,
"billPreferredName": null,
"billCompanyName": null,
"billAdd1": null,
"billAdd2": null,
"billAdd3": null,
"billCounty": null,
"billCity": null,
"billCountry": null,
"billPost": null,
"billState": null,
"billPhone": null,
"partialDeliveryInd": null,
"consumerDirectInd": "N",
"customFlexAttribute": null,
"createDateTime": "2021-12-20T00:00:00.000Z",
"updateDateTime": "2021-12-21T14:08:42.000Z",
"cacheTimestamp": "2022-04-06T10:00:48.823Z"
}
],
"hasMore": true,
"limit": 2,
"count": 2,
"links": [
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
"rel": "self"
},
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?offsetkey=100000015002&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
"rel": "next"
}
]
}"
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
Yes |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_TRANSFER |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_TRANSFER |
Yes |
Yes |
Yes |
Yes |
MERCHAPI_EXT_TRANSFER_CFA |
No |
Yes |
No |
Yes |
TSFHEAD |
Yes |
No |
No |
No |
TSFHEAD_CFA_EXT |
Yes |
No |
No |
No |
V_MERCHAPI_EXT_TSF_JSON |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
Transfer Upload Service
The following services are included in this functional area:
Create Book Transfer
This section describes the Book Transfer ReSTful Web Service
Business Overview
This web service will be built to virtually move inventory from one location to the other for the purposes of attributing the sale to a location different from the location that is fulfilling the order physically. For example, if the order is being fulfilled via shipment from a physical store, some retailers will want to actually have the sale processed against the e-commerce store. This service also accept a customer order number and fulfillment order number to be associated with the transfer when it is created as a cross reference.
Input Parameters
The Book Transfer web service has the following parameters:
Parameter Name | Required | Data Type | Description |
---|---|---|---|
FromLocation |
Yes |
BigDecimal |
Transfer source location |
ToLocation |
Yes |
BigDecimal |
Transfer destination |
CustomerOrderNumber |
No |
String |
Customer order identification |
FulfillOrderNumber |
No |
String |
Fulfillment order identification |
UpdateCustomerReservedQty |
No |
String |
Indicates if any of the customer reserved quantity should be update either the source or destination location or both. Valid values:
|
ItemsDetail |
Yes |
Collection of itemsDetail RDO |
|
ApprovalDate |
No |
Date |
Approval date of the transfer (Format: ‘ |
ItemDetail RDO
The Book Transfer web service has the following parameters:
Parameter Name | Required | Data Type | Description |
---|---|---|---|
Item |
Yes |
String |
Item identification |
Quantity |
Yes |
BigDecimal |
Item quantity to be transferred |
Example JSON Input
[
{
"toLocation":null,
"fromLocation":null,
"customerOrderNumber":null,
"fulfillOrderNumber":null,
"updateCustomerReservedQty":null,
"itemsDetail":[
{
"item":null,
"quantity":null
},
{
"item":null,
"quantity":null
},
{
"item":null,
"quantity":null
}
],
"approvalDate":null
},
{
"fromLocation":null,
"toLocation":null,
"customerOrderNumber":null,
"fulfillOrderNumber":null,
"updateCustomerReservedQty":null,
"itemsDetail":[
{
"item":null,
"quantity":null
}
],
"approvalDate":null
}
]
Output
RestCobtsfStatuRDO
Parameter Name | Data Type |
---|---|
successCobtsfCount |
Big Decimal |
successCobtsfTbl |
List< successCobtsfRDO> |
failCobtsfCount |
BigDecimal |
failCobtsfTable |
List<failCobtsfRDO> |
SuccessCobtsfRDO
Parameter Name | Data Type |
---|---|
FromLocation |
Big Decimal |
ToLocation |
Big Decimal |
TransferNumber |
BigDecimal |
FailCobtsfRDO
Parameter Name | Data Type |
---|---|
FromLocation |
Big Decimal |
ToLocation |
Big Decimal |
errorMessage |
BigDecimal |
JSON Structure
{
"successCobtsfCount": 2,
"successCobtsfTable": [
{
"fromLocation ": 123,
"toLocation ": 987,
"transferNumber ": 123456789
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
},
{
"fromLocation ": 456,
"toLocation ": 654,
"transferNumber ": 987654321
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"failCobtsfCount": 1,
"failCobtsfTable": [
{
"orderNumber": 123,
"errorMessage": "Invalid Item.",
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
],
"links": [],
"hyperMediaContent": {
"linkRDO": []
}
}
Table Impact
The following tables are affected:
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
CURRENCIES |
Yes |
No |
No |
No |
DEPS |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
Yes |
No |
No |
ITEM_LOC_SOH |
Yes |
Yes |
Yes |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
MONTH_DATA |
Yes |
No |
No |
No |
MV_CURRENCY_CONVERSION_RATES |
Yes |
No |
No |
No |
ORDCUST |
Yes |
Yes |
No |
No |
STORE |
Yes |
No |
No |
No |
TRAN_DATA |
No |
Yes |
No |
No |
TSFDETAIL |
No |
Yes |
No |
No |
TSFHEAD |
No |
No |
No |
No |
UOM_CLASS |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
WEEK_DATA |
Yes |
No |
No |
No |
WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Create Transfer Details
Business Overview
This service is used to create additional line items for one or more existing transfers at a time in Merchandising. For more information about transfer, see the Create Transfer service.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-272 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-273 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
Number that uniquely identifies the transfer. |
fromLocationType |
Yes |
String (1) |
The location type of the from location. Valid values are 'S' and 'W'. |
fromLocation |
Yes |
String (10) |
The location number of the from location. |
toLocationType |
Yes |
String (1) |
The location type of the to location. Valid values are 'S', 'W' and 'E' |
toLocation |
Yes |
String (10) |
The location number of the to location. |
details |
No |
Collection of Object |
References collection of transfer details |
Table 5-274 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
The unique identifier of the item being transferred. |
transferQuantity |
Yes |
Number (12,4) |
The total quantity of the item reserved for this transfer at the from location. |
supplierPackSize |
No |
Number (12,4) |
The supplier pack size for this item/transfer. |
invStatus |
No |
Number (2) |
A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table. |
adjustmentType |
No |
String (6) |
This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost. |
adjustmentValue |
No |
Number (20,4) |
If the adjustment type is provided, then the value must also be specified. This must always be a positive amount. |
Sample Input Message
{
"items": [
{
"transferNo": 12300056,
"fromLocationType": "S",
"fromLocation": "1521",
"toLocationType": "S",
"toLocation": "1511",
"details": [
{
"item": "100100076",
"transferQuantity": 3,
"supplierPackSize": 3,
"invStatus": 1,
"adjustmentType": "IA",
"adjustmentValue": 3.55
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Create Transfers
Business Overview
This service is used to by external systems to create one or more transfers at a time in Merchandising. Within Oracle Retail solutions, this is also leveraged by Advanced Inventory Planning (AIP) to create standalone transfers generated out of its replenishment processing.
When a new transfer is created, this service will first validate that all required fields are present in the message. Certain fields are required regardless of transfer type and system configuration, while others are dependent on other Merchandising configurations. Additionally, when creating a new transfer at least one detail line must also be included in the message. After that, business level validation on the input information will be performed.
Location Validation
The from and to locations passed into the message must be valid stores or warehouses in Merchandising; but they cannot be the same. If both locations are stores, then they must both exist in the same transfer zone. Additionally, if the to location is a store, then it must be open. This is determined based on whether there is a close date defined for the store and the stop order days.
If either location is a warehouse, then it can be either a physical warehouse or a virtual warehouse, depending on transfer type. A physical warehouse is only allowed as the from location type for an EG type of transfer. Additionally, only Book type transfers are allowed between two warehouses in the same physical warehouse.
If either the from or to location is a franchise store, then the other location cannot be a finisher. If the franchise store is a non-stockholding location, then the other location on the transfer must be a warehouse.
Validation is also done at the item level based on the locations on the transfer. Each item on the transfer must be in active, inactive, or discontinued status at the from location. It also must have been ranged to the from location in Merchandising, when that location is a warehouse. However, if the from location is a store, there is an exception where the transfer can still be created even though it is not yet ranged, which also bypasses inventory validation. This is to support a specific function in Oracle Retail Store Inventory Management (SIM). If the item is not already ranged to the to location, then ranging will occur when the transfer is created, regardless of status. The ranging that occurs will flag the item/location as unintentionally ranged for all transfer types except service. If the to location is an external finisher, see the section below on transfers with finishing.
Inventory Validation
Another part of the validation that is applicable for all transfers created is that inventory is available for transfer if the status passed through the integration is approve (A), with a few exceptions. First, EG type transfers do not have inventory validated as it is assumed that this type of transfer is generated in the store or warehouse and the inventory availability check has been done in that solution as part of the shipping of the inventory. Additionally, if the system option titled Validate External Warehouse Availability is set to No (unchecked), then warehouse inventory will not be validated for any transfers initiated in this service regardless of type. Store inventory availability is never validated by this service because of support for the process where the item does not need to be ranged to the shipping store.
Status Validation
Transfers can be created in a status of Input (I) or Approved (A) using this service. Transfers in input status are not subject to inventory validation, but all other validations are applicable. Book type transfers can only be created in Input status using this service, as there isn't really a concept of an 'approved' book transfer. As soon as it is approved it is executed. Additionally, transfers of type Reallocation (RAC) and Return to Vendor (RV) can also only be created in Input status. Conversely, transfers of type AIP, SIM, and EG must always be created in Approved status. If any validation fails when processing the new transfer that results in it not being able to be approved, the transfer will be created but will remain in input status. The exception to this is for transfers of type AIP, SIM, and EG, as they must always be created in approved status. If they are not able to be approved, the transfer is not created or updated.
Transfer Type Specific Validation
Most of the validation defined above is relevant regardless of transfer type, except where noted. However, there are also some other validations done as part of this service processing that are specific to a type of transfer.
Administrative (AD)
-
See Manual Requisition
AIP Generated (AIP)
This type of transfer is expected only to be sent from AIP as an output of the replenishment process. As such, Merchandising assumes certain validations have been done by AIP in advance of receiving the transfer and slightly different validation is enforced. The following special validations apply for this transfer type using this service:
-
Must be created in Approved status
-
Can only be to stockholding locations
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the system option is N
-
Item/location ranging to the to location will result in the Ranged flag being set to Yes as it is assumed this an intentional ranging.
-
Can be an intercompany transfer
Book (BT)
Book transfers processed through this service can be created for two virtual warehouses in the same physical warehouse only. This is usually used for inventory rebalancing between virtual locations. The following special validations apply for this transfer type using this service:
-
Can only be created in Input status
-
Can only be created for virtual warehouses in the same physical warehouse
-
Warehouses must be in the same legal entity
Confirmation (CF)
-
See Manual Requisition
Externally Generated (EG)
Externally Generated transfers are assumed to be created in the store or warehouse. Further, it is assumed that once they get to Merchandising, the transfer is already in process at that location. As such, there are certain validations that are managed differently for this transfer type in this service:
-
Must be created in Approved status
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the system option is N
-
Can be an intercompany transfer
-
Uses the physical warehouse number, not a virtual warehouse number, if warehouses are involved
Intercompany (IC)
An intercompany transfer is a type of business to business transaction that sells product from one legal entity and purchases it into another. Legal entities in Merchandising are determined based on the setting of the Intercompany Basis system option, which indicates whether the transfer entity or the set of books of a location should be used. This transfer type is used when either it is explicitly passed into the service or if the transfer type is NULL in the inbound message and the locations are in different legal entities. Other transfer types may also be intercompany, as well, but the below rules apply for those flagged as intercompany type explicitly:
-
The legal entity of the from and to locations must be different.
-
If an adjustment type or value is passed into the message, that will be used to calculate the 'selling' price between entities. Otherwise, the from location's weighted average cost is used
Manual Requisition (MR)
This is the most basic type of transfer in Merchandising, so it is used as a default transfer type when either it is explicitly passed into the service or if the transfer type is NULL in the inbound message and the locations are in the same legal entity. The behavior for this transfer type is the same as that for AD and CF types of transfers, those could be used as different reasons for a transfer. For this transfer type the following validation rules are enforced:
-
Locations must be in the same legal entity
Reallocation (RAC)
A reallocation transfer is assumed to be used to pull back inventory from stores or warehouses to a single warehouse for re-allocation to other stores or other warehouses. This is the type of transfer that is created when a mass-return transfer is created, for example. Because it has unique rules tied to it related to MRTs, some additional validations are followed:
-
Can only be created in Input status in this service
-
Locations must be in the same legal entity
Return to Vendor (RV)
A return to vendor type of transfer is similar to a reallocation type, in that it is assumed to be pulling inventory back to a warehouse from stores or other warehouses, but in this case, for the purpose of returning the merchandise to the supplier. This is the type of transfer that is created when a mass-return transfer is created, for example. Because it has some unique rules tied to it related to MRTs, some additional validations are followed:
-
Can only be created in Input status in this service
-
Locations must be in the same legal entity
SIM Generated (SIM)
SIM generated transfers are created only by the store orders process in SIM. This functionality is not available in SIOCS. Because of this, they have special rules applied, including the ability to create the transfer even though no item/store relationship exists for the originating location in Merchandising. The rules that apply for this type of transfer include:
-
Must be created in Approved status
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the Merchandising system option is No
-
Can be an intercompany transfer
All Transfer Types
For all of the above transfer types, if all validation described above passes, then the transfer will be created. If the transfer is created in Approved status, then in addition to the transfer itself, other details may also be created based on the items and locations involved.
-
Inventory will be updated to reflect the reserved quantity at the from location and expected quantity at the to location.
-
Upcharges will be applied, if configured, for transfers that do not include a physical warehouse location. For transfers with a physical warehouse, the records for upcharges are added when the transfer is shipped.
-
An associated franchise order or return will be created if the transfer involves a franchise location.
Transfers with Finishing
Transfers with finishing are sometimes referred to as a two-legged transfer, as they generate two transfers in Merchandising. One from the originating store or warehouse to the finisher and one from the finisher back to a store or warehouse. This service supports the creation of a transfer with finishing only through an external finisher, a type of partner, and back to the originating location. Transfers to an internal finisher are not supported via this integration. To do this, when sending the transfer details in the message, you will indicate the external finisher as the to location. Then when the transfer is created, it will automatically generate the second leg.
When creating transfers in this way, it does not generate any work order activities to send to the finisher with the transfer. These will either need to be added manually in the Merchandising screens, or sent separately to the finisher.
Flex Attributes
If you have defined any custom flex attributes (CFAS) for transfers, then they can be integrated as part of this service. The node of the integration that supports this will accept the name of the attribute as it is defined in the group set level view and the value for the attribute. Flex attributes can only be added or updated to a transfer, they cannot be deleted. Additionally, for transfers with finishing, flex attributes can only be added to the first leg of the transfer.
Location Validation
The from and to locations passed into the message must be valid stores or warehouses in Merchandising; but they cannot be the same. If both locations are stores, then they must both exist in the same transfer zone. Additionally, if the to location is a store, then it must be open. This is determined based on whether there is a close date defined for the store and the stop order days.
If either location is a warehouse, then it can be either a physical warehouse or a virtual warehouse, depending on transfer type. A physical warehouse is only allowed as the from location type for an EG type of transfer. Additionally, only Book type transfers are allowed between two warehouses in the same physical warehouse.
If either the from or to location is a franchise store, then the other location cannot be a finisher. If the franchise store is a non-stockholding location, then the other location on the transfer must be a warehouse.
Validation is also done at the item level based on the locations on the transfer. Each item on the transfer must be in active, inactive, or discontinued status at the from location. It also must have been ranged to the from location in Merchandising, when that location is a warehouse. However, if the from location is a store, there is an exception where the transfer can still be created even though it is not yet ranged, which also bypasses inventory validation. This is to support a specific function in Oracle Retail Store Inventory Management (SIM). If the item is not already ranged to the to location, then ranging will occur when the transfer is created, regardless of status. The ranging that occurs will flag the item/location as unintentionally ranged for all transfer types except service. If the to location is an external finisher, see the section below on transfers with finishing.
Inventory Validation
Another part of the validation that is applicable for all transfers created is that inventory is available for transfer if the status passed through the integration is approve (A), with a few exceptions. First, EG type transfers do not have inventory validated as it is assumed that this type of transfer is generated in the store or warehouse and the inventory availability check has been done in that solution as part of the shipping of the inventory. Additionally, if the system option titled Validate External Warehouse Availability is set to No (unchecked), then warehouse inventory will not be validated for any transfers initiated in this service regardless of type. Store inventory availability is never validated by this service because of support for the process where the item does not need to be ranged to the shipping store.
Status Validation
Transfers can be created in a status of Input (I) or Approved (A) using this service. Transfers in input status are not subject to inventory validation, but all other validations are applicable. Book type transfers can only be created in Input status using this service, as there isn't really a concept of an 'approved' book transfer. As soon as it is approved it is executed. Additionally, transfers of type Reallocation (RAC) and Return to Vendor (RV) can also only be created in Input status. Conversely, transfers of type AIP, SIM, and EG must always be created in Approved status. If any validation fails when processing the new transfer that results in it not being able to be approved, the transfer will be created but will remain in input status. The exception to this is for transfers of type AIP, SIM, and EG, as they must always be created in approved status. If they are not able to be approved, the transfer is not created or updated.
Transfer Type Specific Validation
Most of the validation defined above is relevant regardless of transfer type, except where noted. However, there are also some other validations done as part of this service processing that are specific to a type of transfer.
Service Type
This type of transfer is expected only to be sent from AIP as an output of the replenishment process. As such, Merchandising assumes certain validations have been done by AIP in advance of receiving the transfer and slightly different validation is enforced. The following special validations apply for this transfer type using this service:
-
Must be created in Approved status
-
Can only be to stockholding locations
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the system option is N
-
Item/location ranging to the to location will result in the Ranged flag being set to Yes as it is assumed this an intentional ranging.
-
Can be an intercompany transfer
Book (BT)
Book transfers processed through this service can be created for two virtual warehouses in the same physical warehouse only. This is usually used for inventory rebalancing between virtual locations. The following special validations apply for this transfer type using this service:
-
Can only be created in Input status
-
Can only be created for virtual warehouses in the same physical warehouse
-
Warehouses must be in the same legal entity
Externally Generated (EG)
Externally Generated transfers are assumed to be created in the store or warehouse. Further, it is assumed that once they get to Merchandising, the transfer is already in process at that location. As such, there are certain validations that are managed differently for this transfer type in this service:
-
Must be created in Approved status
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the system option is N
-
Can be an intercompany transfer
-
Uses the physical warehouse number, not a virtual warehouse number, if warehouses are involved
Intercompany (IC)
An intercompany transfer is a type of business to business transaction that sells product from one legal entity and purchases it into another. Legal entities in Merchandising are determined based on the setting of the Intercompany Basis system option, which indicates whether the transfer entity or the set of books of a location should be used. This transfer type is used when either it is explicitly passed into the service or if the transfer type is NULL in the inbound message and the locations are in different legal entities. Other transfer types may also be intercompany, as well, but the below rules apply for those flagged as intercompany type explicitly:
-
The legal entity of the from and to locations must be different.
-
If an adjustment type or value is passed into the message, that will be used to calculate the 'selling' price between entities. Otherwise, the from location's weighted average cost is used
Manual Requisition (MR)
This is the most basic type of transfer in Merchandising, so it is used as a default transfer type when either it is explicitly passed into the service or if the transfer type is NULL in the inbound message and the locations are in the same legal entity. The behavior for this transfer type is the same as that for AD and CF types of transfers, those could be used as different reasons for a transfer. For this transfer type the following validation rules are enforced:
-
Locations must be in the same legal entity
Reallocation (RAC)
A reallocation transfer is assumed to be used to pull back inventory from stores or warehouses to a single warehouse for re-allocation to other stores or other warehouses. This is the type of transfer that is created when a mass-return transfer is created, for example. Because it has unique rules tied to it related to MRTs, some additional validations are followed:
-
Can only be created in Input status in this service
-
Locations must be in the same legal entity
Return to Vendor (RV)
A return to vendor type of transfer is similar to a reallocation type, in that it is assumed to be pulling inventory back to a warehouse from stores or other warehouses, but in this case, for the purpose of returning the merchandise to the supplier. This is the type of transfer that is created when a mass-return transfer is created, for example. Because it has some unique rules tied to it related to MRTs, some additional validations are followed:
-
Can only be created in Input status in this service
-
Locations must be in the same legal entity
SIM Generated (SIM)
SIM generated transfers are created only by the store orders process in SIM. This functionality is not available in SIOCS. Because of this, they have special rules applied, including the ability to create the transfer even though no item/store relationship exists for the originating location in Merchandising. The rules that apply for this type of transfer include:
-
Must be created in Approved status
-
Supports transferring packs from stores
-
Allows the department number to be passed even when the Merchandising system option is No
-
Can be an intercompany transfer
All Transfer Types
For all of the above transfer types, if all validation described above passes, then the transfer will be created. If the transfer is created in Approved status, then in addition to the transfer itself, other details may also be created based on the items and locations involved.
-
Inventory will be updated to reflect the reserved quantity at the from location and expected quantity at the to location.
-
Upcharges will be applied, if configured, for transfers that do not include a physical warehouse location. For transfers with a physical warehouse, the records for upcharges are added when the transfer is shipped.
-
An associated franchise order or return will be created if the transfer involves a franchise location.
Transfers with Finishing
Transfers with finishing are sometimes referred to as a two-legged transfer, as they generate two transfers in Merchandising. One from the originating store or warehouse to the finisher and one from the finisher back to a store or warehouse. This service supports the creation of a transfer with finishing only through an external finisher, a type of partner, and back to the originating location. Transfers to an internal finisher are not supported via this integration. To do this, when sending the transfer details in the message, you will indicate the external finisher as the to location. Then when the transfer is created, it will automatically generate the second leg.
When creating transfers in this way, it does not generate any work order activities to send to the finisher with the transfer. These will either need to be added manually in the Merchandising screens, or sent separately to the finisher.
Flex Attributes
If you have defined any custom flex attributes (CFAS) for transfers, then they can be integrated as part of this service. The node of the integration that supports this will accept the name of the attribute as it is defined in the group set level view and the value for the attribute. Flex attributes can only be added or updated to a transfer, they cannot be deleted. Additionally, for transfers with finishing, flex attributes can only be added to the first leg of the transfer.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-275 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-276 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
Number that uniquely identifies the transfer. |
fromLocationType |
Yes |
String (1) |
The location type of the from location. Valid values are 'S' and 'W'. |
fromLocation |
Yes |
Number (10) |
The location number of the from location. |
toLocationType |
Yes |
String (1) |
The location type of the to location. Valid values are 'S', 'W' and 'E' |
toLocation |
Yes |
Number (10) |
The location number of the to location. |
deliveryDate |
No |
date |
The earliest date the transfer can be delivered. When Inventory Planning is part of your implementation, this is required for all transfer types, except RAC, EG, and Store Inventory Operations transfers. If included in the message, this must be today or a future date. |
department |
No |
Number (4) |
The department number associated with the transfer. A system option determines whether or not the department is required for transfers. If the system option is set to require a department, then this must be included in the message. If the system option is set to not require the department, then the department must be null in this message unless the transfer type is SIM (Store Inventory Operations), AIP (Inventory Planning), or EG (Externally Generated). |
routingCode |
No |
String (1) |
If the freight code is Expedite (E), then this must have a value. Otherwise, it must be null. The descriptions for these three options are held in the Codes table under code TRRC and can be configured as needed for your business. Examples are Federal Express (1), UPS (2) and mail (3). |
freightCode |
No |
String (1) |
A code indicating the freight status of the transfer (for example, normal, expedite, and so on). |
transferType |
No |
String (6) |
A code indicating the type of transfer (e. g. store requisition, book transfer, etc. ). The following types of transfers can be created in this service: Administrative (AD), Inventory Planning Generated (AIP), Book (BT), Confirmation (CF), Externally Generated (EG), Intercompany (IC), Manual Requisition (MR), Reallocation (RAC), Return to Vendor ,(RV) and Store Inventory Operations Generated (SIM). |
details |
No |
Collection of Object |
References a collection of transfer details. |
status |
No |
String (1) |
A code indicating the status of the transfer. Valid values are 'I' and 'A'. |
createdBy |
No |
String (30) |
The userid of the user who created the transfer. |
comments |
No |
String (2000) |
Comments associated with the transfer. |
contextType |
No |
String (6) |
This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR). |
contextValue |
No |
String (25) |
This field holds the value relating to the context type like Promotion number. |
customFlexAttribute |
No |
Collection of Object |
References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL |
Table 5-277 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
The unique identifier of the item being transferred. |
transferQuantity |
Yes |
Number (12,4) |
The total quantity of the item reserved for this transfer at the from location. |
supplierPackSize |
No |
Number (12,4) |
The supplier pack size for this item/transfer. |
invStatus |
No |
Number (2) |
A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table. |
adjustmentType |
No |
String (6) |
This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost. |
adjustmentValue |
No |
Number (20,4) |
If the adjustment type is provided, then the value must also be specified. This must always be a positive amount. |
Table 5-278 CustomFlexAttribute - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
name |
Yes |
String (30) |
Holds the attribute name. |
value |
No |
String (250) |
Holds the numeric or string value of the attribute. |
valueDate |
No |
date |
Holds the date value of the attribute. |
Sample Input Message
{
"items": [
{
"transferNo": 12300056,
"fromLocationType": "S",
"fromLocation": 1521,
"toLocationType": "S",
"toLocation": 1511,
"deliveryDate": "2001-12-31",
"department": null,
"routingCode": null,
"freightCode": "N",
"transferType": "AD",
"details": [
{
"item": "104100022",
"transferQuantity": 3,
"supplierPackSize": 3,
"invStatus": 1,
"adjustmentType": "IA",
"adjustmentValue": 3.6
}
],
"status": "I",
"createdBy": "RMS01APP",
"comments": "transfer to loc 1511",
"contextType": "PROM",
"contextValue": "2255",
"customFlexAttribute": [
{
"name": "REVIEW_DATE",
"value": null,
"valueDate": "2001-12-31"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Delete Transfer Details
Business Overview
This service is used to delete line items from one or more existing transfers at a time in Merchandising.
If you are deleting a detail on the transfer, this service will validate that the transfer number is valid and that the transfer or transfer line was not already shipped or received, at least partially, or is not in process at the shipping warehouse or store. Validation will be done to ensure that the item exists on the transfer after transfer line level deletes have been performed. Deleting the last line on the transfer will result in the transfer being flagged for delete.
If the transfer is in a status other than input, deleting a line will also update inventory to release the reserved inventory at the from location and decrease expected quantity at the to location. As well, if the transfer involves any franchise stores, then any franchise order or return created with the transfer will also be cancelled.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-279 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-280 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
The transfer number where info is being deleted from. |
details |
No |
Collection of Object |
References collection of transfer details |
Table 5-281 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
The item for which transfer info is being deleted. |
Sample Input Message
{
"items": [
{
"transferNo": 12300056,
"details": [
{
"item": "100100076"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Delete Transfers
Business Overview
This service is used to to delete one or more transfers from Merchandising.
When deleting a transfer, this API will validate that the transfer number is valid and that the transfer or transfer line has not already shipped or received already or is not undergoing any processing at the shipping warehouse or store. Transfers are not actually deleted via this API, rather they are updated to a deleted status and a secondary process does the actual removal. If you want to delete the entire transfer, then no detail level records should be included in the message.
Transfers can be deleted in any status, other than ones that are already in a closed or deleted status. If the transfer involves an external finisher, then both legs of the transfer will be marked for deletion. If the transfer is in a status other than Input, then moving it to a deleted status will also update the related inventory data to release the reserved inventory at the source location and decrease the expected quantity at the destination location. If the transfer involves any franchise stores, then the franchise order or return that was created with the transfer will also be cancelled.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-282 Delete - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-283 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
This is the transfer being deleted. |
Sample Input Message
{
"items": [
{
"transferNo": 12300001
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Update Transfer Details
Business Overview
This service is used to modify line items for one or more existing transfers at a time in Merchandising.
To add or update a line item - only the transfer number is required in the header record, the other details are ignored. If not included, then the message will be rejected. Adding a new item to the transfer will use similar validations when creating the transfer.
If modifying an existing transfer line item, the full transfer quantity should be sent with the update, not the difference from the original quantity. This will be compared to the previous transfer quantity to determine how to update the transfer. For example, if the transfer is in approved or submitted status, a reduction in quantity would update the cancelled quantity on the transfer. It will also be validated to ensure that the quantity change doesn't result in the total transfer quantity being lower than what has already been shipped or what is expected to be picked based on updates to the selected or distro quantities on the transfer. For increases in transfer quantity, if the transfer is in submitted or approved status, then inventory will be validated based on the changed quantity (depending on system option settings) to validate that the additional units are available. The inventory status for the item cannot be modified.
For more information about transfer, see the Create Transfer service.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-284 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-285 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
Number that uniquely identifies the transfer. |
fromLocationType |
Yes |
String (1) |
The location type of the from location. Valid values are 'S' and 'W'. |
fromLocation |
Yes |
Number (10) |
The location number of the from location. |
toLocationType |
Yes |
String (1) |
The location type of the to location. Valid values are 'S', 'W' and 'E' |
toLocation |
Yes |
Number (10) |
The location number of the to location. |
details |
No |
Collection of Object |
References collection of transfer details |
Table 5-286 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
The unique identifier of the item being transferred. |
transferQuantity |
Yes |
Number (12,4) |
The total quantity of the item reserved for this transfer at the from location. |
supplierPackSize |
No |
Number (12,4) |
The supplier pack size for this item/transfer. |
invStatus |
No |
Number (2) |
A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table. |
adjustmentType |
No |
String (6) |
This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost. |
adjustmentValue |
No |
Number (20,4) |
If the adjustment type is provided, then the value must also be specified. This must always be a positive amount. |
Sample Input Message
{
"items": [
{
"transferNo": 12300056,
"fromLocationType": "S",
"fromLocation": 1521,
"toLocationType": "S",
"toLocation": 1511,
"details": [
{
"item": "104100022",
"transferQuantity": 3,
"supplierPackSize": 3,
"invStatus": 1,
"adjustmentType": "IA",
"adjustmentValue": 3.55
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Update Transfers
Business Overview
This service is used to update transfers in Merchandising at the header level. The transfer number included in the message must already exist in Merchandising. All the required header level information needs to be included in the update, similar to that for creating a new transfer. Fields that can be updated at the header level using this service include:
-
Delivery Date - Must always be a date today or later.
-
Routing Code - If the freight code is updated to expedite (E), then this must also have a value. If freight code is updated to something other than expedite, then this should be null.
-
Freight Code
-
Status - Used to move from Input or Submitted to Approved only. Transfers cannot be moved back to Input status using this API.
-
Comments
-
Context Type
-
Context Value
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-287 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
References a collection of transfers. |
Table 5-288 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
Number (12) |
Number that uniquely identifies the transfer. |
fromLocationType |
Yes |
String (1) |
The location type of the from location. Valid values are 'S' and 'W'. |
fromLocation |
Yes |
String (10) |
The location number of the from location. |
toLocationType |
Yes |
String (1) |
The location type of the to location. Valid values are 'S', 'W' and 'E' |
toLocation |
Yes |
String (10) |
The location number of the to location. |
deliveryDate |
No |
date |
The earliest date the transfer can be delivered. When Inventory Planning is part of your implementation, this is required for all transfer types, except RAC, EG, and SIM transfers. If included in the message, this must be today or a future date. |
routingCode |
No |
String (1) |
If the freight code is Expedite (E), then this must have a value. Otherwise, it must be null. The descriptions for these three options are held in the Codes table under code TRRC and can be configured as needed for your business. Examples are Federal Express (1), UPS (2) and mail (3). |
transferType |
No |
String (6) |
A code indicating the type of transfer (e. g. store requisition, book transfer, etc. ). The following types of transfers can be created in this service: Administrative (AD), Inventory Planning Generated (AIP), Book (BT), Confirmation (CF), Externally Generated (EG), Intercompany (IC), Manual Requisition (MR), Reallocation (RAC), Return to Vendor ,(RV) and Store Inventory Operations Generated (SIM). |
status |
No |
String (1) |
A code indicating the status of the transfer. Valid values are 'I' and 'A'. |
createdBy |
No |
String (30) |
The userid of the user who created the transfer. |
comments |
No |
String (2000) |
Comments associated with the transfer. |
contextType |
No |
String (6) |
This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR). |
contextValue |
No |
String (25) |
This field holds the value relating to the context type like Promotion number. |
customFlexAttribute |
No |
Collection of Object |
References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL. |
Table 5-289 CustomFlexAttribute - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
name |
Yes |
String (30) |
Holds the attribute name. |
value |
No |
String (250) |
Holds the numeric or string value of the attribute. |
valueDate |
No |
date |
Holds the date value of the attribute. |
Sample Input Message
{
"items": [
{
"transferNo": 12300056,
"fromLocationType": "S",
"fromLocation": "1521",
"toLocationType": "S",
"toLocation": "1511",
"deliveryDate": "2001-12-31",
"routingCode": null,
"transferType": "AD",
"status": "A",
"createdBy": "RMS01APP",
"comments": "transfer to loc 1511",
"contextType": "PROM",
"contextValue": "2255",
"customFlexAttribute": [
{
"name": "REVIEW_DATE",
"value": null,
"valueDate": "2001-12-31"
}
]
}
]
}
Response Code: 200 (Success)
Sample Response Message
{
"status": "SUCCESS",
"message": "Service call is successful"
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
"Error message"
]
}
Work Order Status Upload Service
The following services are included in this functional area:
Update Work Orders Status
Business Overview
For transfers with finishing, Merchandising subscribes to Work Order Status messages sent from internal finishers indicating that the work order activities are complete. This message is used for internal finishers located in the same physical warehouse as the final destination for the transfer, as there is no physical shipment of goods. Other finishing scenarios exist in which the finisher is not a virtual warehouse that shares a physical warehouse with the transfer's final receiving location. In these instances, Work Order Status messages are not necessary, and Merchandising will disregard Work Order Status messages sent in these scenarios.
Work order status messages contain the items for which the activities have been completed along with the quantity that was completed. All items on transfers that pass through an internal finisher must have at least one work order activity associated with them. When Work Order status messages are received for a particular item/quantity, it is assumed that all activities on the work order associated with the item/quantity have been completed. If work order activities involve item transformation or repacking, the work order status messages are always created in terms of the resultant item or pack.
On processing the work order status update, a book transfer is executed between the internal finisher (which is held as a virtual warehouse) and the final receiving location (also a virtual warehouse). If the internal finisher belongs to the sending location's transfer entity, intercompany out and intercompany in transactions are recorded. Quantities on hand, reserved quantities, and weighted average costs are adjusted to accurately reflect the status of the stock.
It is possible to receive multiple Work Order Status messages for a particular item/transfer. Work order completion of partial quantities addresses the following scenarios:
-
Work order activities could not be performed for the entire quantity of a particular item at one time.
-
A given quantity of the particular item was damaged while work order activities were performed.
Work Order Example
Assume that a quantity of 20 of item 100 (White XL T-shirt) are sent to an internal finisher at the receiving physical warehouse, where they will be dyed black, thereby transforming them into item 101 (Black XL T-shirt). If all finishing activities were successfully completed in this example, Merchandising could expect to receive a Work Order Status message containing item 101 with a quantity of 20.
Work Order Update Process
While consuming the Work Order Status message, Merchandising validates that the finisher and the transfer's final receiving location are in the same physical warehouse. If not, processing is halted. If the message contains an item, work order complete processing will be called for that item. Otherwise, said processing will be called for all items on the transfer. If the entire transfer is processed, the child transfer (that is, the second leg) will be set to Shipped status. Note that work orders are always associated with the second leg of multi-leg transfers. Whether processing is performed at the item or transfer level, transfer closing logic will be used to determine if the entire multi-leg transfer can be closed.
Availability During Nightly Batch Cycle
This service will not be available when batches that affect inventory are in-progress.
Input Payload Details
Table 5-290 Update - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of work orders. |
Table 5-291 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
transferNo |
Yes |
String (12) |
This field contains the identifier of the transfer during which the work order activities will be performed. For 2-legged transfers, this is the transfer number of the 1st leg transfer. |
parentTransferNo |
No |
String (12) |
The higher level transfer that this transfer is part of. |
item |
No |
String (25) |
The item on which the work order has been completed. If an item transformation occurred, this should be the resultant item. This should be populated if completedQty is provided. |
location |
Yes |
Number (10) |
This is the finisher location. |
completeDate |
Yes |
date |
This is the workorder completion date. If this is not provided, the value will be defaulted to the current date. |
completedQuantity |
No |
Number (12,4) |
The quantity of the item on which work has been completed. This should be provided if item is provided. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"transferNo": "100000135001",
"parentTransferNo": "100000135000",
"item": "101300002",
"location": 15000,
"completeDate": "2001-12-31",
"completedQuantity": 1
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Work Order Download Service
The following services are included in this functional area:
Purchase Order Work Order Publish Services
Endpoints
MerchIntegrations/services/inventory/woin
MerchIntegrations/services/inventory/woin/{workOrderId}
Business Overview
This service can be used by external applications to get all or selected work orders that are associated with purchase orders and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/woin?since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/woin/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woin
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
orderNo |
No |
Number |
This is the purchase order number. |
offsetkey |
No |
String |
Offset Key. Valid Value is combination of |
limit |
No |
BigDecimal |
Pagination limit. Default Value is 1000. |
Input Parameters for MerchIntegrations/services/inventory/woin/{workOrderId}
Parameter Name | Required | Data Type | Description |
---|---|---|---|
workOrderId |
Yes |
Number |
This is the unique identifier for work in process associated with an order. |
Output - WO In Head
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Item details. Valid Values
are |
workOrderId |
Number |
This field contains the unique identifier for work in process associated with an order. |
orderNo |
Number |
This field contains the order number associated with the work order. |
createDateTime |
String |
This column holds the record creation date. |
details |
This List holds attributes for details of the Work Order. |
|
cacheTimestamp |
String |
This field specifies date and time when the work order record was last maintained. |
Output - WO In Detail
Name | Data Type | Description |
---|---|---|
warehouse |
Number |
This field holds physical warehouse where the work order will be done. |
item |
String |
This field holds item on which the work order will be done. |
locationType |
String |
This field holds location type of the final destination. |
location |
Number |
This field holds final destination for the item on the order. If the item is pre-distributed this location will be the store or warehouse on the allocation. If not, it will be the same warehouse as above. |
sequenceNo |
Number |
This field holds sequence number that is needed to ensure each record is unique, since the same work-in-progress code can be listed more than once on the same work order. |
activityCode |
String |
This field holds WIP code for the work to be done on the item. Valid values are in the codes table under the WWIP code type. |
createDateTime |
String |
This column holds the record creation date. |
Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25
rows are returned along with a |
links |
|
Example JSON output:
{
"items": [
{
"action": "INSERT",
"workOrderId": 10007,
"orderNo": 10001,
"createDateTime": "2021-05-13T19:47:33.000Z",
"details": [
{
"warehouse": 5,
"item": "101550001",
"locationType": "W",
"location": 5,
"sequenceNo": 1,
"activityCode ": "QC",
"createDateTime": "2021-05-13T19:47:49.000Z"
}
],
"cacheTimestamp": "2021-06-21T05:42:18.934Z"
},
{
"action": "UPDATE",
"workOrderId": 15001,
"orderNo": 655005,
"createDateTime": "2021-08-05T03:17:27.000Z",
"details": [
{
"warehouse": 2,
"item": "100950020",
"locationType": "W",
"location": 2,
"sequenceNo": 2,
"activityCode ": "QC",
"createDateTime": "2021-08-05T03:20:54.000Z"
},
{
"warehouse": 2,
"item": "100950062",
"locationType": "W",
"location": 2,
"sequenceNo": 4,
"activityCode ": "KIT",
"createDateTime": "2021-08-05T12:08:03.000Z"
},
{
"warehouse": 2,
"item": "100950062",
"locationType": "W",
"location": 2,
"sequenceNo": 3,
"activityCode ": "TICKET",
"createDateTime": "2021-08-05T03:32:18.000Z"
},
{
"warehouse": 2,
"item": "100950062",
"locationType": "W",
"location": 2,
"sequenceNo": 2,
"activityCode ": "QC",
"createDateTime": "2021-08-05T03:20:54.000Z"
},
{
"warehouse": 2,
"item": "100950020",
"locationType": "W",
"location": 2,
"sequenceNo": 4,
"activityCode ": "KIT",
"createDateTime": "2021-08-05T12:08:03.000Z"
},
{
"warehouse": 2,
"item": "100950020",
"locationType": "W",
"location": 2,
"sequenceNo": 3,
"activityCode ": "TICKET",
"createDateTime": "2021-08-05T03:32:18.000Z"
}
],
"cacheTimestamp": "2021-08-05T12:08:56.163Z"
},
],
"hasMore": false,
"limit": 10000,
"count": 2,
"links": [
{
"href": "https://<hostname>:<port>/rgbu-rex-rgbu-dev1-mfcs19-1/MerchIntegrations/services/inventory/woin?limit=10000&since=1970-01-01T00:00:00.001Z&before=2022-03-26T02:28:02.971902+00:00",
"rel": "self"
}
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_WOIN |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_WOIN |
Yes |
Yes |
Yes |
Yes |
V_ MERCHAPI_EXT_WOIN _JSON |
Yes |
No |
No |
No |
Transfer Work Order Publish Services
Endpoints
MerchIntegrations/services/inventory/woout
MerchIntegrations/services/inventory/woout/{workOrderId}
Business Overview
This service can be used by external applications to get all or selected work orders that are associated with transfers and its details from Merchandising.
ReST URL
/MerchIntegrations/services/inventory/woout? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/woout/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woout
Parameter Name | Required | Data Type | Description |
---|---|---|---|
since |
No |
String |
Since Date. Format: |
before |
No |
String |
Before Date Format: |
transferNo |
No |
Number |
This is the transfer number. |
offsetkey |
No |
String |
Offset Key. Valid Value is combination of |
limit |
No |
BigDecimal |
Pagination limit. Default Value is 1000. |
Input Parameters for MerchIntegrations/services/inventory/woout/{workOrderId}
Parameter Name | Required | Data Type | Description |
---|---|---|---|
workOrderId |
Yes |
Number |
This is the unique identifier for work in process associated with an order or transfer. |
Output - WO Out Head
Name | Data Type | Description |
---|---|---|
action |
String |
Action for Item details. Valid Values
are |
workOrderId |
Number |
This field contains the unique identifier for work in process associated with an order or transfer. |
distroNo |
Number |
This field contains the first leg transfer number of the 2-legged transfer. |
parentDistroNo |
Number |
This field contains the second leg transfer number of the 2-legged transfer. |
finisherLocationId |
Number |
This field contains destination location for the transfer. |
inventoryType |
String |
This field contains the code to indicate whether the inventory on the transfer is available. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the record updated date. |
activityDetails |
This list holds attributes for details of the Work Order Out record. |
|
transformationDetails |
This list holds attributes for details of Work Order transformation details record. |
|
packingDetails |
This list holds attributes for details of Work Order packing details record. |
|
cacheTimestamp |
String |
This field specifies date and time when the work order out record was last maintained. |
Output - WO Activity Details
Name | Data Type | Description |
---|---|---|
item |
String |
Unique identifier for the item. |
activityId |
Number |
This field contains a code number indicating the activity that will be performed on the item. |
activityUnitCost |
Number |
This field contains the per unit cost of the finishing activity. |
comments |
String |
This field contains any comments regarding this activity |
invStatus |
String |
This field contains the inventory status of the transfer detail. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the record updated date. |
Output - WO Transformation Details
Name | Data Type | Description |
---|---|---|
fromItem |
String |
This field contains the original item on the transfer. |
toItem |
String |
This field contains the item which results from the finishing activity. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the record updated date. |
Output - WO Packing Details
Name | Data Type | Description |
---|---|---|
item |
String |
This field contains the item resulting from the packing process |
packingSetNo |
Number |
This field contains packing set number from the packing process. |
recordType |
String |
This field determines if the item
in the |
quantity |
Number |
his field contains the quantity of the item used to create the pack or as a result of the packing process. |
createDateTime |
String |
This column holds the record creation date. |
updateDateTime |
String |
This column holds the record updated date. |
Elements in JSON Output
Elements | Description |
---|---|
items |
The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
hasMore |
This is dependent on limit value. If the total rows are more than then limit defined then |
limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25
rows are returned along with a |
links |
|
Example JSON output:
{
"items": [
{
"workOrderId": 1,
"distroNo": 100000135001,
"parentDistroNo": 100000135000,
"finisherLocationId": 15000,
"inventoryType": "A",
"createDateTime": "2020-10-31T16:00:00.000Z",
"updateDatetime": "2021-06-13T09:44:00.000Z",
"activityDetails": [{
"item": "101200001",
"activityId": 2,
"activityUnitCost": 0.3,
"comments": "2 pc 1 kit",
"invStatus": null,
"createDatetime": "2021-06-11T03:32:34.000Z",
"updateDateTime": "2021-06-11T03:32:34.000Z"
}, {
"item": "101300002",
"activityId": 3,
"activityUnitCost": 0.3,
"comments": null,
"invStatus": null,
"createDatetime": "2021-06-11T03:57:54.000Z",
"updateDateTime": "2021-06-11T03:57:54.000Z"
}, {
"item": "101800040",
"activityId": 2,
"activityUnitCost": 0.3,
"comments": null,
"invStatus": null,
"createDatetime": "2021-06-11T03:35:58.000Z",
"updateDateTime": "2021-06-11T03:35:58.000Z"
}],
"transformationDetails": [{
"fromItem": "OMNITESTITEM",
"toItem": "100000323",
"createDateTime": "2021-06-11T03:13:17.000Z",
"updateDateTime": "2021-06-11T03:13:17.000Z"
}],
"packingDetails": [{
"item": "101800040",
"packingSetNo": 1,
"recordType": "F",
"quantity": 10,
"createDateTime": "2021-06-11T03:10:13.000Z",
"updateDateTime": "2021-06-11T03:10:13.000Z"
}, {
"item": "101800040",
"packingSetNo": 1,
"recordType": "R",
"quantity": 10,
"createDateTime": "2021-06-11T03:10:13.000Z",
"updateDateTime": "2021-06-11T03:10:13.000Z"
}]
},
],
"hasMore": false,
"limit": 10000,
"count": 1,
"links": [
{
"href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-dev1-mfcs19-1/MerchIntegrations/services/inventory/woin?limit=10000&since=1970-01-01T00:00:00.001Z&before=2022-03-26T02:28:02.971902+00:00",
"rel": "self"
}
]
}
Table Impact
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
MERCHAPI_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_CONSUMER_CONFIG |
Yes |
No |
No |
No |
MERCHAPI_ASYNC_REQUEST |
Yes |
No |
No |
No |
MERCH_BATCH_PARAM |
Yes |
No |
No |
No |
ICL_RMS_WOOUT |
Yes |
No |
Yes |
Yes |
MERCHAPI_EXT_WOOUT |
Yes |
Yes |
Yes |
Yes |
V_ MERCHAPI_EXT_WOOUT_JSON |
Yes |
No |
No |
No |