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
Functional Area

Inventory - Appointments

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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/appointments/create
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Appointments

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/appointments/delete
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Appointments

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/appointment/details/delete
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Appointments

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)

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/appointment/details/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Appointments

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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/appointments/update
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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

Functional Area

Inventory

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.

Service Type

GET

ReST URL

MerchIntegrations/services/inventory/available

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No No No
MERCHAPI_CONSUMER_CONFIG Yes No No No
ITEM_MASTER Yes No No No
STORE Yes No No No
WH Yes No No No
MERCHAPI_ITEM_LOC_SOH Yes No No No

Get Item Location Inventory

This section describes the Item Loc Inventory Detail service.

Business Overview

Item Loc Inventory Detail service allows user to retrieve Item Location and Item Location Stock on Hand information for a selected item and location. If location and location type are not specified, all locations for the item will be retrieved. If location type is specified but not the location, all locations for the item and location type will be retrieved.

Service Type

Get

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": []
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

V_ITEM_LOC

Yes

No

No

No

ITEM_LOC_SOH

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

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.

Functional Area

Inventory

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.

Service Type

Post

ReST URL
Invadj/createInvadj
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: YYYY-MM-DD)

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": []
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

INV_ADJ

Yes

Yes

No

No

ITEM_LOC_SOH

Yes

Yes

Yes

No

SVC_PROCESS_TRACKER

Yes

Yes

Yes

No

SVC_INV_ADJ

Yes

Yes

Yes

Yes

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

Create Inventory Adjustments
Functional Area

Inventory - 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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/inventoryAdjustments/create
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Inventory Adjustments

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.

Service Type

POST

ReST URL
MerchIntegrations/services/item/transformations/create
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: 200 (Success)
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/rtv
MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Functional Area

Inventory – Returns to Vendor

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.

Service Type

GET

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No No No
MERCHAPI_CONSUMER_CONFIG Yes No No No
MERCHAPI_ASYNC_REQUEST Yes No No No
MERCH_BATCH_PARAM Yes No No No
ICL_RMS_RTV Yes No Yes Yes
MERCHAPI_EXT_RTV Yes Yes Yes Yes
V_ MERCHAPI_EXT_RTV _JSON Yes No No No

Return to Vendor Upload Service

The following services are included in this functional area:

Manage Returns to Vendor
Functional Area

Inventory - 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/returnsToVendor/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Endpoint
MerchIntegrations/services/inventory/receiverunitadj
Functional Area

Inventory - Shipments and Receipts

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

Service Type

GET

ReST URL

MerchIntegrations/services/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.

Functional Area

Inventory - Shipments and Receipts

Business Overview

This service allows users to retrieve shipment and shipment item details for a given distro (transfer or allocation) or purchase order (PO).

Service Type

Get

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": []
    }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

V_SHIPMENT

Yes

No

No

No

V_SHIPSKU

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

Shipment and Receipt Upload Service

The following services are included in this functional area:

Create DSD Receipts
Functional Area

Inventory - Shipments and 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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/dsd/create
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and Receipts

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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/outboundAsn/create
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and Receipts

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/inboundAsn/delete
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and Receipts

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.
Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/inboundAsn/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/receipts/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/purchaseOrder/receipts/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/stockOrder/receipts/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Shipments and Receipts

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.

Service Type

GET

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/stockOrder/shipment
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
Functional Area

Inventory - Shipments and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/shipmentsAndReceipts/dsd/update
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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.

Service Type

Get

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": []
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

STAKE_HEAD

Yes

No

No

No

STAKE_SKU_LOC

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

Stock Count Upload Service

The following services are included in this functional area:

Create Stock Count Schedules
Functional Area

Inventory - Stock Counts

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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/stockCount/schedules/create
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Stock Counts

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/stockCount/schedule/locations/delete
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Stock Counts

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/stockCount/schedules/delete
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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
Functional Area

Inventory - Stock Counts

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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/stockCount/schedules/update
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element validationErrors will be present when input payload or input parameters do not match the schema definition for this service.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ]
}

Transfers and Allocations

The following services are included in this functional area:

Allocation Download Service

The following services are included in this functional area:

Get Allocation Details for Provided Allocation
Endpoint
MerchIntegrations/services/inventory/allocation
MerchIntegrations/services/inventory/allocation/{allocNo}
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

