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-282 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-283 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-284 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-285 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-286 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-287 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-288 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-289 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-290 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-291 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-292 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-293 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-294 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 service publishes available inventory data to downstream consuming systems. It is intended for sellable inventory visibility and returns only rows that are currently sellable, belong to a stockholding and customer-orderable store or warehouse, and are either warehouse inventory or non-pack store inventory. The payload exposes available quantity and stock on hand for the qualifying item/location, and available quantity is calculated at read time from the cached inventory buckets, with warehouse calculations also including pack-component quantities.
This web service is used to fetch available inventory at customer orderable store or warehouse locations. The service considers only approved transaction level items which are sellable, inventoried and ranged to stockholding and customer orderable locations. To keep the data volume manageable for performance consideration, the service publishes inventory availability for item/locations which currently have non-zero inventory position, or had non-zero inventory position in the last 7 days when the current inventory position is zero.
Initial seeding is narrower than steady-state updates. Refresh seeds approved transaction-level inventoried items that changed recently or still carry non-zero inventory in tracked buckets, while delta updates are driven by ITEM_LOC_SOH quantity changes. Changes to store or warehouse customer-orderable or stockholding flags are handled through targeted rebuild requests so the published population stays aligned with location eligibility.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: ITEM_LOC_SOH
Additional business tables: ITEM_MASTER, STORE, WH
JSON cache table: MERCHAPI_ITEM_LOC_SOH
JSON generation view: not applicable; cache rows are populated directly by package logic
The runtime response is read directly from that cache table, and the cache is populated from ITEM_LOC_SOH, ITEM_MASTER, STORE, and WH through the available-inventory cache processing flow.
Functionally, it serves sellable inventory visibility for customer-orderable locations and returns only rows that are currently sellable, belong to a stockholding and customer-orderable store or warehouse, and are either warehouse inventory or non-pack store inventory.
The payload exposes available quantity and stock on hand for the qualifying item/location, and available quantity is calculated at read time from the cached inventory buckets, with warehouse calculations also including pack-component quantities.
Initial Seeding and post enablement rebuild/repair
Refresh seeds approved transaction-level inventoried items where ITEM_MASTER.STATUS = 'A', ITEM_MASTER.ITEM_LEVEL = ITEM_MASTER.TRAN_LEVEL, and ITEM_MASTER.INVENTORY_IND = 'Y'.
Refresh keeps rows changed in the last 7 days or rows that still have a non-zero quantity in one of the tracked inventory buckets, and DATA_REFRESH/REBUILD marks cache rows deleted when the item/location no longer exists in ITEM_LOC_SOH.
ICL (Integration Change Log) table: ICL_RMS_ITEM_LOC_SOH (ICL consumer name = MERCHAPI)
Triggers on ITEM_LOC_SOH stage ICL_RMS_ITEM_LOC_SOH updates for store and warehouse ITEM_LOC_SOH rows whenever tracked inventory buckets change.
Batch-driven bulk rebuild handling for specific events
Store stockholding indicator change, store customer-orderable indicator change, warehouse stockholding indicator change, and warehouse customer-orderable indicator change do not rely only on ITEM_LOC_SOH delta staging.
Those source events insert a record into MERCHAPI_ASYNC_REQUEST for inventory/available with REQUEST_TYPE = DATA_REFRESH, REFRESH_TYPE = REBUILD, and REQUEST_PARAMETERS set to the affected store or warehouse so the rebuild stays scoped to that location.
These requests are processed through MERCHAPI_DATA_REBUILD_ADHOC_PROCESS -> MERCHAPI_DATA_REBUILD_ADHOC_JOB and realign the MERCHAPI_ITEM_LOC_SOH cache when location eligibility changes can add or remove a large inventory population at once.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_ITEM_LOC_SOH
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_ITEM_LOC_SOH_PROCESS -> MERCHAPI_ITEM_LOC_SOH_ADHOC_JOB
Webhook configuration api name: inventory/available
Special handling
Additional GET query parameters: locationType, location.
Request windows greater than 30 days use the full-download access path, while shorter windows use the delta access path.
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately. Because this service is driven primarily by ITEM_LOC_SOH row volume and inventory-bucket churn rather than by complex source SQL, the available configuration should be validated against the customer production inventory profile, with the key performance-related configuration for this service covering the following:
Multi-threading and commit control
This service supports multi-threaded execution for both initial seeding and delta processing. Thread count is controlled through API_NO_OF_THREADS, and commit sizing is controlled through API_COMMIT_MAX_COUNTER.
Because the cache is populated directly from ITEM_LOC_SOH together with a small set of eligibility tables, runtime is usually driven more by row volume and inventory-change frequency than by join complexity. Common starting points for large-volume runs are 8, 16, or 32 threads. Values of 48 or 64 threads should be considered only after testing and with awareness of competing workload in the environment.
API_COMMIT_MAX_COUNTER should be sized together with the thread setting. Typical values range from about 1,000 rows and can extend to 10,000 for simpler restartable workloads. Lower commit values may perform better when sustained inventory-change spikes need to drain in smaller units of work.
Dropping indexes and constraints during seeding
This option applies only to initial seeding, including truncate-and-load execution. When thread and commit settings are high, concurrent inserts can increase index maintenance overhead and slow the load.
To reduce that overhead, DROP_INDEX_ON_REFRESH can be enabled so indexes and constraints are dropped before seeding and rebuilt after the load completes. GATHER_STATS_ON_REFRESH should normally remain enabled unless testing shows a specific reason to change it.
REST fetch considerations
Because the payload is relatively narrow, larger page limits are often practical after testing. REST page size should still be selected so the average response remains below about 10 MB per call, using common page-limit values such as 1,000, 5,000, or 10,000 rows.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 100,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using API specific HISTOGRAM_ROW_COUNT configuration.
Handling Bulk Publish on Store/Warehouse attribute change
This API also uses batch-driven REBUILD handling when store or warehouse stockholding or customer-orderable attributes change.
Those source changes insert MERCHAPI_ASYNC_REQUEST REBUILD requests for inventory/available with the affected location in REQUEST_PARAMETERS. A single store or warehouse eligibility change can therefore republish the full qualifying inventory population for that location rather than only the base inventory rows that changed.
A bulk location stockholding or customer-orderable change can result in a very large number of inventory records being published to downstream systems and should be planned with the downstream performance implication of that message volume in mind.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
locationType |
No |
String |
Allowed value for locationType is 'S' for Store or 'W' for Warehouse. If not defined, fetches details for all locations. If defined, fetches for the specified location type. |
|
location |
No |
String (10) |
Should be a valid store or a virtual warehouse if inventory position for a particular location has to be fetched. locationType is mandatory if this is populated |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-295 PageResultsItemsMerchapiItemLocSoh - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-296 MerchapiItemLocSoh - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
This field contains the action for available inventory. |
|
locationType |
No |
String (1) |
This field contains the type of location in the location field. This will be either S for store or W for warehouse. |
|
location |
No |
Number(10,0) |
This field contains the numeric identifier of the location in which the item is to be found. |
|
item |
No |
String (25) |
This field contains the unique alphanumeric value that identifies the item. This will be an approved sellable transaction-level item. For warehouse locations, pack items are also included. |
|
availableQuantity |
No |
Number(12,4) |
This field represents the available inventory of an item in a particular location. This is calculated as stock on hand minus the sum of non-sellable, transfer reserved, customer order reserved, RTV, and in-progress sales quantity. For warehouse locations, the inventory of an item as a component of a pack is also included in the available inventory calculation. |
|
stockOnHand |
No |
Number(12,4) |
This field contains the current stock on hand for the item. |
|
standardUom |
No |
String (4) |
This field contains the unit of measure in which stock of the item is tracked at a corporate level. |
|
physicalWarehouse |
No |
Number(10,0) |
This field contains the physical warehouse for a warehouse location. |
|
channelId |
No |
Number(4,0) |
This field contains the channel ID for the store, or the channel of the virtual warehouse when the location type is warehouse. |
|
cacheTimestamp |
No |
dateTime |
This field holds the database timestamp when the message was prepared or 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 until the next inventory change. The consumer can use this field for sequencing records for an item/location. UTC timestamp. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first created for web service publication (UTC). |
Table 5-297 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"locationType": null,
"location": 6000,
"item": "100100076",
"availableQuantity": 3,
"stockOnHand": 12,
"standardUom": "EA",
"physicalWarehouse": 11,
"channelId": 1,
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
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",
"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>:<portnumber>/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>:<portnumber>/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
| 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.
Input Payload Details
Table 5-298 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-299 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-300 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). |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during inventory adjustment. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory adjustment transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
| comments | No | String (2000) | Contains any comments about the inventory adjustment. |
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",
"inventoryIdentifierType": "L",
"inventoryId": "5346",
"comments": "Inventory Adjustment for the item 110766775 at location 1441." }
]
}
]
} 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.
Input Payload Details
Table 5-301 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-302 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-303 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-304 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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during Item Transformation message. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on item transformation messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-305 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-306 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",
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
],
"transformationOutput": [
{
"item": "101050103",
"disposition": "ATS",
"quantity": 2,
"quantityUom": "EA",
"weightType": "WPU",
"weight": 2.5,
"weightUom": "KG",
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
]
}
]
} 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-307 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-308 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/rtvMerchIntegrations/services/inventory/rtv/{rtvOrderNo}Business Overview
This service publishes return-to-vendor data to downstream consuming systems. It publishes the RTV header together with RTV detail lines, warehouse and supplier enrichment, and header custom flex attributes. Functionally, the view does not apply a direct RTV status filter, but it only publishes RTVs that currently have at least one detail row. The payload also derives the published location fields from the header so location and locationType resolve to either the store or warehouse side of the RTV.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: RTV_HEAD, RTV_DETAIL
Additional business tables: WH, SUPS, RTV_HEAD_CFA_EXT
JSON cache table: MERCHAPI_EXT_RTV
JSON generation view: V_MERCHAPI_EXT_RTV_JSON
Builds the RTV header from RTV_HEAD, uses aggregated line data from RTV_DETAIL, enriches the payload with warehouse information from WH and supplier information from SUPS, and adds header custom flex attributes from MERCHAPI_EXT_RTV_HEAD_CFA.
The view does not apply a direct RTV status filter, but it only publishes RTVs that currently have at least one detail row.
The payload also derives several location fields from the header: location is either RTV_HEAD.WH or RTV_HEAD.STORE, locationType is S or W based on the same warehouse/store split, and physicalLocation resolves to WH.PHYSICAL_WH or the store.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_EXT_RTV_JSON and apply RTV_HEAD.STATUS_IND <> 5.
Mark cache rows deleted when the RTV no longer exists in V_MERCHAPI_EXT_RTV_JSON.
ICL (Integration Change Log) table: ICL_RMS_RTV (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on RTV_HEAD, RTV_DETAIL, and RTV_HEAD_CFA_EXT.
Queue detail changes only when the related header status = 10.
Queue CFA changes only when RTV status not in (5,12,15).
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_RTV
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_RTV_ADHOC_PROCESS -> MERCHAPI_EXT_RTV_ADHOC_JOB
Webhook configuration api name: inventory/rtv
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately. Because this service is built primarily from RTV header and detail data with a smaller supporting-table footprint, runtime is usually driven more by transaction volume and detail density than by source SQL complexity, with the key performance-related configuration for this service covering the following:
Multi-threading and commit control
This service supports multi-threaded execution for both initial seeding and delta processing. Thread count is controlled through API_NO_OF_THREADS, commit sizing through API_COMMIT_MAX_COUNTER, and long-running initial seeding can also be segmented through API_EXEC_SECONDS.
Common starting points for higher-volume runs are 8 or 16 threads, while higher settings such as 32 should be considered only after testing. This service is delivered seeded at 1 thread and should be increased gradually after validating throughput and restart behavior.
API_COMMIT_MAX_COUNTER should be sized together with the thread setting. Typical values range from about 1,000 rows and can extend to 10,000 for simpler restartable workloads. Lower commit values may perform better when RTV detail changes arrive in short-term spikes.
API_EXEC_SECONDS is mainly relevant for initial seeding. A value of about 30 minutes helps the batch pause and resume cleanly so tuning changes can be applied between runs if needed.
Dropping indexes and constraints during seeding
This option applies only to initial seeding, including truncate-and-load execution. When thread and commit settings are high, concurrent inserts can increase index maintenance overhead and slow the load.
To reduce that overhead, DROP_INDEX_ON_REFRESH can be enabled so indexes and constraints are dropped before seeding and rebuilt after the load completes. GATHER_STATS_ON_REFRESH should normally remain enabled unless testing shows a specific reason to change it.
REST fetch considerations
REST page size should be selected based on average payload size so the average response remains below about 10 MB per call. Common page-limit values are 1,000, 5,000, or 10,000 rows.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 10,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using the shared HISTOGRAM_ROW_COUNT configuration.
ReST URL
MerchIntegrations/services/inventory/rtv
MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Input Parameters for MerchIntegrations/services/inventory/rtv
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Table 5-309 Input Parameter for "MerchIntegrations/services/inventory/rtv/{rtvOrderNo}"
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
rtvOrderNo |
Yes |
String |
RTV Order Number |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
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. |
| include | No | String | Fields to include - comma separated (Example items.name,items.address.city) |
| exclude | No | String | Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output - RTV Head
Table 5-310 PageResultsItemsMerchApiRTV - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-311 MerchApiRTV - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for RTV details. |
|
rtvOrderNo |
No |
Number(10,0) |
This field contains the number that uniquely identifies the return to vendor within the system. |
|
supplier |
No |
Number(10,0) |
This field contains the unique identifier for the supplier or supplier site to which the merchandise is being returned. |
|
supplierName |
No |
String (240) |
This field contains the supplier's trading name. |
|
status |
No |
Number(2,0) |
This field contains the current status of the return. Valid values include 10 - Approved, 12 - In Progress, 15 - Shipped, and 20 - Cancelled. |
|
location |
No |
Number(10,0) |
This field contains the unique identifier for the location where the items are being returned from. |
|
locationType |
No |
String (1) |
This field contains the type of location from which the items are being returned. |
|
physicalLocation |
No |
Number(10,0) |
This field contains the store number or the physical warehouse from which the items are being returned. |
|
totalOrderAmount |
No |
Number(20,4) |
This field contains the total amount of the return. This field is stored in the supplier's currency. |
|
shipToAddress1 |
No |
String (240) |
This field contains the first line of the supplier's address for returns. |
|
shipToAddress2 |
No |
String (240) |
This field contains the second line of the supplier's address for returns. |
|
shipToAddress3 |
No |
String (240) |
This field contains the third line of the supplier's address for returns. |
|
shipToCity |
No |
String (120) |
This field contains the city name of the supplier's address for returns. |
|
state |
No |
String (3) |
This field contains the state of the supplier's address for returns. |
|
shipToCountry |
No |
String (3) |
This field contains the country ID of the supplier's address for returns. |
|
shipToPostalCode |
No |
String (30) |
This field contains the zip code of the supplier's address for returns. |
|
returnAuthorizationNo |
No |
String (12) |
This field contains the number that the supplier provides when the decision is made that an order may be returned. |
|
returnCourier |
No |
String (250) |
This field contains the courier name if the supplier requires that returns be sent by a designated carrier. |
|
freightCharge |
No |
Number(20,4) |
This field contains the freight cost associated with the vendor return, if applicable, and is stored in the supplier's currency. |
|
creationDate |
No |
date |
This field contains the date on which the RTV order was created. |
|
completedDate |
No |
date |
This field contains the date the RTV order was completed. |
|
restockingPercentage |
No |
Number(12,4) |
This field contains the restocking fee percentage applicable to the order. This is the fee as a percentage of the total return value charged by the supplier for recovering the expenses that may have to be incurred while restocking them at the supplier's location. |
|
restockingCost |
No |
Number(20,4) |
This field contains the restocking fee value. This is calculated based on the restocking percentage by multiplying it by the total return value. |
|
externalReferenceNo |
No |
String (30) |
This field contains an audit trail reference to an external system when an RTV is created by external store or warehouse systems. |
|
comments |
No |
String (2000) |
This field contains any comments associated with the return. |
|
notAfterDate |
No |
date |
This field contains the last date that an RTV can be sent to a supplier. |
|
massReturnTransferNo |
No |
Number(10,0) |
This field holds the unique identifier for the mass return transfer if the RTV is created through a mass return transfer. |
|
shipToJurisdictionCode |
No |
String (10) |
This field identifies the jurisdiction code for the country-state relationship. |
|
rtvOriginatedInd |
No |
String (6) |
This field identifies the source of the return present in the table. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
|
details |
No |
Collection of Object |
This list holds attributes for RTV detail records. |
|
customFlexAttribute |
No |
Collection of Object |
This list holds custom flex attributes for the RTV. |
|
cacheTimestamp |
No |
dateTime |
This field specifies the date and time when the RTV record was first picked for processing from the ICL table. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first created for web service publication. |
Table 5-312 Details - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
item |
No |
String (25) |
This field contains the unique identifier for the item being returned to the supplier. |
|
shipment |
No |
Number(12,0) |
This field is no longer used by RMS. |
|
invStatus |
No |
Number(2,0) |
This field contains the number representing the inventory status code. This field is only required if the reason field has a value of U for unavailable inventory. |
|
quantityRequested |
No |
Number(12,4) |
This field contains the quantity of this item requested to be returned to the supplier. |
|
unitCost |
No |
Number(20,4) |
This field contains the cost per unit for the item being returned that is expected to be recovered from the supplier. This field is stored in the supplier's currency. |
|
reason |
No |
String (6) |
This field contains the value identifying the reason for the return. Valid values for this field are defined on CODE_DETAIL where CODE_TYPE = 'RTVR'. |
|
sequenceNo |
No |
Number(4,0) |
This field contains a sequence number which makes the record unique when combined with the RTV order number. |
|
quantityCancelled |
No |
Number(12,4) |
This field contains the difference between quantity requested and quantity returned. This is updated after the RTV has been shipped. |
|
quantityReturned |
No |
Number(12,4) |
This field contains the quantity of this item that was shipped to the supplier on this RTV. |
|
restockPercentage |
No |
Number(12,4) |
This field contains the restocking fee percentage applicable to the item. This is the fee as a percentage of the total return value charged by the supplier for recovering the expenses that may have to be incurred while restocking them at the supplier's location. |
|
originalUnitCost |
No |
Number(20,4) |
This field contains the current weighted average cost for the item at the return location. |
|
updatedByRmsInd |
No |
String (1) |
This field indicates if the last update to RTV_DETAIL was done by RMS or an external application. If by RMS, the indicator will be set to Y and a message will be published to external systems. If by an external application, the indicator will be set to N and a message will not be published to external systems. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
Table 5-313 CustomFlexAttribute - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
name |
No |
String (30) |
This field holds the custom flex attribute name. |
|
value |
No |
String (250) |
This field holds the numeric or character value of the custom flex attribute. |
|
valueDate |
No |
date |
This field holds the date value of the custom flex attribute. |
|
createDateTime |
No |
dateTime |
This field holds the date and time when the custom flex attribute was created (UTC). |
|
updateDateTime |
No |
dateTime |
This field holds the date and time when the custom flex attribute was last updated (UTC). |
Table 5-314 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"rtvOrderNo": 1,
"supplier": 1,
"supplierName": null,
"status": 1,
"location": 1,
"locationType": null,
"physicalLocation": 1,
"totalOrderAmount": 1.0,
"shipToAddress1": null,
"shipToAddress2": null,
"shipToAddress3": null,
"shipToCity": "Minneapolis",
"state": "MN",
"shipToCountry": "US",
"shipToPostalCode": null,
"returnAuthorizationNo": null,
"returnCourier": null,
"freightCharge": 1.0,
"creationDate": "2001-12-31",
"completedDate": "2001-12-31",
"restockingPercentage": 1.0,
"restockingCost": 1.0,
"externalReferenceNo": null,
"comments": "commentDesc",
"notAfterDate": "2001-12-31",
"massReturnTransferNo": 1,
"shipToJurisdictionCode": null,
"rtvOriginatedInd": null,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"details": [
{
"item": null,
"shipment": 1,
"invStatus": 1,
"quantityRequested": 3,
"unitCost": 9.65,
"reason": null,
"sequenceNo": 1,
"quantityCancelled": 1.0,
"quantityReturned": 1.0,
"restockPercentage": 1.0,
"originalUnitCost": 1.0,
"updatedByRmsInd": null,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"customFlexAttribute": [
{
"name": "attribute1",
"value": "value1",
"valueDate": "2001-12-31",
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
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
| 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.
Input Payload Details
Table 5-315 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-316 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 |
No |
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-317 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 (for example, pounds, kilograms). |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during Return to Vendor Integration. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-318 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",
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
],
"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 publishes receiver unit adjustment data to downstream consuming systems. It publishes incremental receiver-unit-adjustment transactions together with the ASN reference, receiving location, adjusted unit quantity, and from/to disposition movement. Functionally, the upstream receiver-unit-adjustment logic writes to RUA_RIB_INTERFACE when the calling program is REIM or RECUTADJ, and only when the adjusted quantity is non-zero.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: RUA_RIB_INTERFACE
Additional business tables: SHIPMENT
JSON cache table: MERCHAPI_EXT_RCV_UNIT_ADJ
JSON generation view: not applicable; cache rows are populated directly from ICL_RMS_RCV_UNIT_ADJ and SHIPMENT by the delta-processing logic
Functionally, the upstream receiver-unit-adjustment logic only writes to RUA_RIB_INTERFACE when the calling program is REIM or RECUTADJ, and only when the adjusted quantity is non-zero.
The published asnNo is derived as the first available value of SHIPMENT.EXT_REF_NO_IN or SHIPMENT.ASN), so SIM's external receipt number takes precedence over the shipment ASN when it exists.
This API is delta-only by design.
Initial Seeding and post enablement rebuild/repair
This API has no initial load or rebuild; the refresh step only performs API-disable handling for the cache table.
ICL (Integration Change Log) table: ICL_RMS_RCV_UNIT_ADJ (ICL consumer name = MERCHAPI)
The delta async process reads unprocessed ICL_RMS_RCV_UNIT_ADJ rows for consumer MERCHAPI, inserts one cache row per event, and deletes the processed ICL rows after publication.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_RUA
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_RUA_ADHOC_PROCESS -> MERCHAPI_EXT_RUA_ADHOC_JOB
Webhook configuration api name: inventory/receiverunitadj
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
offsetkey |
No |
String |
Offset key (Sequence Number) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-319 PageResultsItemsMerchApiRua - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-320 MerchApiRua - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for receiver unit adjustment details. |
|
location |
No |
Number(10,0) |
This field contains the unique identifier for the location for which the receiver unit adjustment is performed. The location will be a store if the location type is S, and a warehouse if the location type is W. |
|
locationType |
No |
String (1) |
This field contains the type of the location for which the receiver unit adjustment is performed. Valid values are S for store and W for warehouse. |
|
orderNo |
No |
Number(12,0) |
This field contains the unique identifier for the order against which a receiver unit adjustment was performed. |
|
asnNo |
No |
String (30) |
This field contains the advance shipment notification number associated with the shipment for which a receiver unit adjustment was performed. |
|
item |
No |
String (25) |
This field contains the unique identifier for the item for which the receiver unit adjustment is being made. |
|
containerId |
No |
String (30) |
This field contains the unique identifier for the carton that contained the item against which the receiver unit adjustment was performed. |
|
unitQuantity |
No |
Number(12,4) |
This field contains the quantity of the receiver unit adjustment. |
|
fromDisposition |
No |
String (4) |
This value, along with the to disposition value, is used to determine if the inventory is available or unavailable. |
|
toDisposition |
No |
String (4) |
This field contains the value used to determine if the inventory is available or unavailable based on the value of the INV_STATUS column in the INV_STATUS_CODES table. |
|
cacheTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first picked for processing from ICL table (UTC). |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first created for web service publication (UTC). |
Table 5-321 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"location": 1111,
"locationType": "S",
"orderNo": 545005,
"asnNo": "ASN_11223344_2",
"item": "106400029",
"containerId": "CTN_1_ASN_11223344_2",
"unitQuantity": 3,
"fromDisposition": "ATS",
"toDisposition": "ATS",
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Table Impact
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
This service allows users 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.
Input Payload Details
Table 5-322 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-323 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-324 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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during a DSD receipt message. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-325 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,
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
],
"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.
Input Payload Details
Table 5-326 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-327 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-328 ShipmentDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
distroNo |
Yes |
Number (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-329 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-330 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 (for example, pounds, kilograms) shipped. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during shipment of transfer/allocations. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on shipment transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
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",
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
]
}
]
}
]
}
]
} 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.
Input Payload Details
Table 5-331 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-332 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.Input Payload Details
Table 5-333 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-334 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-335 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-336 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. |
| trackingNbr | No | String (120) | This is a unique tracking number that is used to track containers through a carriers system. Not used in Merchandising. |
Table 5-337 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. |
| uins | No | Collection of Object | Collection of Universal Identification Numbers. Not used in Merchandising. |
Table 5-338 Uins - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
| uin | Yes | String (128) | Universal Identification Number |
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,
"uins": [
{
"uin": "103-64323123-12"
}
]
}
],
"trackingNbr": "1234567A89"
}
],
"items": [
{
"item": "103900095",
"unitQuantity": 3,
"vpn": "vpn-00152100-1-103900095",
"referenceItem": null,
"uins": [
{
"uin": "103-64323123-12"
}
]
}
]
}
]
}
]
}
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.
Input Payload Details
Table 5-339 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-340 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-341 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 |
Number (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-342 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 |
Number (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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during receipt consume at item level. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-343 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-344 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-345 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,
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
],
"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.
Input Payload Details
Table 5-346 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-347 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-348 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-349 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 |
Number (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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during receipt consume at item level. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-350 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-351 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": 100000055001,
"distroDocumentType": null,
"toDisposition": "ATS",
"fromDisposition": "ATS",
"unitCost": 10,
"shippedQuantity": 5,
"weight": 5,
"weightUom": "KG",
"grossCost": 10.5,
"itemLineNo": null,
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
]
}
],
"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.
Input Payload Details
Table 5-352 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-353 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-354 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 |
Number (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-355 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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during receipt consume at item level. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
Table 5-356 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",
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
],
"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"
}
]
}
Get Stock Order Shipments Created in Merchandising
Business Overview
This service publishes stock-order shipment data to downstream consuming systems. It publishes shipment transactions together with shipment lines, physical from and to fulfillment locations, customer-order and fulfillment-order references, and the published base cost. Functionally, the payload only includes shipment lines whose SHIPSKU.DISTRO_TYPE is A or T, derives fromLocation and toLocation as physical fulfillment locations, uses ORDCUST for customer-order and fulfillment-order references, and uses V_ITEM_SUPP_COUNTRY_LOC.BASE_COST for baseCost.
This service can be used to publish details of stock order (transfer or allocation) shipments that were created within the Merchandising solution, including two-legged transfers involving Finisher locations. If one or more filters of the available filters, (From Location, From Location Type, To Location, To Location Type, and/or Bill of Lading (BOL) Number), are present as input parameters, the stock order shipments published will be those matching the provided filter values.
In some retail implementations, the management of stores or warehouses are done by third party systems that are not designed to efficiently handle shipments related to vital processes such as transfers and allocations on a regular basis. For these store or warehouse locations, subscribing to this service will allow these locations to be updated with the latest inventory movement information.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: SHIPMENT, SHIPSKU
Additional business tables: ORDCUST, V_ITEM_SUPP_COUNTRY_LOC, STORE, WH, PARTNER, TSFHEAD, ALLOC_HEADER
JSON cache table: MERCHAPI_EXT_SHIPMENT
JSON generation view: not applicable; cache rows are populated directly by package logic
The JSON payload is built from SHIPMENT, SHIPSKU, ORDCUST, V_ITEM_SUPP_COUNTRY_LOC, and derived location mapping from STORE, WH, PARTNER, TSFHEAD, and ALLOC_HEADER.
The view only publishes shipment lines whose SHIPSKU.DISTRO_TYPE in ('A','T'), derives fromLocation and toLocation as physical fulfillment locations, uses ORDCUST for customer-order and fulfillment-order references, and uses V_ITEM_SUPP_COUNTRY_LOC.BASE_COST for the published baseCost.
This API is effectively delta-only.
Initial Seeding and post enablement rebuild/repair
This API has no initial load or rebuild; the refresh step only performs API-disable handling for the cache table.
ICL (Integration Change Log) table: ICL_RMS_SHIPMENT (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on SHIPMENT and SHIPSKU.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_SHIPMENT
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_SHIPMENT_ADHOC_PROCESS -> MERCHAPI_EXT_SHIPMENT_ADHOC_JOB
Webhook configuration api name: inventory/shipmentsAndReceipts/stockOrder/shipment
Special handling
Additional GET query parameters: fromLoc, toLoc, fromLocType, toLocType, bolNo.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
fromLoc |
No |
Number |
From Location |
|
toLoc |
No |
Number |
To Location |
|
fromLocType |
No |
String |
From Location Type |
|
toLocType |
No |
String |
To Location Type |
|
bolNo |
No |
String |
Bill of Lading (BOL) |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Response Code: 200 (Success)
Table 5-357 PageResultsItemsMerchApiShipment - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-358 MerchApiShipment - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Shipment details. |
|
shipmentNo |
No |
Number(12,0) |
This field specifies a number that uniquely identifies the shipment within the system. |
|
toLocation |
No |
Number(10,0) |
This field specifies the destination location of the shipment. |
|
toLocationType |
No |
String (1) |
This field specifies the location type of the destination location of the shipment. |
|
fromLocation |
No |
Number(10,0) |
This field specifies the source location of the shipment. |
|
fromLocationType |
No |
String (1) |
This field specifies the location type of the source location of the shipment. |
|
bolNo |
No |
String (30) |
This field specifies the Bill of Lading linked with the shipment. |
|
shipDate |
No |
date |
This field specifies the date on which the stock order was shipped. |
|
cartonQuantity |
No |
Number(6,0) |
This field specifies the number of cartons associated with the shipment. |
|
carrierCode |
No |
String (250) |
This field specifies the carrier associated with the shipment. |
|
comments |
No |
String (2000) |
This field specifies any comments associated with the shipment. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the date when the record was last updated. |
|
details |
No |
Collection of Object |
This List holds attributes for details of shipment record. |
|
cacheTimestamp |
No |
dateTime |
This field specifies date and time when the shipment record was last maintained. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies date and time when the record was first created for web service publication. |
Table 5-359 ShipmentDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
distroNo |
No |
Number(12,0) |
This field specifies the transfer/allocation number associated with the shipment. |
|
distroDocumentType |
No |
String (1) |
This field specifies the type of document associated with the shipment. |
|
customerOrderNo |
No |
String (48) |
This field specifies the linked customer order number generated by Order Management System, if applicable. This field will be NULL until Merchandising UI allows shipment of customer order transfers. |
|
fulfillmentOrderNo |
No |
String (48) |
This field specifies the fulfillment order number linked with the customer order number. This field will be NULL until Merchandising UI allows shipment of customer order transfers. |
|
cartons |
No |
Collection of Object |
This List holds attributes for details of cartons linked to the shipment. |
Table 5-360 ShipmentDetailsCarton - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
carton |
No |
String (30) |
This field specifies carton number associated with the shipment. |
|
items |
No |
Collection of Object |
This List holds attributes for items present in the specific carton. |
Table 5-361 ShipmentDetailsCartonItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
unitQuantity |
No |
Number(12,4) |
This field specifies the number of items expected to be received for the item/shipment combination. |
|
unitCost |
No |
Number(20,4) |
This field specifies the unit cost associated with the item excluding any landed cost components. |
|
baseCost |
No |
Number(20,4) |
This field specifies the base cost (BC) from RFMCS. |
|
weight |
No |
Number(12,4) |
This field specifies the actual weight of the item. |
|
weightUom |
No |
String (4) |
This field specifies the unit of measure associated with the weight. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the date when the record was last updated. |
Table 5-362 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"shipmentNo": 1,
"toLocation": 6000,
"toLocationType": "S",
"fromLocation": 10001,
"fromLocationType": null,
"bolNo": null,
"shipDate": "2001-12-31",
"cartonQuantity": 5,
"carrierCode": "FDX",
"comments": null,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"details": [
{
"distroNo": 1,
"distroDocumentType": "T",
"customerOrderNo": null,
"fulfillmentOrderNo": null,
"cartons": [
{
"carton": null,
"items": [
{
"item": null,
"unitQuantity": 1.0,
"unitCost": 1.0,
"baseCost": 1.0,
"weight": 1.0,
"weightUom": null,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
]
}
]
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"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_SHIPMENT |
Yes |
Yes |
Yes |
Yes |
|
MERCHAPI_EXT_SHIPMENT |
Yes |
Yes |
No |
Yes |
|
SHIPMENT |
Yes |
No |
No |
No |
|
SHIPSKU |
Yes |
No |
No |
No |
|
STORE |
Yes |
No |
No |
No |
|
WH |
Yes |
No |
No |
No |
|
PARTNER |
Yes |
No |
No |
No |
|
V_ITEM_SUPP_COUNTRY_LOC |
Yes |
No |
No |
No |
|
TSFHEAD |
Yes |
No |
No |
No |
|
ALLOC_HEADER |
Yes |
No |
No |
No |
|
ORDCUST |
Yes |
No |
No |
No |
|
V_MERCHAPI_EXT_SHIPMENT_JSON |
Yes |
No |
No |
No |
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.
Input Payload Details
Table 5-363 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-364 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-365 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. |
|
inventoryIdentifierType |
No |
String (6) |
This inventory identifier type field is passed during DSD receipt message. Valid values are found under the Inventory Identifier Types (IIDT) code type; for example, Lot (L), Expiry Date (E), Import Document (D). |
|
inventoryId |
No |
String (120) |
Holds the inventory identifier provided on inventory transaction messages. It is a free-form text ID field that will be interfaced and displayed as a text field. |
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,
"inventoryIdentifierType": "L",
"inventoryId": "5346"
}
]
}
]
} 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-366 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-367 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-368 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-369 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-370 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-371 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-372 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-373 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-374 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-375 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/allocationMerchIntegrations/services/inventory/allocation/{allocNo}Business Overview
This service publishes allocation data to downstream consuming systems. It covers allocations that still exist in Merchandising and have at least one publishable destination row, where the destination is either a store or a warehouse on a different physical warehouse from the source; same-physical-warehouse warehouse destinations are excluded. The payload provides the allocation header together with qualifying destination details, related order context, pick window dates, ticket information, and supported pack-component detail.
Merchandising is responsible for communicating allocation information with external systems such as a store inventory system (SIOCS, for example) and a warehouse management system, like Oracle WMS Cloud.
There are several ways in which allocation information can be created in Merchandising:
Via integration with the Allocation Cloud Service
Via Merchandising replenishment, where cross dock orders generate allocations
Via the Allocation Subscription API, where a third-party system can create allocations and send to Merchandising for execution.
Allocations can be created from a virtual warehouse to any type of stockholding location in Merchandising, including other virtual warehouses, and to both company and franchise stores. Allocations include a store type and stockholding indicator at the detail level when allocating to stores, to allow the store and warehouse inventory management system to filter out the data irrelevant to their respective systems. When allocating to a franchise store, the linked franchise orders are not published; only the allocation itself is published. When allocating to another warehouse, the allocation quantities are summed up to the physical warehouse level and the physical warehouse is what is communicated in the integration.
Allocations in Approved, Closed or Deleted status can be retrieved by this service.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: ALLOC_HEADER, ALLOC_DETAIL
Additional business tables: WH, ORDHEAD, ITEM_MASTER, ITEM_LOC, STORE, ITEM_TICKET, PACKITEM_BREAKOUT, V_CODE_DETAIL_TL
JSON cache table: MERCHAPI_EXT_ALLOC
JSON generation view: V_MERCHAPI_EXT_ALLOC_JSON
The current JSON view builds the header from ALLOC_HEADER, derives source-warehouse enrichment from WH, uses ORDHEAD and V_CODE_DETAIL_TL to calculate the pick-not-before and pick-not-after dates, derives ticket type from ITEM_TICKET, and builds detail rows from ALLOC_DETAIL, ITEM_LOC, STORE, WH, and PACKITEM_BREAKOUT.
Functionally, it publishes allocations that still exist in Merchandising and have at least one qualifying destination detail row, where the destination is either a store or a warehouse on a different physical warehouse from the source; same-physical-warehouse warehouse destinations are excluded.
The view itself does not apply a direct allocation-status filter, so eligibility is determined by those destination rules, while delta staging begins when an allocation first becomes approved and then continues for qualifying header and detail changes.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_EXT_ALLOC_JSON and therefore publish only allocations that still have at least one qualifying destination detail row, where the destination is either a store or a warehouse on a different physical warehouse from the source.
Mark cache rows deleted when the allocation no longer exists in ALLOC_HEADER.
ICL (Integration Change Log) table: ICL_RMS_ALLOC (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on ALLOC_HEADER and ALLOC_DETAIL.
ICL detail publication only when the related header status is A, the destination is publishable, and detail inserts satisfy QTY_TRANSFERRED <= 0.
ICL insert when the allocation is inserted in status A or changes to status A; ICL update when header publication logic fires for status A or C or a release-date change; ICL delete on header delete.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_ALLOC
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_ALLOCATION_ADHOC_PROCESS -> MERCHAPI_EXT_ALLOCATION_ADHOC_JOB
Webhook configuration api name: inventory/allocation
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately. Because this service builds allocation messages from multiple base and supporting tables, including destination-eligibility logic and pack detail, the available configuration should be validated against the customer production allocation profile, with the key performance-related configuration for this service covering the following:
Multi-threading and commit control
This service supports multi-threaded execution for both initial seeding and delta processing. Thread count is controlled through API_NO_OF_THREADS, commit sizing through API_COMMIT_MAX_COUNTER, and long-running initial seeding can also be segmented through API_EXEC_SECONDS.
Thread and commit settings should be chosen together based on expected row volume, average message size, and the complex SQL query required to build the message from multiple base and supporting tables. Common starting points for large-volume runs are 8, 16, or 32 threads. Values of 48 or 64 threads should be considered only after testing and with awareness of competing workload in the environment.
API_COMMIT_MAX_COUNTER should be sized together with the thread setting. Typical values range from about 1,000 rows and can extend to 10,000. If the number of details line for allocation will be very high, start with smaller commit counter and then go up to see best throughput.
API_EXEC_SECONDS is mainly relevant for initial seeding. A value of about 30 minutes helps the batch pause and resume cleanly so tuning changes can be applied between runs if needed.
Dropping indexes and constraints during seeding
This option applies only to initial seeding, including truncate-and-load execution. When thread and commit settings are high, concurrent inserts can increase index maintenance overhead and slow the load.
To reduce that overhead, DROP_INDEX_ON_REFRESH can be enabled so indexes and constraints are dropped before seeding and rebuilt after the load completes. GATHER_STATS_ON_REFRESH should normally remain enabled unless testing shows a specific reason to change it.
REST fetch considerations
REST page size should be selected based on average payload size so the average response remains below about 10 MB per call. Common page-limit values are 500, 1,000, 5,000, or 10,000 rows and this should be selected based on average number of details lines in the allocation.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 10,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using the shared HISTOGRAM_ROW_COUNT configuration.
ReST URL
MerchIntegrations/services/inventory/allocation
MerchIntegrations/services/inventory/allocation/{allocNo}
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Table 5-376 Input Parameter for "MerchIntegrations/services/inventory/allocation/{allocNo}"
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
allocNo |
Yes |
Number |
|
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-377 PageResultsItemsMerchApiAllocation - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-378 MerchApiAllocation - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for allocation details. |
|
allocNo |
No |
Number(10,0) |
This field specifies the number that uniquely identifies the allocation within the system. |
|
docType |
No |
String (1) |
This field specifies that this document is of type allocation. This field is defaulted to A. |
|
physicalWarehouse |
No |
Number(10,0) |
This field specifies the number that is used to identify the physical warehouse for a virtual warehouse. |
|
warehouse |
No |
Number(10,0) |
This field specifies the number that uniquely identifies the warehouse. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
pickNotBeforeDate |
No |
date |
This field specifies the first date on which the allocation should be released from the warehouse for delivery to the store locations. |
|
pickNotAfterDate |
No |
date |
This field specifies the last date on which the allocation should be released from the warehouse for delivery to the store locations. |
|
orderType |
No |
String (9) |
This field specifies 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 |
No |
Number(12,0) |
This field specifies the order number to which the allocation applies. |
|
orderDocType |
No |
String (1) |
This field specifies the order type and is defaulted to P. |
|
priority |
No |
Number(1,0) |
This field is currently defaulted to 1. |
|
ticketTypeId |
No |
String (4) |
This field uniquely identifies the ticket type that is associated with the item. |
|
contextType |
No |
String (6) |
This field specifies the functional area code to which the allocation relates, for example, Promotions. Valid values are defined in the CNTX code type. |
|
contextValue |
No |
String (25) |
This field specifies the value relating to the context type, for example, Promotion Number. |
|
allocStatus |
No |
String (1) |
This field specifies the status of the allocation. |
|
poType |
No |
String (4) |
This field specifies the value associated with the PO_TYPE for the order. |
|
allocMethod |
No |
String (1) |
This field specifies the preferred allocation method, which is used to distribute goods when the stock received at a warehouse cannot immediately fill all requested allocations to stores. Valid values are A - Allocation quantity based, P - Prorate method, and C - Custom. |
|
releaseDate |
No |
date |
This field specifies the date on which the allocation should be released from the warehouse for delivery to the store locations. |
|
documentNo |
No |
String (30) |
This field specifies the ASN or BOL number for an ASN- or BOL-sourced allocation. This will be populated for the product source of the tier-one allocation. |
|
documentType |
No |
String (5) |
This field contains the type of allocation product source. Valid values are ASN, TSF, BOL, or ALLOC. When this field is null, the source is assumed to be a purchase order or warehouse inventory if no purchase order number is provided. |
|
sourceParentAllocId |
No |
Number(15,0) |
This field contains the parent allocation identifier from the source system that interfaced the allocation to merchandising after splitting at item level. |
|
allocDesc |
No |
String (300) |
This field specifies the description of the allocation. |
|
commentDesc |
No |
String (2000) |
This field specifies additional information concerning the allocation. |
|
originInd |
No |
String (6) |
This field identifies the origin point of the allocation. Valid values are AIP, EG, RMS, and ALC. |
|
closeDate |
No |
date |
This field specifies the date when the allocation is closed. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
|
details |
No |
Collection of Object |
This list holds attributes for allocation detail records. |
|
cacheTimestamp |
No |
dateTime |
This field specifies the date and time when the allocation record was last picked for publication processing. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first created for web service publication. |
Table 5-379 AllocationDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
physicaltoLocation |
No |
Number(10,0) |
This field specifies the physical warehouse of a virtual warehouse. The store ID is populated when the to location is a store. |
|
toLocation |
No |
Number(10,0) |
This field specifies the location to which the allocation is being sent. |
|
locationType |
No |
String (1) |
This field specifies the type of location in the location field. Valid values are Store and Warehouse. |
|
storeType |
No |
String (6) |
This field specifies whether the store is a company or franchise store and is not populated in the case of a warehouse. |
|
stockholdingInd |
No |
String (1) |
This field specifies whether the store can hold stock. In a non-multichannel environment, this field is defaulted to Y. It is not populated in the case of a warehouse. |
|
quantityAllocated |
No |
Number(12,4) |
This column contains the total number of items allocated. |
|
price |
No |
Number(20,4) |
This field specifies the unit retail price in the selling unit retail. |
|
sellingUom |
No |
String (4) |
This field specifies the selling unit of measure for an item. |
|
priority |
No |
Number(1,0) |
This field is defaulted to 1. |
|
storeOrderMultiple |
No |
String (1) |
This column contains the multiple in which the item needs to be shipped from a warehouse to the location. |
|
inStoreDate |
No |
date |
This field contains the date to be included in the publication for communication to the warehouse. |
|
rushFlag |
No |
String (1) |
This field contains the rush flag indicator to be included in the publication for communication to the warehouse. |
|
quantityTransferred |
No |
Number(12,4) |
This column contains the number of items that have already been transferred under this allocation. |
|
quantityPrescaled |
No |
Number(12,4) |
This column contains the allocation quantity (system generated or manually generated) for the item/location before order scaling processing was performed. |
|
quantityDistro |
No |
Number(12,4) |
This column contains the final quantity that the external system plans on filling. |
|
quantitySelected |
No |
Number(12,4) |
This column contains the initial quantity that the external system plans on filling. |
|
quantityCancelled |
No |
Number(12,4) |
This column contains the quantity that was left to be allocated when the line item was cancelled. |
|
quantityReceived |
No |
Number(12,4) |
This column contains the quantity of the item that has been received at the to location on the allocation. |
|
quantityReconciled |
No |
Number(12,4) |
This column contains the quantity received at another location for this allocated item. |
|
poReceivedQty |
No |
Number(12,4) |
This column tracks the quantity received against a cross-docked order. It is only used to distribute unallocated quantities that are received in a physical warehouse. |
|
nonScaleInd |
No |
String (1) |
This column determines whether the item/location allocation quantity should not be scaled during the order scaling process. |
|
franchiseOrderNo |
No |
Number(10,0) |
This field holds the franchise order number to which this allocation detail line is linked. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
|
detailsTicket |
No |
Collection of Object |
This list holds attributes for allocation detail ticket records. |
Table 5-380 AllocationDetailsTicket - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
componentItem |
No |
String (25) |
This field specifies the alphanumeric value that identifies the component item within the pack. |
|
componentPrice |
No |
Number(20,4) |
This field specifies the unit retail price in the selling unit retail of the component item within the pack. |
|
componentSellingUom |
No |
String (4) |
This field specifies the selling unit of measure for a component item within the pack. |
Table 5-381 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"allocNo": 102881222,
"docType": null,
"physicalWarehouse": 1,
"warehouse": 10001,
"item": "2147483647",
"pickNotBeforeDate": "2001-12-31",
"pickNotAfterDate": "2001-12-31",
"orderType": null,
"orderNo": 585036,
"orderDocType": null,
"priority": 1,
"ticketTypeId": "TKT1",
"contextType": "PROM",
"contextValue": "79890",
"allocStatus": "A",
"poType": null,
"allocMethod": null,
"releaseDate": "2001-12-31",
"documentNo": null,
"documentType": null,
"sourceParentAllocId": 225414,
"allocDesc": "Allocation to 1311.",
"commentDesc": null,
"originInd": "EG",
"closeDate": "2001-12-31",
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"details": [
{
"physicaltoLocation": 1,
"toLocation": 6000,
"locationType": "S",
"storeType": "C",
"stockholdingInd": "Y",
"quantityAllocated": 3,
"price": 1.0,
"sellingUom": "EA",
"priority": 1,
"storeOrderMultiple": "E",
"inStoreDate": "2001-12-31",
"rushFlag": null,
"quantityTransferred": 1.0,
"quantityPrescaled": 1.0,
"quantityDistro": 1.0,
"quantitySelected": 1.0,
"quantityCancelled": 1.0,
"quantityReceived": 1.0,
"quantityReconciled": 1.0,
"poReceivedQty": 1.0,
"nonScaleInd": null,
"franchiseOrderNo": 1,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"detailsTicket": [
{
"componentItem": null,
"componentPrice": 1.0,
"componentSellingUom": null
}
]
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Table Impact
| 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.
Input Payload Details
Table 5-382 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-383 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.
Input Payload Details
Table 5-384 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-385 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-386 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 release date for the allocation cannot be earlier than the release date of the document (ASN/BOL/ALLOC/TSF/PO) which it is based on. The requested total allocation quantity for an item cannot exceed the quantity available to allocate from the source location or the document it is based on.
The Oracle Retail Allocation Cloud Service does not use this API to interface allocations to Merchandising.
Input Payload Details
Table 5-387 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-388 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. |
|
allocStatus |
No |
String (1) |
If specified, needs to be either 'R' (Reserved) or 'A' (Approved). |
|
sourceParentAllocationId |
No |
Number (15) |
This field contains the parent allocation identifier from the source system that interfaced the allocation to merchandising after splitting at item level. The field is only for reference purpose. |
|
details |
No |
Collection of Object |
References a collection of allocation details |
Table 5-389 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. |
Table 5-390 CreateError - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
allocationNo |
No |
Number (10) |
Contains the unique identifier of the allocation. |
|
errorMessage |
No |
Array of String |
List of errors for the allocation number. |
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",
"allocStatus": "A",
"sourceParentAllocationId": 225414,
"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 "businessErrors" will be present if the payload passes schema validation but exception is caught while processing business logic. The element businessErorr will be present but deprecated.
Table 5-391 CreateError - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
allocationNo |
No |
Number (10) |
Contains the unique identifier of the allocation. |
|
errorMessage |
No |
Array of String |
List of errors for the allocation number. |
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"
],
"businessErrors": [
{
"allocationNo": 102881222,
"errorMessage": [
"String"
]
}
]
}
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.
Input Payload Details
Table 5-392 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-393 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-394 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.
Input Payload Details
Table 5-395 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-396 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-397 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, the release date, and status can be modified at the header level.
Input Payload Details
Table 5-398 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-399 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. |
|
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'. |
|
allocStatus |
No |
String (1) |
If specified, needs to be either 'R' (Reserved) or 'A' (Approved). |
Sample Input Message
{
"items": [
{
"allocationNo": 102881222,
"allocationDescription": "Allocation to 1311.",
"releaseDate": "2001-12-31",
"contextType": "REPAIR",
"contextValue": "71256",
"allocStatus": "A"
}
]
}
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-400 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-401 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.
Input Payload Details
Table 5-402 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-403 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 |
Number (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-404 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. |
|
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,
"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 are not as per the schema definition of 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/transferMerchIntegrations/services/inventory/transfer/{tsfNo}Business Overview
This service publishes transfer transactions to downstream consuming systems. It covers transfer header and line-detail information for stock movement between stores, warehouses, internal finishers, and external finishers, and, for customer-order transfers, it also publishes delivery, billing, and consumer-fulfillment enrichment. Only transfers in Approved (A), Shipped (S), Closed (C), Picked (P), or Selected (L) status are published. Transfers still in Input (I), Submitted (B), externally closed (X), or Deleted (D) status do not appear in this API payload.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: TSFHEAD, TSFDETAIL, ORDCUST
Additional business tables: ITEM_LOC, ITEM_TICKET, PACKITEM_BREAKOUT, ITEM_MASTER, ORDCUST_DETAIL, ORDCUST_CUSTOMER_DETAIL, STORE, WH, PARTNER, DELIVERY_SLOT, V_CODE_DETAIL_TL, SYSTEM_OPTIONS, TSFHEAD_CFA_EXT
JSON cache table: MERCHAPI_EXT_TRANSFER
JSON generation view: V_MERCHAPI_EXT_TSF_JSON
Pulls transfer header data from TSFHEAD, line details from TSFDETAIL, item-location selling attributes from ITEM_LOC, ticket and component detail from ITEM_TICKET, PACKITEM_BREAKOUT, and ITEM_MASTER, customer-order enrichment from ORDCUST, ORDCUST_DETAIL, and ORDCUST_CUSTOMER_DETAIL, delivery-slot text from DELIVERY_SLOT, location enrichment from STORE, WH, and PARTNER, and custom flex attributes from MERCHAPI_EXT_TRANSFER_CFA.
The view only publishes transfers whose TSFHEAD.STATUS is one of A, S, C, P, or L, so input, submitted, externally closed, and already-deleted transfer headers are not published through this API.
The view also derives additional business fields needed by downstream consumers.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_EXT_TSF_JSON and apply TSFHEAD.STATUS IN ('A','S','C','P','L').
Mark cache rows deleted when the transfer no longer exists in TSFHEAD.
ICL (Integration Change Log) table: ICL_RMS_TRANSFER (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on TSFHEAD, TSFDETAIL, TSFHEAD_CFA_EXT, and qualifying ORDCUST updates.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_TRANSFER
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_TRANSFER_ADHOC_PROCESS -> MERCHAPI_EXT_TRANSFER_ADHOC_JOB
Webhook configuration api name: inventory/transfer
Special handling
Additional GET query parameters: fromLoc, toLoc, fromLocType, toLocType.
These filters are not backed by dedicated cache-table indexes. At high volume, use them only as additional criteria on top of a small-window delta fetch and not for full downloads.
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately. Because this service builds transfer messages from multiple base and supporting tables, including customer-order enrichment and line-detail expansion, the available configuration should be validated against the customer production transfer profile, with the key performance-related configuration for this service covering the following:
Multi-threading and commit control
This service supports multi-threaded execution for both initial seeding and delta processing. Thread count is controlled through API_NO_OF_THREADS, commit sizing through API_COMMIT_MAX_COUNTER, and long-running initial seeding can also be segmented through API_EXEC_SECONDS.
Thread and commit settings should be chosen together based on expected row volume, average message size, and the complex SQL query required to build the message from multiple base and supporting tables. Common starting points for large-volume runs are 8, 16, or 32 threads. Values of 48 or 64 threads should be considered only after testing and with awareness of competing workload in the environment.
API_COMMIT_MAX_COUNTER should be sized together with the thread setting. Typical values range from about 1,000 rows and can extend to 10,000.
API_EXEC_SECONDS is mainly relevant for initial seeding. A value of about 30 minutes helps the batch pause and resume cleanly so tuning changes can be applied between runs if needed.
Dropping indexes and constraints during seeding
This option applies only to initial seeding, including truncate-and-load execution. When thread and commit settings are high, concurrent inserts can increase index maintenance overhead and slow the load.
To reduce that overhead, DROP_INDEX_ON_REFRESH can be enabled so indexes and constraints are dropped before seeding and rebuilt after the load completes. GATHER_STATS_ON_REFRESH should normally remain enabled unless testing shows a specific reason to change it.
REST fetch considerations
Transfer payloads can be comparatively large, so REST page size should be selected based on average payload size so the average response remains below about 10 MB per call. Common page-limit values are 500, 1,000, 5,000, or 10,000 rows, with the lower end often proving better for broader transfer messages.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 10,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using the shared HISTOGRAM_ROW_COUNT configuration.
ReST URL
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
fromLoc |
No |
Number |
From Location |
|
toLoc |
No |
Number |
To Location |
|
fromLocType |
No |
String |
From Location Type |
|
toLocType |
No |
String |
To Location Type |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Table 5-405 Input Parameter for "MerchIntegrations/services/inventory/transfer/{tsfNo}"
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
tsfNo |
Yes |
Number |
|
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-406 PageResultsItemsMerchApiTransfer - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-407 MerchApiTransfer - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for transfer details. |
|
transferNo |
No |
Number(12,0) |
This field specifies a number that uniquely identifies the transfer within the system. |
|
docType |
No |
String (1) |
This field is defaulted to T for transfers. |
|
physicalFromLocation |
No |
Number(10,0) |
This field specifies the number that is used to identify the physical warehouse for a virtual warehouse when the from location is a warehouse. Store ID is populated when the from location is a store. |
|
fromLocationType |
No |
String (1) |
This field specifies the location type of the transfer from location. |
|
fromStoreType |
No |
String (6) |
This field specifies whether a particular store is a franchise or company store if the from location is a store. This field is not populated if the from location is a warehouse. |
|
fromStockholdingInd |
No |
String (1) |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y if the from location is a store. This field is not populated if the from location is a warehouse. |
|
fromLocation |
No |
Number(10,0) |
This field specifies the location number of the transfer from location. |
|
physicalToLocation |
No |
Number(10,0) |
This field specifies the number that is used to identify the physical warehouse for a virtual warehouse when the to location is a warehouse. Store ID is populated when the to location is a store. |
|
toLocationType |
No |
String (1) |
This field specifies the location type of the transfer to location. |
|
toStoreType |
No |
String (6) |
This field specifies whether a particular store is a franchise or company store if the to location is a store. This field is not populated if the to location is a warehouse. |
|
toStockholdingInd |
No |
String (1) |
This field specifies whether the store can hold stock. In a non-multichannel environment this will always be Y if the to location is a store. This field is not populated if the to location is a warehouse. |
|
toLocation |
No |
Number(10,0) |
This field specifies the location number of the transfer to location. |
|
transferType |
No |
String (6) |
This field identifies the type or reason for the transfer. |
|
pickNotBeforeDate |
No |
date |
This field specifies the date the transfer was approved. |
|
pickNotAfterDate |
No |
date |
This field is calculated as the transfer approval date plus the days from code_detail where code_type = 'DEFT' and code = 'DATE'. |
|
orderType |
No |
String (9) |
This field specifies the order type associated with transfers. RWMS uses this value to determine how to distribute stock orders. |
|
breakByDistro |
No |
String (1) |
This field is set to 'Y' if the delivery_type for the transfer's customer is 'S'. Otherwise, it is set to 'N'. |
|
deliveryDate |
No |
date |
This field specifies the earliest date that the transfer can be delivered to the store. This will be populated if the transfer type is PO-Linked. |
|
deliverAdd1 |
No |
String (240) |
For customer order transfers, this field contains the first line of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverAdd2 |
No |
String (240) |
For customer order transfers, this field contains the second line of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverCity |
No |
String (120) |
For customer order transfers, this field contains the city portion of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverState |
No |
String (3) |
For customer order transfers, this field contains the state portion of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverPost |
No |
String (30) |
For customer order transfers, this field contains the postal code portion of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverCountryId |
No |
String (3) |
For customer order transfers, this field contains the country portion of the customer's delivery address. For other types of transfer this field is not populated. |
|
comments |
No |
String (2000) |
This field specifies any comments associated with the transfer. |
|
transferParentNo |
No |
Number(12,0) |
This field identifies the transfer at the level above the transfer. |
|
expectedDcDate |
No |
date |
This field specifies the date the inventory is expected to arrive at the DC. |
|
expectedDcEowDate |
No |
date |
This column holds the eow_date for the exp_dc_date column. It is used for OTB extracts for intercompany transfers. |
|
approvalId |
No |
String (30) |
This field specifies the ID of the user who approved the transfer. |
|
approvalDate |
No |
date |
This field specifies the date the transfer was approved. |
|
fromLocationTransferEntity |
No |
Number(10,0) |
This field specifies the transfer entity of the from location. |
|
toLocationTransferEntity |
No |
Number(10,0) |
This field specifies the transfer entity of the to location. |
|
invType |
No |
String (6) |
This field specifies that a transfer can only contain available or unavailable merchandise, never a combination of both. This field indicates whether the transfer is for available inventory or unavailable inventory. |
|
transferStatus |
No |
String (1) |
This field specifies the status of the transfer. |
|
notAfterDate |
No |
date |
This field specifies the last day delivery of the transfer will be accepted. |
|
contextType |
No |
String (6) |
This field can be used to indicate the transfer reason or category, for example 'promotion'. |
|
contextValue |
No |
String (25) |
This field can be used to further indicate the reason or category for the transfer. For instance, if context_type was 'promotion', this could be the promotion number. |
|
deliverySlotId |
No |
String (15) |
This field specifies when the transfer quantity is needed at the location. |
|
deliverySlotDescription |
No |
String (240) |
This field specifies the delivery slot description. |
|
customerOrderNo |
No |
String (48) |
For customer order transfers, this field contains the master customer order number from the Order Management System. |
|
fulfillmentOrderNumber |
No |
String (48) |
This field 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 |
No |
String (4) |
This field indicates the carrier the order is to be shipped with, if specified on the order. |
|
carrierServiceCode |
No |
String (6) |
This field indicates the method that was selected for shipping by the customer placing the order (for example, Standard Shipping or Overnight). |
|
consumerDeliveryDate |
No |
date |
This field specifies the desired date the delivery is required by the customer. |
|
consumerDeliveryTime |
No |
dateTime |
This field specifies the desired time the delivery is required by the customer. |
|
deliverFirstName |
No |
String (120) |
For customer order transfers, this field contains the first name for the delivery address on the order. For other types of transfer this field is not populated. |
|
deliverPhoneticFirst |
No |
String (120) |
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 is not populated. |
|
deliverLastName |
No |
String (120) |
For customer order transfers, this field contains the last name for the delivery address on the order. For other types of transfer this field is not populated. |
|
deliverPhoneticLast |
No |
String (120) |
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 is not populated. |
|
deliverPreferredName |
No |
String (120) |
For customer order transfers, this field contains the preferred name for the delivery address on the order. For other types of transfer this field is not populated. |
|
deliverCompanyName |
No |
String (120) |
For customer order transfers, this field contains the company name for the delivery address on the order. For other types of transfer this field is not populated. |
|
deliverAdd3 |
No |
String (240) |
For customer order transfers, this field contains the third line of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverCounty |
No |
String (250) |
For customer order transfers, this field contains the county portion of the customer's delivery address. For other types of transfer this field is not populated. |
|
deliverPhone |
No |
String (20) |
For customer order transfers, this field contains the delivery phone number. For other types of transfer this field is not populated. |
|
billFirstName |
No |
String (120) |
For customer order transfers, this field contains the first name for the billing address on the order. For other types of transfer this field is not populated. |
|
billPhoneticFirst |
No |
String (120) |
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 is not populated. |
|
billLastName |
No |
String (120) |
For customer order transfers, this field contains the last name for the billing address on the order. For other types of transfer this field is not populated. |
|
billPhoneticLast |
No |
String (120) |
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 is not populated. |
|
billPreferredName |
No |
String (120) |
For customer order transfers, this field contains the preferred name for the billing address on the order. For other types of transfer this field is not populated. |
|
billCompanyName |
No |
String (120) |
For customer order transfers, this field contains the company name for the billing address on the order. For other types of transfer this field is not populated. |
|
billAdd1 |
No |
String (240) |
For customer order transfers, this field contains the first line of the customer's billing address. For other types of transfer this field is not populated. |
|
billAdd2 |
No |
String (240) |
For customer order transfers, this field contains the second line of the customer's billing address. For other types of transfer this field is not populated. |
|
billAdd3 |
No |
String (240) |
For customer order transfers, this field contains the third line of the customer's billing address. For other types of transfer this field is not populated. |
|
billCounty |
No |
String (250) |
For customer order transfers, this field contains the county portion of the customer's billing address. For other types of transfer this field is not populated. |
|
billCity |
No |
String (120) |
For customer order transfers, this field contains the city portion of the customer's billing address. For other types of transfer this field is not populated. |
|
billCountry |
No |
String (3) |
For customer order transfers, this field contains the country portion of the customer's billing address. For other types of transfer this field is not populated. |
|
billPost |
No |
String (30) |
For customer order transfers, this field contains the postal code portion of the customer's billing address. For other types of transfer this field is not populated. |
|
billState |
No |
String (3) |
For customer order transfers, this field contains the state portion of the customer's billing address. For other types of transfer this field is not populated. |
|
billPhone |
No |
String (20) |
For customer order transfers, this field contains the billing phone number. For other types of transfer this field is not populated. |
|
partialDeliveryInd |
No |
String (1) |
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 |
No |
String (1) |
This field indicates the order as being consumer direct (Y) or not (N). An order is consumer direct if it is a customer order. |
|
orderNo |
No |
Number(12,0) |
This field contains the import order number for which the intercompany book transfer was created for POs created using an importer. |
|
freightCode |
No |
String (1) |
This field is used to determine the priority for this transfer. Valid values for this field are: N - Normal, E - Expedite, H - Hold. |
|
routingCode |
No |
String (1) |
This field is used to indicate the type of freight to use on the transfer. Valid values are 1 - 1 day expedite, 2 - 2 day expedite, 3 - 3 day expedite. |
|
externalReferenceNo |
No |
String (14) |
This field contains the audit trail reference to an external system when an external transaction initiates master record creation in the Oracle Retail system. |
|
massReturnTransferNo |
No |
Number(10,0) |
This field holds the mass return transfer number with which this transfer is associated. This is the primary key for the table MRT. |
|
restockingPercentage |
No |
Number(12,4) |
This field holds the percentage of cost charged by the receiving location for re-stocking. |
|
franchiseOrder |
No |
Number(10,0) |
This field holds the franchise order number this transfer is linked to. |
|
franchiseReturnAuthorizationNo |
No |
Number(10,0) |
This field holds the franchise return number this transfer is linked to. |
|
franchiseNeedDate |
No |
date |
This field contains the need date of the franchise order. This is populated only for franchise order transfers. |
|
closeDate |
No |
date |
This field contains the date the transfer was closed. |
|
createId |
No |
String (254) |
This field contains the user ID of the user that created the transfer. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
|
details |
No |
Collection of Object |
This list holds attributes for transfer record details. |
|
customFlexAttribute |
No |
Collection of Object |
This list holds custom flex attributes for the transfer. |
|
cacheTimestamp |
No |
dateTime |
This field specifies the date and time when the transfer record was first picked for processing from the ICL table. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies the date and time when the record was first created for web service publication. |
Table 5-408 TransferDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
transferSeqNo |
No |
Number(8,0) |
This field contains a sequence number that, when combined with the transfer number, makes this detail row unique. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
transferQuantity |
No |
Number(12,4) |
This field specifies the total quantity of the item reserved at the from location for this transfer. |
|
price |
No |
Number(20,4) |
This field specifies the unit retail price in the selling unit of measure for the item/location combination. |
|
sellingUom |
No |
String (4) |
This field specifies the selling unit of measure of the item. |
|
expediteFlag |
No |
String (1) |
This field is determined from the transfer's freight code field. |
|
storeOrderMultiple |
No |
String (1) |
This field specifies the multiple in which the item needs to be shipped from a warehouse to the location. |
|
transferOrderLinkNo |
No |
Number(12,0) |
This field specifies the reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (that is, warehouse) on the transfer to fulfill the transfer quantity to the to location (that is, store) on the transfer. |
|
ticketTypeId |
No |
String (4) |
This field specifies the ticket type associated with the item. |
|
ticketDetails |
No |
Collection of Object |
This list holds attributes for transfer detail ticket records. |
|
invStatus |
No |
Number(2,0) |
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 |
No |
String (4) |
This field specifies the 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 the item's standard unit of measure. |
|
itemLineNo |
No |
Number(10,0) |
This field specifies the detail item line number for customer order transfers. For other types of transfer this field is not populated. |
|
comments |
No |
String (2000) |
This field specifies any comments associated with the transfer line item. |
|
transferPrice |
No |
Number(20,4) |
This field holds the unit cost of the item that will be used for this specific transfer if being transferred at something other than current WAC. This field should only have a value for intercompany transfers. |
|
transferCost |
No |
Number(20,4) |
This field holds the unit cost of the item that will be used for this specific transfer if the current shipping location's WAC is not used. |
|
supplierPackSize |
No |
Number(12,4) |
This field contains the supplier pack size for this transfer/item. |
|
defaultCharges2ndLegInd |
No |
String (1) |
This field is an indicator to identify whether item up charges, if they exist, should be defaulted to the 2nd leg of the transfer. The valid values are Y, N, and NULL. Its value is set on the transfer detail form when applying item up charges to the 1st leg. |
|
restockingPercentage |
No |
Number(12,4) |
This field contains the percentage of cost charged by the supplier for re-stocking. This could be different than the restocking percentage held in TSFHEAD if the user decides to change the percentage at item level. |
|
finisherAverageRetail |
No |
Number(20,4) |
This field is applicable to two-legged transfers and contains the weighted average retail of all the units of the transfer item currently at or in transit to the finisher. |
|
finisherUnits |
No |
Number(12,4) |
This field is applicable to two-legged transfers and contains the number of units of the transfer item currently at or in transit to the finisher. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date and time (UTC). |
|
updateDateTime |
No |
dateTime |
This column holds the date and time when the record was last updated (UTC). |
Table 5-409 TransferDetailsTicket - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
componentItem |
No |
String (25) |
This field specifies the alphanumeric value that identifies the component item within the pack. |
|
componentPrice |
No |
Number(20,4) |
This field specifies the unit retail price in the selling unit retail of the component item within the pack. |
|
componentSellingUom |
No |
String (4) |
This field specifies the selling unit of measure for a component item within the pack. |
Table 5-410 CustomFlexAttribute - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
name |
No |
String (30) |
This field holds the custom flex attribute name. |
|
value |
No |
String (250) |
This field holds the numeric or character value of the custom flex attribute. |
|
valueDate |
No |
date |
This field holds the date value of the custom flex attribute. |
|
createDateTime |
No |
dateTime |
This field holds the date and time when the custom flex attribute was created (UTC). |
|
updateDateTime |
No |
dateTime |
This field holds the date and time when the custom flex attribute was last updated (UTC). |
Table 5-411 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"transferNo": 12300056,
"docType": null,
"physicalFromLocation": 1,
"fromLocationType": "S",
"fromStoreType": "C",
"fromStockholdingInd": "Y",
"fromLocation": 1521,
"physicalToLocation": 1,
"toLocationType": "S",
"toStoreType": "C",
"toStockholdingInd": "Y",
"toLocation": 1511,
"transferType": "AD",
"pickNotBeforeDate": "2001-12-31",
"pickNotAfterDate": "2001-12-31",
"orderType": null,
"breakByDistro": null,
"deliveryDate": "2001-12-31",
"deliverAdd1": null,
"deliverAdd2": null,
"deliverCity": null,
"deliverState": null,
"deliverPost": null,
"deliverCountryId": null,
"comments": "transfer to loc 1511",
"transferParentNo": 1,
"expectedDcDate": "2001-12-31",
"expectedDcEowDate": "2001-12-31",
"approvalId": null,
"approvalDate": "2001-12-31",
"fromLocationTransferEntity": 1,
"toLocationTransferEntity": 1,
"invType": null,
"transferStatus": null,
"notAfterDate": "2001-12-31",
"contextType": null,
"contextValue": null,
"deliverySlotId": null,
"deliverySlotDescription": null,
"customerOrderNo": "12342132156",
"fulfillmentOrderNumber": "123123213",
"carrierCode": "30",
"carrierServiceCode": "D",
"consumerDeliveryDate": "2001-12-31",
"consumerDeliveryTime": "2001-12-31T23:59:59.000Z",
"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": "N",
"consumerDirectInd": null,
"orderNo": 464690012,
"freightCode": "N",
"routingCode": null,
"externalReferenceNo": null,
"massReturnTransferNo": 1,
"restockingPercentage": 1.0,
"franchiseOrder": 1,
"franchiseReturnAuthorizationNo": 1,
"franchiseNeedDate": "2001-12-31",
"closeDate": "2001-12-31",
"createId": "RMS01APP",
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"details": [
{
"transferSeqNo": 1,
"item": "104100022",
"transferQuantity": 3,
"price": 1.0,
"sellingUom": "EA",
"expediteFlag": "Y",
"storeOrderMultiple": null,
"transferOrderLinkNo": 1,
"ticketTypeId": null,
"ticketDetails": [
{
"componentItem": null,
"componentPrice": 1.0,
"componentSellingUom": "EA"
}
],
"invStatus": 1,
"transactionUom": "EA",
"itemLineNo": 1,
"comments": null,
"transferPrice": 1.0,
"transferCost": 1.0,
"supplierPackSize": 3,
"defaultCharges2ndLegInd": null,
"restockingPercentage": 1.0,
"finisherAverageRetail": 1.0,
"finisherUnits": 1.0,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"customFlexAttribute": [
{
"name": "attribute1",
"value": "value1",
"valueDate": "2001-12-31",
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Table Impact
| 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-412 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-413 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-414 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-415 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.
Input Payload Details
Table 5-416 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-417 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-418 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.
Input Payload Details
Table 5-419 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-420 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. |
|
expectedDcDate |
No |
date |
The date that the transfer is expected to be shipped at the warehouse. 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 (e. g. normal, expedite, etc. ). |
|
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-421 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-422 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",
"expectedDcDate": "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.
Input Payload Details
Table 5-423 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-424 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-425 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.
Input Payload Details
Table 5-426 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-427 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.
Input Payload Details
Table 5-428 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-429 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-430 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
Input Payload Details
Table 5-431 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-432 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. |
|
expectedDcDate |
No |
date |
The date that the transfer is expected to be shipped at the warehouse. 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-433 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",
"expectedDcDate": "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.
Input Payload Details
Table 5-434 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-435 Items - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
transferNo |
Yes |
Number (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 |
Number (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/woinMerchIntegrations/services/inventory/woin/{workOrderId}Business Overview
This service publishes work-order-in data to downstream consuming systems. The payload is keyed by the work order ID and publishes one header row together with its detail lines. Functionally, the JSON view builds the payload directly from WO_HEAD and WO_DETAIL.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: WO_HEAD, WO_DETAIL
Additional business tables: none
JSON cache table: MERCHAPI_EXT_WOIN
JSON generation view: V_MERCHAPI_EXT_WOIN_JSON
Builds the payload directly from WO_HEAD and WO_DETAIL.
Functionally, the payload is keyed by WO_HEAD.WO_ID and publishes one header row with an array of detail lines.
Refresh loads rows from V_MERCHAPI_EXT_WOIN_JSON into the cache, rebuild compares the current payload against the live cache by MD5 and republishes changed rows, and rows that no longer exist in WO_HEAD are marked deleted.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_MERCHAPI_EXT_WOIN_JSON. No additional filter criteria were identified beyond the cache-build logic.
Delete handling can mark a cache row deleted when the source WO_HEAD row no longer exists.
ICL (Integration Change Log) table: ICL_RMS_WOIN (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on WO_HEAD, WO_DETAIL.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_WOIN
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_WO_IN_ADHOC_PROCESS -> MERCHAPI_EXT_WO_IN_ADHOC_JOB
Webhook configuration api name: inventory/woin
Special handling
Additional GET query parameters: orderNo.
ReST URL
MerchIntegrations/services/inventory/woin
MerchIntegrations/services/inventory/woin/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woin
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
orderNo |
No |
Number |
OrderNo |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Table 5-436 Input Parameter for "MerchIntegrations/services/inventory/woin/{workOrderId}"
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
workOrderId |
Yes |
Number |
|
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
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. |
| include | No | String | Fields to include - comma separated (Example items.name,items.address.city) |
| exclude | No | String | Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output – WO In Head
Table 5-437 PageResultsItemsMerchApiWorkOrderIn - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-438 MerchApiWorkOrderIn - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Work Order In details. |
|
workOrderId |
No |
Number(10,0) |
This field contains the unique identifier for work in process associated with an order or transfer. |
|
orderNo |
No |
Number(12,0) |
This field contains the order number associated with the work order. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
details |
No |
Collection of Object |
This List holds attributes for details of Work Order In record. |
|
cacheTimestamp |
No |
dateTime |
This field specifies date and time when the Work Order In record was last maintained. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies date and time when the record was first created for web service publication. |
Table 5-439 WorkOrderInDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
warehouse |
No |
Number(10,0) |
This field holds the physical warehouse where the work order will be done. |
|
item |
No |
String (25) |
This field holds the item on which the work order will be done. |
|
locationType |
No |
String (1) |
This field holds the location type of the final destination. |
|
location |
No |
Number(10,0) |
This field holds the 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 |
No |
Number(4,0) |
This field holds the 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 |
No |
String (6) |
This field holds the WIP code for the work to be done on the item. Valid values are in the codes table under the WWIP code type. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
Table 5-440 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"workOrderId": 1,
"orderNo": 545005,
"createDateTime": "2001-12-31T23:59:59.000Z",
"details": [
{
"warehouse": 1,
"item": "101300002",
"locationType": "S",
"location": 15000,
"sequenceNo": 1,
"activityCode ": "12122",
"createDateTime": "2001-12-31T23:59:59.000Z"
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
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 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": "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
| 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/wooutMerchIntegrations/services/inventory/woout/{workOrderId}Business Overview
This service publishes work-order-out data to downstream consuming systems. It publishes transfer work orders together with the related transfer and work-order detail built for outbound fulfillment. Functionally, the view only publishes transfer work orders whose source transfer location resolves to either a warehouse or an external finisher partner, and refresh and rebuild only load transfers whose TSFHEAD.APPROVAL_DATE is not null.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: TSF_WO_DETAIL, TSF_WO_HEAD, TSFDETAIL, TSF_XFORM_DETAIL, TSF_PACKING_DETAIL, TSFHEAD
Additional business tables: TSF_XFORM, TSF_PACKING, WH, PARTNER
JSON cache table: MERCHAPI_EXT_WOOUT
JSON generation view: V_MERCHAPI_EXT_WOOUT_JSON
The payload is assembled from transfer work-order data in TSF_WO_DETAIL, TSF_WO_HEAD, TSFDETAIL, TSF_XFORM_DETAIL, TSF_XFORM, TSF_PACKING_DETAIL, TSF_PACKING, TSFHEAD, WH, and PARTNER.
The view only publishes transfer work orders whose source transfer location resolves to either a warehouse or an external finisher partner, and the refresh/rebuild logic only loads transfers whose TSFHEAD.APPROVAL_DATE is not null.
Insert and update events republish the JSON payload as a merge, while direct delete events only mark the cache row deleted when a live cache row still exists.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_EXT_WOOUT_JSON and apply refresh and rebuild only load rows where TSFHEAD.APPROVAL_DATE is not null.
ICL (Integration Change Log) table: ICL_RMS_WOOUT (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on TSF_WO_DETAIL, TSF_WO_HEAD, TSFDETAIL, TSF_XFORM_DETAIL, TSF_PACKING_DETAIL, TSFHEAD.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_EXT_WOOUT
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_EXT_WO_OUT_ADHOC_PROCESS -> MERCHAPI_EXT_WO_OUT_ADHOC_JOB
Webhook configuration api name: inventory/woout
Special handling
Additional GET query parameters: tsfNo.
ReST URL
MerchIntegrations/services/inventory/woout
MerchIntegrations/services/inventory/woout/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woout
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
tsfNo |
No |
Number |
TransferNo |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Table 5-441 Input Parameter for "MerchIntegrations/services/inventory/woout/{workOrderId}"
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
workOrderId |
Yes |
Number |
|
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
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. |
| include | No | String | Fields to include - comma separated (Example items.name,items.address.city) |
| exclude | No | String | Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output – WO Out Head
Table 5-442 PageResultsItemsMerchApiWorkOrderOut - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-443 MerchApiWorkOrderOut - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Work Order Out details. |
|
workOrderId |
No |
Number(15,0) |
This field contains the unique identifier for work in process associated with an order or transfer. |
|
distroNo |
No |
Number(12,0) |
This field contains the first leg transfer number of the 2-legged transfer. |
|
parentDistroNo |
No |
Number(12,0) |
This field contains the second leg transfer number of the 2-legged transfer. |
|
finisherLocationId |
No |
Number(10,0) |
This field contains the destination location for the transfer. |
|
inventoryType |
No |
String (6) |
This field contains the code to indicate whether the inventory on the transfer is available. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the record updated date. |
|
activityDetails |
No |
Collection of Object |
This List holds attributes for details of Work Order Out record. |
|
transformationDetails |
No |
Collection of Object |
This List holds attributes for details of Work Order transformation details record. |
|
packingDetails |
No |
Collection of Object |
This List holds attributes for details of Work Order packing details record. |
|
cacheTimestamp |
No |
dateTime |
This field specifies date and time when the Work Order Out record was last maintained. |
|
cacheCreateTimestamp |
No |
dateTime |
This field specifies date and time when the record was first created for web service publication. |
Table 5-444 WorkOrderOutDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
item |
No |
String (25) |
This field contains the item associated with the finishing activity. |
|
activityId |
No |
Number(10,0) |
This field contains a code number indicating the activity that will be performed on the item. |
|
activityUnitCost |
No |
Number(20,4) |
This field contains the per unit cost of the finishing activity. |
|
comments |
No |
String (2000) |
This field contains any comments regarding this activity. |
|
invStatus |
No |
Number(2,0) |
This field contains the inventory status of the transfer detail. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the record updated date. |
Table 5-445 TransformationDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
fromItem |
No |
String (25) |
This field contains the original item on the transfer. |
|
toItem |
No |
String (25) |
This field contains the item which results from the finishing activity. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the record updated date. |
Table 5-446 PackingDetails - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
item |
No |
String (25) |
This field contains the item resulting from the packing process. |
|
packingSetNo |
No |
Number(10,0) |
This field contains packing set number from the packing process. |
|
recordType |
No |
String (1) |
This field determines if the item in the ITEM field is being used to create a pack (F - From) an item or a result of the pack creation process (R - Result). |
|
quantity |
No |
Number(12,4) |
This field contains the quantity of the item used to create the pack or as a result of the packing process. |
|
createDateTime |
No |
dateTime |
This column holds the record creation date. |
|
updateDateTime |
No |
dateTime |
This column holds the record updated date. |
Table 5-447 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"workOrderId": 1,
"distroNo": 100000135001,
"parentDistroNo": 100000135000,
"finisherLocationId": 1,
"inventoryType": "A",
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z",
"activityDetails": [
{
"item": "101300002",
"activityId": 12122,
"activityUnitCost": 10,
"comments": null,
"invStatus": 1,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"transformationDetails": [
{
"fromItem": null,
"toItem": null,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"packingDetails": [
{
"item": null,
"packingSetNo": 1,
"recordType": null,
"quantity": 2,
"createDateTime": "2001-12-31T23:59:59.000Z",
"updateDateTime": "2001-12-31T23:59:59.000Z"
}
],
"cacheTimestamp": "2001-12-31T23:59:59.000Z",
"cacheCreateTimestamp": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
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 ITEM field is being used to create a pack (F - From) an item or a result of the pack creation process (R - Result). |
| 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 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": [
{
"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
| 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 |