GET

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No No No
MERCHAPI_CONSUMER_CONFIG Yes No No No
MERCHAPI_ASYNC_REQUEST Yes No No No
MERCH_BATCH_PARAM Yes No No No
ICL_RMS_ALLOC Yes No Yes Yes
MERCHAPI_EXT_ALLOC Yes Yes Yes No
V_MERCHAPI_EXT_ALLOC_JSON Yes No No No
SYSTEM_OPTIONS Yes No No No
Get Details for an Allocation

This section describes the Allocation Detail service.

Business Overview

Allocation Detail service allows user to retrieve Allocation information for a selected allocation number.

Service Type

Get

ReST URL
Alloc/allocDetail?allocNumber={allocationNumber}
Input Parameters
Parameter Name Required Description

allocNumber

Yes

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": []
    }
  }
]
Table Impact
TABLE SELECT INSERT UPDATE DELETE

ALLOC_HEADER

Yes

No

No

No

ALLOC_DETAIL

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

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.

Service Type

GET

ReST URL
/Alloc/allocNo
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]
}
Table Impact

N/A

Allocation Upload Service

The following services are included in this functional area:

Close Allocations
Functional Area

Inventory - Transfers and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/allocations/close
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/allocation/details/create
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
Functional Area

Inventory - Transfers and 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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/allocations/create
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/allocation/details/delete
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/allocation/details/update
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
Functional Area

Inventory - Transfers and 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/allocations/update
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.

Service Type

Get

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

S, W

SearchString

Yes

search string for locations Id or Name

NA

tsfType

Yes

Transfer type

IC, MR

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.

Service Type

GET

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.

Service Type

GET

ReST URL
/Transfer/transferId
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]
}
Table Impact

N/A

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.

Service Type

Get

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

S, W

SearchString

Yes

search string for locations Id or Name

NA

tsfType

Yes

Transfer type

IC, MR

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.

Business Overview

Load locations Web service allows user to refresh selected locations records.

Service Type

Get

ReST URL
/Transfer/loadLocations?fromLocation={fromLocation}&toLocation={toLocation}
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

Service Type

Get

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

S, W

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": [ ]
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

V_STORE

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 Statuses

This section describes the Transfer Status List service.

Business Overview

Retrieves all valid transfer statuses.

Service Type

Get

ReST URL
/Transfer/recent/transferStatusList
Input Parameters

No input.

Output

CodeDetailRDO

Parameter Name Data Type

code

String

codeDescription

String

codeSequence

BigDecimal

JSON Structure

[
  {
    "code": null,
    "codeDescription": null,
    "codeSequence": null,
    "links": [ ],
    "hyperMediaContent": {
      "linkRDO": [ ]
    }
  }
]
Table Impact
TABLE SELECT INSERT UPDATE DELETE

CODE_HEAD

Yes

No

No

No

CODE_DETAIL

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

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.

Service Type

Get

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.

Business Overview

Retrieves all valid transfer types.

Service Type

Get

ReST URL
/Transfer/recent/transferTypeList
Input Parameters

No input.

Output

CodeDetailRDO

Parameter Name Data Type

code

String

codeDescription

String

codeSequence

BigDecimal

JSON Structure

[
  {
    "code": null,
    "codeDescription": null,
    "codeSequence": null,
    "links": [ ],
    "hyperMediaContent": {
      "linkRDO": [ ]
    }
  }
]
Table Impact
TABLE SELECT INSERT UPDATE DELETE

CODE_HEAD

Yes

No

No

No

CODE_DETAIL

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

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.

Service Type

Get

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": [ ]
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

V_TSFHEAD

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

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.

Service Type

Get

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": [ ]
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

ITEM_LOC_SOH

Yes

No

No

No

ITEM_MASTER

Yes

No

No

No

TSFDETAIL

Yes

No

No

No

TSFITEM_INV_FLOW

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 - 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.

Service Type

Get

ReST URL
/Transfer/recent/transferLocationLoad?locations={locations}
Input Parameters
Parameter Name Required Description

Locations

No

Comma-separated values for selected locations' ID

Output

RtsfLocSearchResultRDO

Parameter Name Data Type

location

BigDecimal

locationType

String

locationName

String

currency

String

JSON Structure

[
  {
    "location": null,
    "locationType": null,
    "locationName": null,
    "currency": null,
    "links": [ ],
    "hyperMediaContent": {
      "linkRDO": [ ]
    }
  }
]
Table Impact
TABLE SELECT INSERT UPDATE DELETE

V_STORE

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 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.

Service Type

Post

ReST URL
/Transfer
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" : [ ]
  }
}
Output

N/A

Table Impact

For more information on the Merchandising XTSF API, see the Store Order Subscription API and Transfer Subscription API sections.

Mobile Workflow - Update Transfer Status

This section describes the Update Transfer Status service.

Business Overview

The web service approves or unapproves a transfer or a list of transfers.

Service Type

Post

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 A-Approved or I-Input.

A, I

TransferNumbers

Yes

Comma Separated values for selected locations' ID

Output

N/A

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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/stockOrders/status/manage
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
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.

Business Overview

Transfer Detail service allows user to retrieve details for a given transfer.

Service Type

Get

ReST URL
Transfer/transferDetail?transferNumber={transferNumber}
Input Parameters
Parameter Name Required Description

Transfer Number

Yes

Transfer number

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": []
  }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

TSFHEAD

Yes

No

No

No

TSFDETAIL

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

Transfer Download Service

The following services are included in this functional area:

Get Transfer
Endpoint
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

GET

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No Yes No
MERCHAPI_CONSUMER_CONFIG Yes No No No
MERCHAPI_ASYNC_REQUEST Yes No No No
MERCH_BATCH_PARAM Yes No No No
ICL_RMS_TRANSFER Yes No Yes Yes
MERCHAPI_EXT_TRANSFER Yes Yes Yes Yes
MERCHAPI_EXT_TRANSFER_CFA No Yes No Yes
TSFHEAD Yes No No No
TSFHEAD_CFA_EXT Yes No No No
V_MERCHAPI_EXT_TSF_JSON Yes No No No
SYSTEM_OPTIONS Yes No No No
Get Transfer Details for Provided Transfer
Endpoint
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
Functional Area

Inventory - Transfers

Business Overview

This service can be used by external applications to get all or selected transfers and its details from Merchandising.

Service Type

GET

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: yyyy-mm-dd"T"hh24:mi:ss.fftzh:tzm

before

No

String

Before Date

Format: yyyy-mm-dd"T"hh24:mi:ss.fftzh:tzm

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 1000.

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

Functional Area

Transfer and Customer Order

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.

Service Type

Post

ReST URL
/Transfer/customerOrderBookTransfer
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:

  • B update both the source and destination location

  • S update only the source location

  • R update only the destination location

  • N or NULL no update

ItemsDetail

Yes

Collection of itemsDetail RDO

ApprovalDate

No

Date

Approval date of the transfer

(Format: ‘DD-MON-YYYY’)

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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/transfer/details/create
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
Functional Area

Inventory - Transfers and Allocations

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.

Administrative (AD)
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

Confirmation (CF)
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.

Service Type

POST

ReST URL
MerchIntegrations/services/inventory/transfers/create
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/transfer/details/delete
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

DELETE

ReST URL
MerchIntegrations/services/inventory/transfers/delete
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
Functional Area

Inventory - Transfers and Allocations

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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/transfer/details/update
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
Functional Area

Inventory - Transfers and Allocations

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

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/transfers/update
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
Functional Area

Inventory - Transfers and Allocations

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:

  1. Work order activities could not be performed for the entire quantity of a particular item at one time.

  2. 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.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/transfer/workOrdersStatus/update
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: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element validationErrors will be present when input payload or input parameters do not match the schema definition for this service.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ]
}

Work Order Download Service

The following services are included in this functional area:

Purchase Order Work Order Publish Services
Endpoints
MerchIntegrations/services/inventory/woin
MerchIntegrations/services/inventory/woin/{workOrderId}
Functional Area

Inventory – Work Orders

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.

Service Type

GET

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No No No
MERCHAPI_CONSUMER_CONFIG Yes No No No
MERCHAPI_ASYNC_REQUEST Yes No No No
MERCH_BATCH_PARAM Yes No No No
ICL_RMS_WOIN Yes No Yes Yes
MERCHAPI_EXT_WOIN Yes Yes Yes Yes
V_ MERCHAPI_EXT_WOIN _JSON Yes No No No
Transfer Work Order Publish Services
Endpoints
MerchIntegrations/services/inventory/woout
MerchIntegrations/services/inventory/woout/{workOrderId}
Functional Area

Inventory – Work Orders

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.

Service Type

GET

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
The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.
TABLE SELECT INSERT UPDATE DELETE
MERCHAPI_CONFIG Yes No No No
MERCHAPI_CONSUMER_CONFIG Yes No No No
MERCHAPI_ASYNC_REQUEST Yes No No No
MERCH_BATCH_PARAM Yes No No No
ICL_RMS_WOOUT Yes No Yes Yes
MERCHAPI_EXT_WOOUT Yes Yes Yes Yes
V_ MERCHAPI_EXT_WOOUT_JSON Yes No No No