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-164 Create - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of appointments.

Table 5-165 Items - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the location where the merchandise has been sent.

appointmentNo

Yes

Number (9)

This field contains the unique number generated by warehouse while creating an appointment.

appointmentDateTime

No

date-time

The date and time of the scheduled appointment,i.e. when the goods are expected to arrive at the receiving location.

action

Yes

String (2)

The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed.

details

No

Collection of Object

References a collection of appointment details.

receiptDateTime

No

date-time

The actual date and time upon which the trailer arrived at the receiving location for the appointment.

Table 5-166 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This field contains the items shipped to the location.

unitQuantity

Yes

Number (12,4)

This field contains the quantity of the item slated to be sent to the location.

documentNo

Yes

Number (12)

This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise.

documentType

Yes

String (1)

This field indicates the type of document corresponding to the shipped merchandise. Possible choices are Purchase Order (P), Transfer (T), or Allocation (A). Types 'D' and 'V' are also valid document types that are treated the same as transfers.

asnNo

No

String (30)

This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "location": 2,
      "appointmentNo": 200911,
      "appointmentDateTime": "2001-12-31T23:59:59.123Z",
      "action": "SC",
      "details": [
        {
          "item": "101200001",
          "unitQuantity": 3,
          "documentNo": 100000135000,
          "documentType": "T",
          "asnNo": null
        }
      ],
      "receiptDateTime": "2001-12-31T23:59:59.123Z"
    }
  ]
}
Response Code: 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-167 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of appointments.

Table 5-168 Items - Object. See list of elements for detail

Element Name Required Data Type Description

appointmentNo

Yes

Number (9)

This field contains the unique number generated by warehouse while creating an appointment.

location

Yes

Number (10)

This field contains the location where the merchandise has been sent.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "appointmentNo": 200911,
      "location": 2
    }
  ]
}
Response Code: 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-169 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of appointment details.

Table 5-170 Items - Object. See list of elements for detail

Element Name Required Data Type Description

appointmentNo

Yes

Number (9)

This field contains the unique number generated by warehouse while creating an appointment.

location

Yes

Number (10)

This field contains the location where the merchandise has been sent.

details

No

Collection of Object

References a collection of appointment details.

Table 5-171 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This field contains the items shipped to the location.

documentNo

Yes

Number (12)

This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise.

asnNo

No

String (30)

This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "appointmentNo": 200911,
      "location": 2,
      "details": [
        {
          "item": "101200001",
          "documentNo": 100000135000,
          "asnNo": null
        }
      ]
    }
  ]
}
Response Code: 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-172 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of appointments.

Table 5-173 Items - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the location where the merchandise has been sent.

appointmentNo

Yes

Number (9)

This field contains the unique number generated by warehouse while creating an appointment.

action

Yes

String (2)

The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed.

details

No

Collection of Object

References a collection of appointment details.

Table 5-174 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This field contains the items shipped to the location.

unitQuantity

Yes

Number (12,4)

This field contains the quantity of the item slated to be sent to the location.

documentNo

Yes

Number (12)

This field contains the purchase order, transfer or allocation corresponding to the shipped merchandise.

documentType

Yes

String (1)

This field indicates the type of document corresponding to the shipped merchandise. Possible choices are Purchase Order (P), Transfer (T), or Allocation (A). Types 'D' and 'V' are also valid document types that are treated the same as transfers.

asnNo

No

String (30)

This field contains the advance shipping notice number associated with the appointment. It is populated only when the appointment is based on an ASN.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "location": 2,
      "appointmentNo": 200911,
      "action": "SC",
      "details": [
        {
          "item": "101200001",
          "unitQuantity": 12,
          "documentNo": 100000135000,
          "documentType": "T",
          "asnNo": null
        }
      ]
    }
  ]
}
Response Code: 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-175 Update - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of appointments.

Table 5-176 Items - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the location where the merchandise has been sent.

appointmentNo

Yes

Number (9)

This field contains the unique number generated by warehouse while creating an appointment.

appointmentDateTime

No

date-time

The date and time of the scheduled appointment,i.e. when the goods are expected to arrive at the receiving location.

action

Yes

String (2)

The status of the Appointment. Valid values include: SC - Scheduled, MS - Modified Scheduled, AR - Arrived, AC - Closed.

receiptDateTime

No

date-time

The actual date and time upon which the trailer arrived at the receiving location for the appointment.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "location": 2,
      "appointmentNo": 200911,
      "appointmentDateTime": "2001-12-31T23:59:59.123Z",
      "action": "SC",
      "receiptDateTime": "2001-12-31T23:59:59.123Z"
    }
  ]
}
Response Code: 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 integration web service fetches available inventory at a customer-orderable store or warehouse location. This service fetches approved transaction-level items that are sellable, inventoried, and ranged to stockholding and customer-orderable locations. To keep the volume served by this service manageable for performance consideration, this serves either

  • item/locations that currently have non-zero inventory positions

  • while the current inventory position is zero, the item/locations that had non-zero inventory position in the last 7 days

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/available? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}&locationType={locationType}&location={location}
Input Parameters
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

offsetkey

No

String

Offset Key. Valid Value is combination of location type, location ID and item in case of pagination when the next page has to start the last fetched record of the previous call

limit

No

Number

Pagination limit. Default Value is 1000.

locationType

No

String

Allowed value for 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

Number

Should be a valid store or a virtual warehouse if inventory position for a particular location must be fetched. locationType is mandatory if this is populated

Output
Name Data Type Description

action

String

Action for Item details. Valid Values are INSERT, UPDATE, UPSERT and DELETE.

locationType

String

This field contains the Type of location in the location field. This will be either S for store or W for warehouse.

location

Number

This field contains the numeric identifier of the location in which the item is to be found.

item

String

This field contains the unique alphanumeric value that identifies the item. This will be an approved, sellable, transaction-level item. In case of warehouse location, pack items are also included.

availableQuantity

Number

This field represents the available inventory of an item in a particular location. This is calculated as Stock on Hand minus sum of non-sellable, transfer reserved, customer order reserve, RTV and in-progress sales quantity. In case of warehouse location, the inventory as an item as a component of a pack is also included in the available inventory calculation.

stockOnHand

Number

This field contains current stock on hand for the item.

standardUom

String

This field contains the Unit of measure in which stock of the item is tracked at a corporate level.

physicalWarehouse

Number

This field contains the physical warehouse ID of the location field. This is only populated for warehouse locations.

channelId

Number

This field contains the channel ID for the store or the channel of the virtual warehouse for location type of warehouse.

cacheTimestamp

Datetime

This field holds the database timestamp when the message was prepared/cached to serve this service for an item/location combination. The message serving this service is cached for an item/location when inventory position is changed, and this will continue to hold the same timestamp value till the next inventory change. The consumer can use this field for sequencing records for an item/location

Elements in JSON Output
Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than the limit defined then hasMore will be set to true, otherwise it will be 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, internally it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a next link; otherwise, no links are added to the JSON response.

links

self: This contains a URI pointing to the current page.

next: This contains a 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>:<port>:/MerchIntegrations/services/inventory/available?locationType=W&limit=1&since=1970-01-01T00:00:00.001Z&before=2022-07-18T23:27:26.547666+00:00",
      "rel": "self"
    },
    {
      "href": "http://<hostname>:<port>:/MerchIntegrations/services/inventory/available?locationType=W&offsetkey=W%2C13%2C102900026&limit=1&since=1970-01-01T00:00:00.001Z&before=2022-07-18T23:27:26.547666+00:00",
      "rel": "next"
    }
  ]
}
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

No

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

ITEM_MASTER

Yes

No

No

No

STORE

Yes

No

No

No

WH

Yes

No

No

No

MERCHAPI_ITEM_LOC_SOH

Yes

No

No

No

Get Item Location Inventory

This section describes the Item Loc Inventory Detail service.

Business Overview

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

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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-177 Create - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of inventory adjustment details.

Table 5-178 Items - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the location where the inventory adjustment is being made.

details

Yes

Collection of Object

References a collection of items for which stock is being adjusted.

Table 5-179 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This contains the item for which stock is being adjusted. The item should be an approved inventory item.

adjustmentReasonCode

No

Number (4)

Contains the reason for inventory adjustment. This field will only have a value for saleable inventory types.

unitQuantity

No

Number (12,4)

This field contains the number of units to be added or reduced. The value should not be 0 and should be a whole number if the standard UOM of the item is EA. The value should be null for Weight-only adjustments which is applicable for Catch weight simple packs and catch weight type 3 and 4 component items having standard UOM as EA.

fromDisposition

No

String (4)

Used to fetch the inv_status. Also used to determine if the adjustment quantity is negative or positive.

toDisposition

No

String (4)

Used to fetch the inv_status. Also used to determine if the adjustment quantity is negative or positive.

userId

Yes

String (30)

This field contains the name of the user who created the inventory adjustment.

createDate

Yes

date-time

This field contains the date and time the inventory adjustment was made. It has a deprecation support for the date only format, yyyy-MM-dd.

poNo

No

String (12)

This field contains either a PO, Allocation, BOL or Transfer number associated to the inventory adjustment based on the doc_type. The value should exist in Merchandising.

documentType

No

String (1)

This field indicates the type of document where the inventory adjustment originated from. Valid values are: P - Purchase Order, T - Transfer, A - Allocation, D - Distro

weight

No

Number (12,4)

This contains the weight of the item. Weight and Weight UOM should both have values or both should be NULL.

weightUom

No

String (4)

This is the unit of measurement for weight. Weight and Weight UOM should both have values, or both should be NULL. This value should belong to the uom_class, MASS.

unitCost

No

Number (20,4)

Contains the current unit cost of the item

weightType

No

String (6)

Indicates whether the weight adjustment is the Total weight (T) or the Weight per unit (WPU). This field is applicable only for Catch weight simple packs and catch weight type 3 and 4 component items having standard UOM as EA.

weightOnlyAdjustment

No

String (1)

Indicates whether the adjustment is only for the weight (Y) or for both stock and weight (N).

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "location": 6000,
      "details": [
        {
          "item": "100100076",
          "adjustmentReasonCode": 99,
          "unitQuantity": 3,
          "fromDisposition": null,
          "toDisposition": "ATS",
          "userId": "BOYLE",
          "createDate": "2001-12-31T23:59:59.123Z",
          "poNo": null,
          "documentType": null,
          "weight": 2.5,
          "weightUom": "KG",
          "unitCost": 9.65,
          "weightType": "WPU",
          "weightOnlyAdjustment": "N"
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-180 Create - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

Collection of item transformations.

Table 5-181 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transformationId

Yes

String (15)

The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level.

location

Yes

Number (10)

The stockholding company store or the stockholding virtual warehouse at which the transformation was performed.

locationType

Yes

String (1)

The type of the location. Valid values are S - Store and W - Warehouse.

transformationDate

No

date

The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'.

workOrderActivity

No

Collection of Object

Collection of all the work order activities involved in the transformation.

transformationInput

Yes

Collection of Object

Collection of the input item details involved in the transformation.

transformationOutput

Yes

Collection of Object

Collection of the output item details involved in the transformation.

Table 5-182 WorkOrderActivity - Object. See list of elements for detail

Element Name Required Data Type Description

activityCode

Yes

String (10)

The activity code corresponding to the work order activity involved in transformation such as labor and packaging cost.

activityCost

No

Number (20,4)

The cost involved in the work order activity.

currencyCode

No

String (3)

The currency in which the activity cost is provided. If the value is null and an activity cost is provided, then it is assumed that the given activity cost is in the location's currency.

Table 5-183 TransformationInput - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

The transaction level or below transaction level item which was used as an input item or as an output item in the transformation activity.

disposition

No

String (10)

This value is used to determine if the quantity of the input/output item consumed/generated in the transformation is from available or unavailable inventory buckets based on the dispositions INV_STATUS value in the INV_STATUS_CODES table.

quantity

Yes

Number (12,4)

The quantity consumed for the input item or the quantity generated for the output item.

quantityUom

No

String (4)

The UOM corresponding to the quantity value. It should be a UOM from the same uom class as that of the uom class of the Standard UOM of the item.

weightType

No

String (6)

Indicates whether the WEIGHT is the Total weight (T) or the Weight per unit (WPU). Valid values are defined in code detail with code type INVW.

weight

No

Number (12,4)

Weight of the item utilized (input) or generated (output). For weight type Total, the given weight is the Total weight for the quantity utilized or generated.

weightUom

No

String (4)

Unit of Measure of the weight.

Table 5-184 CreateError - Object. See list of elements for detail

Element Name Required Data Type Description

itemTransformationError

Yes

Collection of Object

Collection of Item transformation error records.

Table 5-185 ItemTransformationError - Object. See list of elements for detail

Element Name Required Data Type Description

transformationId

Yes

String (15)

The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level.

location

Yes

Number (10)

The stockholding company store or the stockholding virtual warehouse at which the transformation was performed.

locationType

Yes

String (1)

The type of the location. Valid values are S - Store and W - Warehouse.

transformationDate

Yes

date

The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'.

errors

Yes

Array of String

Collection of error messages.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "transformationId": "10001",
      "location": 1531,
      "locationType": "S",
      "transformationDate": "2001-12-31",
      "workOrderActivity": [
        {
          "activityCode": "12122",
          "activityCost": 10,
          "currencyCode": "USD"
        }
      ],
      "transformationInput": [
        {
          "item": "101050103",
          "disposition": "ATS",
          "quantity": 2,
          "quantityUom": "EA",
          "weightType": "WPU",
          "weight": 2.5,
          "weightUom": "KG"
        }
      ],
      "transformationOutput": [
        {
          "item": "101050103",
          "disposition": "ATS",
          "quantity": 2,
          "quantityUom": "EA",
          "weightType": "WPU",
          "weight": 2.5,
          "weightUom": "KG"
        }
      ]
    }
  ]
}
Response Code: 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-186 CreateError - Object. See list of elements for detail

Element Name Required Data Type Description

itemTransformationError

Yes

Collection of Object

Collection of Item transformation error records.

Table 5-187 ItemTransformationError - Object. See list of elements for detail

Element Name Required Data Type Description

transformationId

Yes

String (15)

The external reference id corresponding to a transformation. This should be unique at LOCATION and TRANSFORMATION DATE level.

location

Yes

Number (10)

The stockholding company store or the stockholding virtual warehouse at which the transformation was performed.

locationType

Yes

String (1)

The type of the location. Valid values are S - Store and W - Warehouse.

transformationDate

Yes

date

The date of transformation. This can be a past or present date in reference to the Vdate. Valid format is 'yyyy-mm-dd'.

errors

Yes

Array of String

Collection of error messages.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    {
      "itemTransformationError": [
        {
          "transformationId": "String",
          "location": 190104,
          "locationType": "?",
          "transformationDate": "2001-12-31",
          "errors": [
            "String"
          ]
        }
      ]
    }
  ]
}

Returns To Vendor

The following services are included in this functional area:

Return to Vendor Download Service

The following services are included in this functional area:

RTV Publish Services
Endpoints
MerchIntegrations/services/inventory/rtv
MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Functional Area

Inventory – Returns to Vendor

Business Overview

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

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/rtv? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Input Parameters for MerchIntegrations/services/inventory/rtv
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

offsetkey

No

String

Offset Key. Valid Value is combination of sort_order_seq and node id.

limit

No

BigDecimal

Pagination limit. Default Value is 1000.

Input Parameters for MerchIntegrations/services/inventory/rtv/{rtvOrderNo}
Parameter Name Required Data Type Description

rtvOrderNo

Yes

Number

This number uniquely identifies the return to vendor within the system.

Output - RTV Head
Name Data Type Description

action

String

Action for the RTV record. Valid values are INSERT, UPDATE and DELETE.

rtvOrderNo

Number

The number that uniquely identifies the return to vendor within the system.

supplier

Number

The supplier site to which the merchandise is being returned.

supplierName

String

The supplier site’s name in the system's primary language.

status

String

The status of the return. Valid values include: 10 - Approved and 20 – Cancelled.

location

Number

The store or virtual warehouse number from which the return will occur.

locationType

String

The type of location returning the items. Valid values are store (S) or warehouse (W).

physicalLocation

Number

The store number or the physical warehouse from which the items are being returned.

totalOrderAmount

Number

The total amount of the return in the supplier's currency.

shipToAddress1

String

The first line of the supplier's address for returns.

shipToAddress2

String

The second line of the supplier's address for returns.

shipToAddress3

String

The third line of the supplier's address for returns.

shipToCity

String

The city name of the supplier's address for returns.

state

String

The state code of the supplier's address for returns.

shipToCountry

String

The country ID of the supplier's address for returns.

shipToPostalCode

String

The postal code of the supplier's address for returns.

returnAuthorizationNo

String

The number that the supplier provides when the decision is made that an order may be returned, if required.

returnCourier

String

The courier’s name if the supplier requires that returns be sent by a designated carrier.

freightCharge

Number

The freight cost associated with the vendor return. This field is stored in the supplier's currency.

creationDate

String

The date the vendor return was created.

completedDate

String

The date the vendor return was completed (for updates only).

restockingPercentage

Number

The handling (restocking) percent charged to the retailer for returns, if specified.

restockingCost

Number

The handling (restocking) percent charged to the retailer for returns, if specified.

externalReferenceNo

String

Reference number used in an external system; only applicable if the RTV was initiated in the store or warehouse (for updates only).

comments

String

Comments associated with the return.

notAfterDate

String

The last date that the return can be shipped to the vendor.

massReturnTransferNo

Number

This field holds the unique identifier for the Mass Return Transfer (MRT) if the RTV is created through a MRT.

shipToJurisdictionCode

String

This field Identifies the jurisdiction code for the country-state relationship.

rtvOriginatedInd

String

This identifies the source of a specific return present in the table. It will distinguish the RTVs originating from different sources. Valid values are: MAN - Manual, EXTGEN -Externally Generated, MRT - Mass Return Transfer, CUST - Customer Return, TSF -Transfer, ALLOC - Allocation, OWNCHG - Ownership Change. Default value is MAN.

createDateTime

String

This field holds the record creation date.

updateDateTime

String

This field holds the date when the record was last updated.

Details

RTV details

customFlexAttribute

Custom flex attributes of the RTV.

cacheTimestamp

String

This field specifies date and time when the RTV record was last maintained.

Output - RTV Details
Name Data Type Description

item

String

Unique identifier for the item.

shipment

Number

The RTV shipment number.

invStatus

String

The inventory status code. Only applicable if the reason field has a value of 'U' for unavailable inventory.

quantityRequested

Number

The quantity of items requested to be returned to the supplier.

unitCost

Number

The cost per unit for the SKU being returned in the supplier's currency.

Reason

String

The cost per unit for the SKU being returned in the supplier's currency.

sequenceNo

Number

The sequence number of the RTV detail record that is being deleted.

quantityCancelled

Number

The difference between qty_requested and qty_returned. This is updated after the RTV has been shipped.

quantityReturned

Number

This field contains the quantity of this item that was shipped to the supplier on this RTV.

restockPercentage

Number

This field contains the Restocking Fee percentage applicable to the item. This is the fee as percentage of the total return value charged by the supplier for recovering the expenses that may have to be incurred while restocking them at suppliers location.

originalUnitCost

Number

This field contains the current weighted average cost for the item at the return location.

updatedByRmsInd

String

This field indicates if the last update to RTV_DETAIL table is done by RMS or an external application. If by RMS, then the indicator will be set to Y and a message will be published to external systems; otherwise, the indicator will be set to N and a message will not be published to external systems.

createDateTime

String

Date time when record was inserted.

updateDateTime

string

Date time when record was updated.

Output - Custom Flex Attributes
Name Data Type Description

name

String

This field will hold the custom flex attribute name.

value

String

This field will hold the numeric or string value of the custom flex attribute.

valueDate

String

This field will hold the date value of the custom flex attribute.

createDateTime

String

This field will hold the date time when the custom flex attribute was inserted.

updateDateTime

String

This field will hold the date time when the custom flex attribute was last updated.

Elements in JSON Output
Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false.

limit

This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed.

For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response.

links

“self” : This contains URI pointing to current page.

“next”: This contains URI pointing to the next page of results.

Example JSON output:

{
  "items": [
    {
      "action": "NO_CHANGE",
      "rtvOrderNo": 0,
      "supplier": 0,
      "supplierName": "string",
      "status": 0,
      "location": 0,
      "locationType": "string",
      "physicalLocation": 0,
      "totalOrderAmount": 0,
      "shipToAddress1": "string",
      "shipToAddress2": "string",
      "shipToAddress3": "string",
      "shipToCity": "string",
      "state": "string",
      "shipToCountry": "string",
      "shipToPostalCode": "string",
      "returnAuthorizationNo": "string",
      "returnCourier": "string",
      "freightCharge": 0,
      "creationDate": "string",
      "completedDate": "string",
      "restockingPercentage": 0,
      "restockingCost": 0,
      "externalReferenceNo": "string",
      "comments": "string",
      "notAfterDate": "string",
      "massReturnTransferNo": 0,
      "shipToJurisdictionCode": "string",
      "originInd": "string",
      "createDateTime": "string",
      "updateDateTime": "string",
      "details": [
        {
          "item": "string",
          "shipment": "string",
          "invStatus": "string",
          "quantityRequested": 0,
          "unitCost": 0,
          "reason": "string",
          "sequenceNo": 0,
          "quantityCancelled": 0,
          "quantityReturned": 0,
          "restockPercentage": 0,
          "originalUnitCost": 0,
          "updatedByRmsInd": "string",
          "createDateTime": "string",
          "updateDateTime": "string"
        }
      ],
      "customFlexAttribute": [
        {
          "name": "string",
          "value": "string",
          "valueDate": "string",
          "createDateTime": "string",
          "updateDateTime": "string"
        }
      ],
      "rtvOriginatedInd": "string",
      "cacheTimestamp": "string"
    }
  ],
  "hasMore": true,
  "limit": 0,
  "count": 0,
  "links": [
    "SELF_LINK"
  ]
}
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

No

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

MERCHAPI_ASYNC_REQUEST

Yes

No

No

No

MERCH_BATCH_PARAM

Yes

No

No

No

ICL_RMS_RTV

Yes

No

Yes

Yes

MERCHAPI_EXT_RTV

Yes

Yes

Yes

Yes

V_ MERCHAPI_EXT_RTV _JSON

Yes

No

No

No

Return to Vendor Upload Service

The following services are included in this functional area:

Manage Returns to Vendor
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-188 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of return to vendor details.

Table 5-189 Items - Object. See list of elements for detail

Element Name Required Data Type Description

rtvNo

No

Number (10)

Contains the number that uniquely identifies the return to vendor within the system. If both the rtvNo and extRefNo are provided, it is assumed that an existing externally generated RTV that contains the same rtvNo/extRefNo combination needs to be updated. If no match is found, then the service will return an error. In order to create a new return to vendor, the rtvNo field must be blank. When updating a return to vendor that was initiated in Merchandising, both the rtvNo and extRefNo must be provided but only the rtvNo is expected to match since the extRefNo is blank for these types of RTVs.

location

Yes

Number (10)

Contains the location number that the items are returned from. If the location is a store, the STORE column gets populated with the location value, and the WH column is defaulted to -1. If the location is a warehouse, the WH column gets populated.

externalReferenceNo

Yes

String (30)

Audit trail reference to external system when an external transaction initiates master record creation in Merchandising.

returnAuthorizationNo

No

String (12)

Contains the number that the supplier provides when the decision is made that an order may be returned. This value is not always required and is determined by vendor level data.

supplier

Yes

Number (10)

Contains the supplier ID to which the merchandise is being returned.

shipToAddress1

No

String (240)

Contains the first line of the supplier's address for returns.

shipToAddress2

No

String (240)

Contains the second line of the supplier's address for returns.

shipToAddress3

No

String (240)

Contains the third line of the supplier's address for returns.

shipToState

No

String (3)

Contains the state of the supplier's address for returns.

shipToCity

No

String (120)

Contains the city name of the supplier's address for returns.

shipToPostalCode

No

String (30)

Contains the zip code of the supplier's address for returns.

shipToCountry

No

String (3)

Contains the country ID of the supplier's address for returns.

createdDate

No

date

Contains the date the vendor return was created.

status

No

String (1)

This value is used to determine the current status of the return. If this is 'A', Merchandising will set the status to 10 (Approved). If this is 'P', Merchandising will set the status to 12 (In Progress). If this is 'S' or null, it will be set to 15 (Shipped). If this is 'C', Merchandising will set the status to 20 (Cancelled).

comments

No

String (2000)

Contains any comments associated with the return.

details

No

Collection of Object

References a collection of items on the RTV. If no details are provided for the RTV status being updated from Approved to Shipped, then the quantity requested for all the items that are present in the RTV will be shipped.

customFlexAttribute

No

Collection of Object

References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL.

ConsignmentVendorRtvInd

No

String (1)

This indicator determine whether the RTV being interfaced is a Consignment Vendor RTV.

Table 5-190 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

Unique identifier for the item on the RTV.

unitQuantity

Yes

Number (12,4)

Contains the item quantity that is being returned to the supplier under this RTV number. When updating the quantity in an RTV, the value of the return/requested quantity will be increased if the unit quantity provided is positive whereas a negative unit quantity will increase the quantity cancelled. This quantity cannot be negative for RTVs in shipped status, and should always be greater than zero when creating a new RTV detail record.

fromDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

unitCost

No

Number (20,4)

Contains the cost per unit for the SKU being returned. This field is stored in the supplier's currency.

reason

No

String (6)

Contains the value identifying the reason for the return. Valid values are: Q - QC Failed, U - Unavailable Inventory. Other values may also be entered via the codes table under code type 'RTVR', however, the two codes listed previously may never be deleted. Note that any value added can only be related to RTV from existing inventory (e. g. overstock).

weight

No

Number (12,4)

Contains the actual weight shipped for the items on the RTV. This should not be provided for RTVs in the approved status.

weightUom

No

String (4)

Unit of Measure for the weight (e. g. pounds, kilograms).

Table 5-191 CustomFlexAttribute - Object. See list of elements for detail

Element Name Required Data Type Description

name

Yes

String (30)

Holds the attribute name.

value

No

String (250)

Holds the numeric or string value of the attribute.

valueDate

No

date

Holds the date value of the attribute.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "rtvNo": 188295,
      "location": 1521,
      "externalReferenceNo": "RETURN01",
      "returnAuthorizationNo": "5522014",
      "supplier": 2400,
      "shipToAddress1": "2243 Pennys Way",
      "shipToAddress2": null,
      "shipToAddress3": null,
      "shipToState": "ORE",
      "shipToCity": "Woodburn",
      "shipToPostalCode": "4522",
      "shipToCountry": "US",
      "createdDate": "2001-12-31",
      "status": "A",
      "comments": "creating RTV via ReST service",
      "details": [
        {
          "item": "100100068",
          "unitQuantity": 3,
          "fromDisposition": "ATS",
          "unitCost": 9.65,
          "reason": "O",
          "weight": 1,
          "weightUom": "KG"
        }
      ],
      "customFlexAttribute": [
        {
          "name": "COMMENT",
          "value": "CFA Comment creating RTV via ReST service",
          "valueDate": "2001-12-31"
        }
      ],
      "ConsignmentVendorRtvInd": "Y"
    }
  ]
}
Response Code: 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 can be used by external applications to get all or selected receiver unit adjustments and its details from Merchandising.

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/receiverunitadj? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

offsetkey

No

String

Offset Key. Valid Value is an order ID.

limit

No

BigDecimal

Pagination limit. Default Value is 1000.

Output
Name Data Type Description

action

String

Action for RUA details. Valid Value is INSERT.

location

Number

This field uniquely identifies the location.

locationType

String

This field determine, type of the location. The location will be a store if Location type is S, a Warehouse if Location type is W

orderNo

Number

This field contains unique identifier for the order, against which a receiver unit adjustment was performed.

asnNo

String

This field holds the advanced shipment notification number associated with the shipment for which a receiver unit adjustment was performed

item

String

This field holds the ID of the item.

containerId

String

This field holds the unique identifier for the carton that contained the item against which the receiver unit adjustment was performed.

unitQuantity

Number

This field holds the quantity of the receiver unit adjustment.

fromDisposition

String

This field contains a value which along with the to disposition value, is used to determine if the inventory is available or unavailable

toDisposition

String

This field contains the value to determine if the inventory is available or unavailable based in the value of INV_STATUS column in the INV_STATUS_CODES table.

cacheTimestamp

String

This field specifies date and time when RUA record was last maintained.

Table 5-192 Elements in JSON Output

Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false.

limit

This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed.

For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response.

links

“self” : This contains URI pointing to current page.

“next”: This contains URI pointing to the next page of results.

Example JSON input:

{
  "items": [
    {
      "action": "INSERT",
      "location": 1515,
      "locationType": "S",
      "orderNo": 10001,
      "asnNo": "10001",
      "item": "100500002",
      "containerId": "carton10001",
      "unitQuantity": 50,
      "fromDisposition": "ATS",
      "toDisposition": null,
      "cacheTimestamp": "2022-02-03T19:23:17.357Z"
    },
    {
      "action": "INSERT",
      "location": 1515,
      "locationType": "S",
      "orderNo": 10001,
      "asnNo": "10001",
      "item": "100500002",
      "containerId": "carton10001",
      "unitQuantity": 5,
      "fromDisposition": null,
      "toDisposition": "ATS",
      "cacheTimestamp": "2022-02-03T19:23:17.357Z"
    }
  ],
  "hasMore": false,
  "limit": 10000,
  "count": 2,
  "links": [
    {
      "href": "https://<hostname>:<portnumber>/MerchIntegrations/services/inventory/receiverunitadj?limit=10000&since=1970-01-01T00:00:00.001Z&before=2022-04-07T06:10:22.454797+00:00",
      "rel": "self"
    }
  ]
}
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

Yes

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

MERCH_BATCH_PARAM

Yes

No

No

No

ICL_RMS_RCV_UNIT_ADJ

Yes

No

Yes

Yes

MERCHAPI_EXT_RCV_UNIT_ADJ

No

Yes

No

Yes

SYSTEM_OPTIONS

Yes

No

No

No

Shipment and Receipt Download Service

The following services are included in this functional area:

Get Shipment Detail

This section describes the Shipment Detail Service.

Business Overview

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

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
Availability During Nightly Batch Cycle

This service will not be available when batches affecting either inventory or cost are in-progress.

Input Payload Details

Table 5-193 Create - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of DSD Receipts.

Table 5-194 Items - Object. See list of elements for detail

Element Name Required Data Type Description

supplier

Yes

Number (10)

This field contains the unique identifying number for a supplier for the receipt.

originCountry

Yes

String (3)

This field contains the identifier of the country from which the item is being sourced.

store

Yes

Number (10)

This field contains the location where the items were delivered.

dept

No

Number (4)

The department in which all the items on the order belong.

currencyCode

Yes

String (3)

This field contains a code identifying the currency the supplier uses for business transactions.

paidInd

Yes

String (1)

This field indicates if the invoice has already been paid. Valid values are Y (invoice has already been paid) or N (invoice should be paid in accounts payable system).

externalReferenceNo

No

String (30)

If the invoice indicator is Y (invoice has been created), the external reference number, proof of delivery number, or payment reference number must be provided.

proofOfDeliveryNo

No

String (30)

This field contains the proof of delivery or service number given at the time of receipt at the store. This field will also be included when the invoice is interfaced through Sales Audit.

paymentReferenceNo

No

String (16)

This field contains the reference number attached to the invoice payment, used when the invoice is paid from the POS system and interfaced through Sales Audit.

paymentDate

No

date

This field contains the date when the invoice was paid from the POS system. This field will be populated when the invoice is interfaced through Sales Audit.

invoiceInd

Yes

String (1)

This field indicates whether an invoice was created for this receipt by the supplier. Valid values are Yes (Y) and No (N).

dealsInd

Yes

String (1)

This field indicates whether deals need to be applied to the DSD Purchase Order or not. Valid values are Yes (Y) and No (N).

externalReceiptNo

No

String (17)

This field holds the external transaction sequence number for the receipt.

receiptDate

No

date

This field contains the date of the receipt.

details

No

Collection of Object

References a collection of DSD Receipt detail records.

nonMerchDetails

No

Collection of Object

References a collection of DSD Non Merchandise detail records.

Table 5-195 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This field contains the item in the receipt. The item must be an approved item that is at transaction level or above.

quantityReceived

Yes

Number (12,4)

This field contains the number of items received for the item/shipment combination. The value must be greater than 0.

unitCost

No

Number (20,4)

This field contains the cost of the item from the supplier/origin country in the supplier's currency.

weight

No

Number (12,4)

This field contains the weight of the item in the receipt, if it is a catch weight item.

weightUom

No

String (4)

This field contains the unit of measure of the received weight.

Table 5-196 NonMerchDetails - Object. See list of elements for detail

Element Name Required Data Type Description

nonMerchCode

Yes

String (6)

This field contains the non-merchandising code that will be added to an invoice for services or other non-merchandise costs associated with the order.

nonMerchAmount

Yes

Number (20)

This field contains the amount of the non-merchandise cost that was invoiced. This field will be held in the invoice currency.

vatCode

No

String (6)

This field contains the code identifying the VAT rate that should be applied to the non-merchandise amount entered.

servicePerformedInd

Yes

String (1)

Indicates if a service non-merchandise cost has actually been performed. Valid values are 'Y' (service has been performed) or 'N' (service has not been performed or non-merchandise cost is not a service cost).

Sample Input Message

{
  "items": [
    {
      "supplier": 2400,
      "originCountry": "US",
      "store": 1531,
      "dept": 1117,
      "currencyCode": "USD",
      "paidInd": "Y",
      "externalReferenceNo": "REF1531",
      "proofOfDeliveryNo": null,
      "paymentReferenceNo": null,
      "paymentDate": "2001-12-31",
      "invoiceInd": "Y",
      "dealsInd": "Y",
      "externalReceiptNo": "RECREF1531",
      "receiptDate": "2001-12-31",
      "details": [
        {
          "item": "100750001",
          "quantityReceived": 3,
          "unitCost": 9.65,
          "weight": 79.00,
          "weightUom": null
        }
      ],
      "nonMerchDetails": [
        {
          "nonMerchCode": "B720",
          "nonMerchAmount": 123456,
          "vatCode": "S",
          "servicePerformedInd": "N"
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-197 Create - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of ASN details.

Table 5-198 Items - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

No

Number (10)

Contains the location that the shipment will be delivered to.

fromLocation

Yes

Number (10)

For transfer and allocation shipments, this field will hold the location from which the shipment was sourced.

cartonQuantity

No

Number (6)

Contains the number of boxes associated with the shipment.

asnNo

No

String (30)

Holds the bill of lading number associated with a shipment. This field will be persisted in the bol_no column of the Shipment table in Merchandising.

bolNo

Yes

String (17)

Holds the transaction sequence number on the message from the transfer shipment confirmation process. This field will be persisted in the ext_ref_no_out column of the Shipment table in Merchandising.

shipDate

No

date

This field contains the date the transfer or PO was shipped.

estimatedArrivalDate

No

date

This field contains the estimated arrival date of a vendor PO shipment. It is updated by EDIUP856. It is used for vendor/lead time analysis.

comments

No

String (2000)

Contains any miscellaneous comments about the shipment.

carrierCode

No

String (4)

Contains the courier that will deliver the shipment.

shipmentDetails

No

Collection of Object

Description is not available.

Table 5-199 ShipmentDetails - Object. See list of elements for detail

Element Name Required Data Type Description

distroNo

Yes

String (12)

Specifies the transfer or allocation number associated with the shipment/item/carton.

distroDocumentType

Yes

String (1)

Specifies what the distro_nbr field corresponds to in Merchandising: V, D, and T specify transfer, A specifies Allocation.

customerOrderNo

No

String (48)

This is the customer order number that was generated by OMS and contains multiple fulfillment numbers.

fulfillOrderNo

No

String (48)

Based on a customer order - OMS will generate fulfillments to specific locations based on availability. RMS will generate Transfers based on the fulfillment request.

comments

No

String (2000)

Not used by RMS.

cartons

Yes

Collection of Object

Description is not available.

Table 5-200 Cartons - Object. See list of elements for detail

Element Name Required Data Type Description

carton

Yes

String (30)

Identifies the UCC-128 carton number for shipments originating from the Advance Shipment Notification process as carton shipments. This field will be zero for all shipments that are not at a carton level.

weight

No

Number (12,4)

Actual weight shipped for the container.

weightUom

No

String (4)

Unit of measurement for weight (e. g. pounds, kilograms) that was shipped.

items

Yes

Collection of Object

Description is not available.

Table 5-201 Cartons.Items - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

Unique identifier for the item.

unitQuantity

Yes

Number (12,4)

Contains the number of items expected to be received based on the supplier's advance shipment notification for this item/shipment combination.

fromDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

unitCost

No

Number (20,4)

Contains the unit cost of the item in the shipment.

baseCost

No

Number (20,4)

This value will be used to get the base cost (BC) from RFM for a transfer, which will flow into RMS.

weight

No

Number (12,4)

Actual weight shipped.

weightUom

No

String (4)

Unit of measurement for weight (e. g. pounds, kilograms) shipped.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "toLocation": 1221,
      "fromLocation": 1151,
      "cartonQuantity": 5,
      "asnNo": "ASN-100100990",
      "bolNo": "BOL-100100990",
      "shipDate": "2001-12-31",
      "estimatedArrivalDate": "2001-12-31",
      "comments": "Shipment for transfer 100100990",
      "carrierCode": "FDX",
      "shipmentDetails": [
        {
          "distroNo": "100100990",
          "distroDocumentType": "T",
          "customerOrderNo": null,
          "fulfillOrderNo": null,
          "comments": "Shipment for transfer 100100990",
          "cartons": [
            {
              "carton": "CRTN10001",
              "weight": 3,
              "weightUom": "KG",
              "items": [
                {
                  "item": "100100991",
                  "unitQuantity": 10,
                  "fromDisposition": "ATS",
                  "unitCost": 9.65,
                  "baseCost": 10.65,
                  "weight": 3,
                  "weightUom": "KG"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-202 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of ASN details for deletion.

Table 5-203 Items - Object. See list of elements for detail

Element Name Required Data Type Description

asnNo

Yes

String (30)

Not used in Merchandising.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "asnNo": "ASN-464690028"
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-204 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of ASN details.

Table 5-205 Items - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

No

Number (10)

Contains the location that the shipment will be delivered to. For purchase orders this will always be either a store or a physical warehouse.

asnNo

Yes

String (30)

Not used in Merchandising.

shipDate

Yes

date

This field contains the date the transfer or PO was shipped.

estimatedArrivalDate

No

date

This field contains the estimated arrival date of a vendor PO shipment. It is updated by EDIUP856. It is used for vendor/lead time analysis.

comments

No

String (2000)

Contains any comments about the shipment.

carrierCode

No

String (4)

This column contains a code that indicates the carrier that is involved in the shipment.

asnType

Yes

String (1)

This field is used to determine the ship origin. If asn_type is 'C', ship_origin will be set to '6' (ASN UCC-128) upon insert to the SHIPMENT table. Otherwise, SHIP_ORIGIN is defaulted to '0' (ASN Shipment).

supplier

Yes

Number (10)

Contains the supplier who will provide the merchandise specified in the order. This element is used to validate the order number(s) in ASNInPO (ASNInPO. po_nbr). The order number must be in the table ORDHEAD, in either the ORDER_NO column or VENDOR_ORDER_NO column.

shipPayMethod

No

String (2)

This column indicates the payment terms for freight charges associated with the order. Valid values are found in code type SHMT. Examples are Collect (CC), Collected Freight Credited Back to Cust (CF) and Defined by Buyer and Seller (DF).

asnDetails

Yes

Collection of Object

References a collection of ASN details.

Table 5-206 AsnDetails - Object. See list of elements for detail

Element Name Required Data Type Description

orderNo

Yes

Number (12)

Identifies the order number which relates to the goods delivered in the shipment. Validated against the ORDHEAD table, and also the SHIPMENT table if the message applies to an existing shipment.

notAfterDate

No

date

This field contains the last date that delivery of the order will be accepted.

containers

No

Collection of Object

References a collection of shipment cartons.

items

No

Collection of Object

References a collection of items and item details.

Table 5-207 Containers - Object. See list of elements for detail

Element Name Required Data Type Description

containerId

Yes

String (30)

Holds the UCC-128 carton number.

finalLocation

Yes

Number (10)

This will be the final destination of the carton. For a cross-dock order this will be the allocation location, otherwise it will be the direct to order location.

items

Yes

Collection of Object

References a collection of items and item details.

Table 5-208 Containers.Items - Object. See list of elements for detail

Element Name Required Data Type Description

item

No

String (25)

Unique identifier for the item. Either vpn, item_id, or ref_item must be specified in the message.

unitQuantity

Yes

Number (12,4)

This column contains the quantity of the item that is expected to be received.

vpn

No

String (30)

This column contains the vendor product number used to find the item number. Either VPN, item number, or reference item must be specified in the message.

referenceItem

No

String (25)

The column contains a bar code or reference item. Either VPN, item number, or reference item must be specified in the message.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "toLocation": 2,
      "asnNo": "ASN-464690028",
      "shipDate": "2001-12-31",
      "estimatedArrivalDate": "2001-12-31",
      "comments": "commentDesc",
      "carrierCode": "FDX",
      "asnType": "C",
      "supplier": 2400,
      "shipPayMethod": "PO",
      "asnDetails": [
        {
          "orderNo": 464690028,
          "notAfterDate": "2001-12-31",
          "containers": [
            {
              "containerId": "00152100-1",
              "finalLocation": 1521,
              "items": [
                {
                  "item": "103900095",
                  "unitQuantity": 3,
                  "vpn": "vpn-00152100-1-103900095",
                  "referenceItem": null
                }
              ]
            }
          ],
          "items": [
            {
              "item": "103900095",
              "unitQuantity": 3,
              "vpn": "vpn-00152100-1-103900095",
              "referenceItem": null
            }
          ]
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-209 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of receipt records.

Table 5-210 Items - Object. See list of elements for detail

Element Name Required Data Type Description

appointmentNo

No

Number (9)

Unique identifier for receiving a group of items.

receipts

Yes

Collection of Object

References a collection of customer order receipts.

receiptOverages

No

Collection of Object

Contains the Receipt Overage Information. This optional overage node is ignored by Merchandising. This overage group is used by Retail Fiscal Management system to differentiate whether an item or item quantity was not received due to specific reason codes (such as "damaged", for example).

Table 5-211 Receipts - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID.

distroNo

No

String (12)

Specified the unique identifier of the purchase order, allocation or transfer.

documentType

Yes

String (1)

Specified whether the receipt is for an allocation 'A', purchase order 'P', or transfer 'T'. Types 'D' and 'V' are also valid document types that are treated the same as transfers.

referenceDocumentNo

No

Number (10)

Contains a reference number for a document associated to the shipment (e.g., Fiscal Document ID for Brazilian based transactions).

asnNo

No

String (30)

Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations.

receiptType

No

String (2)

This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.

fromLocation

No

Number (10)

Contains the source location of the shipment.

fromLocationType

No

String (1)

Contains the from location type of the shipment. Valid values are W - Warehouse, E - External Finisher and S - Store.

status

No

String (1)

Indicates the status of the ASN received. This field is used only for stock order receiving and a status of C indicates that the entire ASN is will be set to closed.

receiptDetails

No

Collection of Object

References a collection of receipt details.

cartons

No

Collection of Object

References a collection of container details.

Table 5-212 ReceiptDetails - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

Specifies the item on the allocation, purchase order, or transfer that has been received.

receivedQuantity

Yes

Number (12,4)

Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure.

receiptTransactionType

Yes

String (1)

Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type.

receiptDate

No

date

Identifies the date on which the transaction was received.

externalReferenceNo

Yes

String (17)

An externally generated identifier corresponding to the receipt of the item at the location.

distroLocation

No

Number (10)

Only used for purchase order receipt, when the purchase order has an allocation attached to it. This element specifies the location to which the allocation is being sent.

containerId

No

String (30)

Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments.

refContainerId

No

String (30)

Identifies the original carton number the item was shipped under, if it was being received at the wrong destination. This is required by Merchandising to process the updates correctly, as SIOCS reassigns the container ID at the receiving location.

distroNo

No

String (12)

Only used for purchase order receipts, when the purchase order has an allocation attached to it. This element contains the allocation id.

distroDocumentType

No

String (1)

Only used for purchase orders, when the purchase order has an allocation attached to it. When populated, this value should always be A to specify an allocation.

toDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

fromDisposition

No

String (4)

This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided.

unitCost

No

Number (20,4)

Used for purchase order receipts when configured for Global Tax (GTS) where the location’s country is localized. Otherwise, it is ignored except in scenarios where there is an unexpected item on the receipt, in which case it can be optionally included to indicate the receipt cost of the item. If not included for unexpected receipts, the default supplier cost is used. Cost is converted to the order’s currency before insert/update.

shippedQuantity

No

Number (12,4)

Only used for doc_type of 'P'. Updates the number of items expected to be received, originally set by the ASN process.

weight

No

Number (12,4)

Contains the actual weight of the item received for the shipment. This will be included for some catch weight items.

weightUom

No

String (4)

Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL.

grossCost

No

Number (20,4)

Contains the Unit cost and Expenses incurred on an item in a particular transaction.

dummyCartonInd

No

String (1)

Indicates if this carton is a dummy carton. This field is only used for transfer receipts.

tamperedCartonInd

No

String (1)

Indicates if the carton was tampered. This field is only used for transfer receipts.

itemLineNo

No

Number (10)

This field indicates the item line number from customer orders.

Table 5-213 Cartons - Object. See list of elements for detail

Element Name Required Data Type Description

cartonStatus

No

String (1)

Denotes the status of the carton received. It can be Actual (A), Dummy (D), Overage (O), or Closed (C). This field is used only for stock order receiving. A status of C indicates that the entire container is missing and the missing stock will be reconciled in RMS.

containerId

No

String (30)

Contains the carton ID for the shipment.

receiptTransactionType

Yes

String (1)

Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type.

receiptDate

No

date

This field contains the date on which the carton is received.

externalReferenceNo

No

String (17)

This field holds the externally generated number when the shipment is received at the location.

toDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

weight

No

Number (12,4)

Contains the actual weight of the item received for the shipment. This will be included for some catch weight items.

weightUom

No

String (4)

Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL.

Table 5-214 ReceiptOverages - Object. See list of elements for detail

Element Name Required Data Type Description
orderNo No String (12) Contains purchase order number.
details No Collection of Object References a collection of Overage Receipt Detail Information

Table 5-215 Details - Object. See list of elements for detail

Element Name Required Data Type Description
item No String (25) Unique identifier for the item.
overageQuantity No Number (12,4) Contains the quantity of the item received at the location as overage, damaged etc.
reasonCode No Number (4) Contains the rejection reason code or overage reason code.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "appointmentNo": 2,
      "receipts": [
        {
          "location": 1111,
          "distroNo": "100000055001",
          "documentType": "T",
          "referenceDocumentNo": 531121,
          "asnNo": "ASN_11223344_2",
          "receiptType": "BL",
          "fromLocation": 2,
          "fromLocationType": "W",
          "status": null,
          "receiptDetails": [
            {
              "item": "106400029",
              "receivedQuantity": 3,
              "receiptTransactionType": "R",
              "receiptDate": "2001-12-31",
              "externalReferenceNo": "ERN_10091",
              "distroLocation": 2,
              "containerId": "CTN_1_ASN_11223344_2",
              "refContainerId": null,
              "distroNo": "100000055001",
              "distroDocumentType": "A",
              "toDisposition": "ATS",
              "fromDisposition": "ATS",
              "unitCost": 9.65,
              "shippedQuantity": 3,
              "weight": 3,
              "weightUom": "KG",
              "grossCost": 9.65,
              "dummyCartonInd": "Y",
              "tamperedCartonInd": "Y",
              "itemLineNo": null
            }
          ],
          "cartons": [
            {
              "cartonStatus": "A",
              "containerId": "CTN_1_ASN_11223344_2",
              "receiptTransactionType": "R",
              "receiptDate": "2001-12-31",
              "externalReferenceNo": "ERN_10091",
              "toDisposition": "ATS",
              "weight": 3,
              "weightUom": "KG"
            }
          ]
        }
      ],
      "receiptOverages": [
        {
          "orderNo": "545005",
          "details": [
            {
              "item": "106400029",
              "overageQuantity": 24,
              "reasonCode": 3
            }
          ]
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-216 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of receipt records.

Table 5-217 Items - Object. See list of elements for detail

Element Name Required Data Type Description

appointmentNo

No

Number (9)

Unique identifier for receiving a group of items.

receipts

Yes

Collection of Object

References a collection of purchase order receipts.

receiptOverages

No

Collection of Object

Contains the Receipt Overage Information. This optional overage node is ignored by MFCS. This overage group is used by Retail Fiscal Management system to differentiate whether an item or item quantity was not received due to specific reason codes such as damaged for example.

Table 5-218 Receipts - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID.

orderNo

No

Number (12)

Specified the unique identifier of the purchase order, allocation or transfer.

referenceDocumentNo

No

Number (10)

Contains a reference number for a document associated to the shipment (e.g., Fiscal Document ID for Brazilian based transactions).

asnNo

No

String (30)

Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations.

receiptDetails

No

Collection of Object

References a collection of receipt details.

Table 5-219 ReceiptDetails - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

Specifies the item on the allocation, purchase order, or transfer that has been received.

receivedQuantity

Yes

Number (12,4)

Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure.

receiptTransactionType

Yes

String (1)

Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type.

receiptDate

No

date

Identifies the date on which the transaction was received.

externalReferenceNo

Yes

String (17)

An externally generated identifier corresponding to the receipt of the item at the location.

distroLocation

No

Number (10)

Only used for purchase order receipt, when the purchase order has an allocation attached to it. This element specifies the location to which the allocation is being sent.

containerId

No

String (30)

Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments.

distroNo

No

String (12)

Only used for purchase order receipts, when the purchase order has an allocation attached to it. This element contains the allocation id.

distroDocumentType

No

String (1)

Only used for purchase orders, when the purchase order has an allocation attached to it. When populated, this value should always be A to specify an allocation.

toDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

fromDisposition

No

String (4)

This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided.

unitCost

No

Number (20,4)

Used for purchase order receipts when configured for Global Tax (GTS) where the location’s country is localized. Otherwise, it is ignored except in scenarios where there is an unexpected item on the receipt, in which case it can be optionally included to indicate the receipt cost of the item. If not included for unexpected receipts, the default supplier cost will be used. Cost is converted to the order’s currency before insert/update.

shippedQuantity

No

Number (12,4)

Only used for doc_type of 'P'. Updates the number of items expected to be received, originally set by the ASN process.

weight

No

Number (12,4)

Contains the actual weight of the item received for the shipment. This will be included for some catch weight items.

weightUom

No

String (4)

Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL.

grossCost

No

Number (20,4)

Contains the Unit cost and Expenses incurred on an item in a particular transaction.

itemLineNo

No

Number (10)

This field indicates the item line number from customer orders.

Table 5-220 ReceiptOverages - Object. See list of elements for detail

Element Name Required Data Type Description

orderNo

No

String (12)

Specifies the unique identifier of the purchase order.

details

No

Collection of Object

References a collection of Overage Receipt Detail Information

Table 5-221 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

No

String (25)

Unique identifier for the item.

overageQuantity

No

Number (12,4)

Contains the quantity of the item received at the location as overage, damaged etc.

reasonCode

No

Number (4)

Contains the rejection reason code or overage reason code.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "appointmentNo": 1,
      "receipts": [
        {
          "location": 1211,
          "orderNo": 545005,
          "referenceDocumentNo": 531121,
          "asnNo": "PO_54005_2",
          "receiptDetails": [
            {
              "item": "106400029",
              "receivedQuantity": 3,
              "receiptTransactionType": "R",
              "receiptDate": "2001-12-31",
              "externalReferenceNo": "Receipt_531121",
              "distroLocation": null,
              "containerId": null,
              "distroNo": null,
              "distroDocumentType": null,
              "toDisposition": "ATS",
              "fromDisposition": "ATS",
              "unitCost": 10,
              "shippedQuantity": 5,
              "weight": 5,
              "weightUom": "KG",
              "grossCost": 10.5,
              "itemLineNo": null
            }
          ]
        }
      ],
      "receiptOverages": [
        {
          "orderNo": "545005",
          "details": [
            {
              "item": "106400029",
              "overageQuantity": 24,
              "reasonCode": 3
            }
          ]
        }
      ]
    }
  ]
}
Response Code: 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-222 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of receipt records.

Table 5-223 Items - Object. See list of elements for detail

Element Name Required Data Type Description

appointmentNo

No

Number (9)

Unique identifier for receiving a group of items.

receipts

Yes

Collection of Object

References a collection of transfer receipts.

Table 5-224 Receipts - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

Indicates the location that has processed the receipt. For stores, this will be the store ID. For warehouses, this will be the physical warehouse ID.

distroNo

No

String (12)

Specified the unique identifier of the purchase order, allocation or transfer.

documentType

Yes

String (1)

Specified whether the receipt is for an allocation 'A', purchase order 'P', or transfer 'T'. Types 'D' and 'V' are also valid document types that are treated the same as transfers.

asnNo

No

String (30)

Used to relate the receipt message to the previous ASN message. This field is required for transfers and allocations.

receiptType

No

String (2)

This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.This field is used in receiving transfers or allocations to determine if the receipt is at the BOL level (BL) or SKU level (SK). If not provided, the value will be defaulted to SK. It is not used for a PO receipt.

fromLocation

No

Number (10)

Contains the source location of the shipment.

fromLocationType

No

String (1)

Contains the from location type of the shipment. Valid values are W - Warehouse, E - External Finisher and S - Store.

status

No

String (1)

Indicates the status of the ASN received. This field is used only for stock order receiving and a status of C indicates that the entire ASN is will be set to closed.

receiptDetails

No

Collection of Object

References a collection of receipt details.

cartons

No

Collection of Object

References a collection of container details.

Table 5-225 ReceiptDetails - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

Specifies the item on the allocation, purchase order, or transfer that has been received.

receivedQuantity

Yes

Number (12,4)

Contains the quantity received for the allocation, purchase order, or transfer in the standard unit of measure.

receiptTransactionType

Yes

String (1)

Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type.

receiptDate

No

date

Identifies the date on which the transaction was received.

externalReferenceNo

Yes

String (17)

An externally generated identifier corresponding to the receipt of the item at the location.

containerId

No

String (30)

Identifies the carton number for shipments originating from the Advance Shipment Notification process as carton shipments.

refContainerId

No

String (30)

Identifies the original carton number the item was shipped under, if it was being received at the wrong destination. This is required by Merchandising to process the updates correctly, as SIOCS reassigns the container ID at the receiving location.

toDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

fromDisposition

No

String (4)

This value is used to determine inventory availability. Valid values are in the INV_STATUS_CODES table. The from disposition is used when the to disposition is not provided.

weight

No

Number (12,4)

Contains the actual weight of the item received for the shipment. This will be included for some catch weight items.

weightUom

No

String (4)

Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL.

dummyCartonInd

No

String (1)

Indicates if this carton is a dummy carton. This field is only used for transfer receipts.

tamperedCartonInd

No

String (1)

Indicates if the carton was tampered. This field is only used for transfer receipts.

Table 5-226 Cartons - Object. See list of elements for detail

Element Name Required Data Type Description

cartonStatus

No

String (1)

Denotes the status of the carton received. It can be Actual (A), Dummy (D), Overage (O), or Closed (C). This field is used only for stock order receiving. A status of C indicates that the entire container is missing and the missing stock will be reconciled in RMS.

containerId

No

String (30)

Contains the carton ID for the shipment.

receiptTransactionType

Yes

String (1)

Specifies whether the receipt detail line item is for a 'R'eceipt, 'T'ransshipment, or 'A'djustment. For purchase order receiving, Transshipments are not allowed. For stock order (ie. Allocation and Transfer) receiving, Transshipments are handled the same way as 'R'eceipt type.

receiptDate

No

date

This field contains the date on which the carton is received.

externalReferenceNo

No

String (17)

This field holds the externally generated number when the shipment is received at the location.

toDisposition

No

String (4)

This value is used to determine if the inventory is available or unavailable, based on the code's INV_STATUS value on the INV_STATUS_CODES table.

weight

No

Number (12,4)

Contains the actual weight of the item received for the shipment. This will be included for some catch weight items.

weightUom

No

String (4)

Contains the unit of measure of the received weight (e.g., pounds, kilograms) where UOM class is of type MASS. Weight and Weight UOM must both be populated, or both must be NULL.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "appointmentNo": 2,
      "receipts": [
        {
          "location": 1111,
          "distroNo": "100000055001",
          "documentType": "T",
          "asnNo": "ASN_11223344_2",
          "receiptType": "BL",
          "fromLocation": 2,
          "fromLocationType": "W",
          "status": null,
          "receiptDetails": [
            {
              "item": "104100022",
              "receivedQuantity": 3,
              "receiptTransactionType": "R",
              "receiptDate": "2001-12-31",
              "externalReferenceNo": "ERN_10091",
              "containerId": "CTN_1_ASN_11223344_2",
              "refContainerId": null,
              "toDisposition": "ATS",
              "fromDisposition": "ATS",
              "weight": 3,
              "weightUom": "KG",
              "dummyCartonInd": "Y",
              "tamperedCartonInd": "Y"
            }
          ],
          "cartons": [
            {
              "cartonStatus": "A",
              "containerId": "CTN_1_ASN_11223344_2",
              "receiptTransactionType": "R",
              "receiptDate": "2001-12-31",
              "externalReferenceNo": "ERN_10091",
              "toDisposition": "ATS",
              "weight": 3,
              "weightUom": "KG"
            }
          ]
        }
      ]
    }
  ]
}
Response Code: 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 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
Availability During Nightly Batch Cycle

This service will not be available when batches affecting either inventory or cost are in-progress.

Input Payload Details

Table 5-227 Update - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of DSD Receipts.

Table 5-228 Items - Object. See list of elements for detail

Element Name Required Data Type Description

supplier

Yes

Number (10)

This field contains the unique identifying number for a supplier for the receipt.

store

Yes

Number (10)

This field contains the location where the items were delivered.

externalReceiptNo

No

String (17)

This field holds the external transaction sequence number for the receipt.

receiptDate

No

date

This field contains the date of the receipt.

details

No

Collection of Object

References a collection of DSD Receipt detail records.

Table 5-229 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

This field contains the item in the receipt. The item must be an approved item that is at transaction level or above.

quantityReceived

Yes

Number (12,4)

This field contains the number of items received for the item/shipment combination. The value must be greater than 0.

unitCost

No

Number (20,4)

This field contains the cost of the item from the supplier/origin country in the supplier's currency.

weight

No

Number (12,4)

This field contains the weight of the item in the receipt, if it is a catch weight item.

weightUom

No

String (4)

This field contains the unit of measure of the received weight.

Sample Input Message

{
  "items": [
    {
      "supplier": 2400,
      "store": 1531,
      "externalReceiptNo": "RECREF1531",
      "receiptDate": "2001-12-31",
      "details": [
        {
          "item": "100750001",
          "quantityReceived": 3,
          "unitCost": 9.65,
          "weight": 3,
          "weightUom": null
        }
      ]
    }
  ]
}
Response Code: 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-230 Create - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of stock count schedule records.

Table 5-231 Items - Object. See list of elements for detail

Element Name Required Data Type Description

cycleCount

Yes

Number (8)

Contains the number which uniquely identifies the stock or cycle count.

description

Yes

String (250)

This field contains a description of the cycle or stock count which, along with the cycle count number, identifies the cycle or stock count.

locationType

Yes

String (1)

This field contains an indicator which identifies whether the cycle count will be for Stores or Warehouses. Valid values are Store (S) and Warehouse (W).

stocktakeDate

Yes

date

Contains the date on which the stock or cycle count even will take place.

merchandiseHierarchy

No

Collection of Object

References a collection of merchandies hierarchies to be included in the stock count. If not present, all departments will be included in the count.

locations

No

Collection of Object

References a collection of locations to be included in the stock count.

Table 5-232 MerchandiseHierarchy - Object. See list of elements for detail

Element Name Required Data Type Description

dept

Yes

Number (4)

This field contains the department number where the cycle count will occur. If the value = -1, the stock count will apply to all departments. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

class

No

Number (4)

This field contains the class number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

subclass

No

Number (4)

This field contains the subclass number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

Table 5-233 Locations - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "cycleCount": 1001,
      "description": "Cycle count 1001",
      "locationType": "S",
      "stocktakeDate": "2001-12-31",
      "merchandiseHierarchy": [
        {
          "dept": 3041,
          "class": 1,
          "subclass": 1
        }
      ],
      "locations": [
        {
          "location": 6000
        }
      ]
    }
  ]
}
Response Code: 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-234 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

cycleCount

Yes

Number (8)

Contains the number which uniquely identifies the stock or cycle count.

locations

No

Collection of Object

References a collection of locations to be deleted from the stock count.

Table 5-235 Locations - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising.

Sample Input Message

{
  "cycleCount": 1001,
  "locations": [
    {
      "location": 6000
    }
  ]
}
Response Code: 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-236 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

cycleCount

Yes

Number (8)

Contains the number which uniquely identifies the stock or cycle count.

Sample Input Message

{
  "cycleCount": 1001
}
Response Code: 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-237 Update - Object. See list of elements for detail

Element Name Required Data Type Description

cycleCount

Yes

Number (8)

Contains the number which uniquely identifies the stock or cycle count.

description

Yes

String (250)

This field contains a description of the cycle or stock count which, along with the cycle count number, identifies the cycle or stock count.

locationType

Yes

String (1)

This field contains an indicator which identifies whether the cycle count will be for Stores or Warehouses. Valid values are Store (S) and Warehouse (W).

stocktakeDate

Yes

date

Contains the date on which the stock or cycle count even will take place.

merchandiseHierarchy

No

Collection of Object

References a collection of merchandies hierarchies to be included in the stock count. If not present, all departments will be included in the count.

locations

No

Collection of Object

References a collection of locations to be included in the stock count.

Table 5-238 MerchandiseHierarchy - Object. See list of elements for detail

Element Name Required Data Type Description

dept

Yes

Number (4)

This field contains the department number where the cycle count will occur. If the value = -1, the stock count will apply to all departments. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

class

No

Number (4)

This field contains the class number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

subclass

No

Number (4)

This field contains the subclass number where the cycle count will occur. The dept/class/subclass hierarchy must be a valid hierarchy in Merchandising.

Table 5-239 Locations - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

This field contains the store or warehouse number on the cycle count. This must be a valid store or a stockholding warehouse in Merchandising.

Sample Input Message

{
  "cycleCount": 1001,
  "description": "Cycle count 1001",
  "locationType": "S",
  "stocktakeDate": "2001-12-31",
  "merchandiseHierarchy": [
    {
      "dept": 3041,
      "class": 1,
      "subclass": 1
    }
  ],
  "locations": [
    {
      "location": 6000
    }
  ]
}
Response Code: 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 – Allocations

Business Overview

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

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/allocation? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
Input Parameters
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

offsetkey

No

String

Offset Key. Valid Value is warehouse id and ware house type.

limit

No

BigDecimal

Pagination limit. Default Value is 1000.

Output
Name Data Type Description

action

String

Action for Allocation details. Valid Values are INSERT, UPDATE and DELETE.

allocNo

Number

This field specifies the number that uniquely identifies the allocation within the system.

docType

String

This field specifies type that is source for allocation.

physicalWarehouse

Number

This field specifies number that is used to identify physical warehouse for virtual warehouse.

warehouse

Number

This field specifies number which uniquely identifies the warehouse.

item

String

This field specifies unique alphanumeric value that identifies the item.

pickNotBeforeDate

String

This field specifies first date on which the allocation should be released from the warehouse for delivery to the store locations.

pickNotAfterDate

String

This field specifies last date on which the allocation should be released from the warehouse for delivery to the store locations.

orderType

String

This field specifies identifies the type of the order. Allocations created against Purchase Orders will be marked as PREDIST order types. Allocations created against Warehouse stock will be populated with the DEFAULT_ORDER_TYPE from the SYSTEM_OPTIONS table which can be AUTOMATIC, MANUAL or WAVE.

orderNo

Number

This field specifies order number to which the allocation applies.

orderDocType

String

This field specifies order type and defaulted to ‘P’.

priority

Number

This field specifies the priority of an allocation. This field is defaulted to 1.

ticketTypeId

String

This field uniquely identifies the ticket type which is associated with the item.

contextType

String

This field specifies functional area code to which the transfer relates to, for example, Promotions. Valid values are: PROM - Promotion.

contextValue

String

This field specifies value relating to the context type, for example, Promotion Number.

allocStatus

String

This field specifies status of the allocation.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the date when the record was last updated.

details

 

This list holds detail records for the allocation.

cacheTimestamp

String

This field specifies date and time when allocation record was last maintained.

Table 5-240 details

Name Data Type Description

physicaltoLocation

Number

This field specifies physical warehouse of virtual warehouse, provide to location is a warehouse.

toLocation

Number

This field specfies location to which the allocation is being sent.

locationType

String

This field specfies type of location in the location field. Valid values are Store and Warehouse.

storeType

String

This field specfies if the store is company or franchise store and not populated in case of warehouse.

stockholdingInd

String

This field specfies indicates whether the store can hold stock. In a non-multichannel environment, field is defaulted to Y.Not populated in case of warehouse.

quantityAllocated

Number

This column contains the total number of items allocated.

price

Number

This field specifies unit retail price in the selling unit retail.

sellingUom

String

This field specifies selling unit of measure for an item.

priority

Number

This field specifies the priority of an allocation details. This field is defaulted to 1.

storeOrderMultiple

String

This field contains the multiple in which the item needs to be shipped from a warehouse to the location.

inStoreDate

String

This field contains the date to be included in the publication to communication for warehouse.

rushFlag

String

This field contains rush flag indicator to be included in the publication to communication for warehouse.

createDateTime

String

This field holds the record creation date.

updateDateTime

String

This field holds the date when the record was last updated.

detailsTicket

 

This List holds attributes for details of allocation details ticket record.

Table 5-241 detailsTicket

Name Data Type Description

componentItem

String

This field specifies Alphanumeric value that identifies the component item within the pack.

componentPrice

Number

This field specifies unit retail price in the selling unit retail of the component item within the pack. 

componentSellingUom

String

This field specifies selling unit of measure for an component item within the pack.

Table 5-242 Elements in JSON Output

Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false.

limit

This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed.

For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response.

links

“self” : This contains URI pointing to current page.

“next”: This contains URI pointing to the next page of results.

Example JSON input:

" {
  "items": [
    {
      "action": "INSERT",
      "allocNo": 5002,
      "docType": "A",
      "physicalWarehouse": 440,
      "warehouse": 441,
      "item": "100500002",
      "pickNotBeforeDate": "2022-02-16",
      "pickNotAfterDate": "2022-03-18",
      "orderType": "AUTOMATIC",
      "orderNo": null,
      "orderDocType": "P",
      "priority": 1,
      "ticketTypeId": null,
      "contextType": null,
      "contextValue": null,
      "allocStatus": "A",
      "createDateTime": "2022-02-16T19:06:31.000Z",
      "updateDateTime": "2022-02-16T19:06:31.000Z",
      "details": [
        {
          "physicaltoLocation": 8811,
          "toLocation": 8811,
          "locationType": "S",
          "storeType": "C",
          "stockholdingInd": "Y",
          "quantityAllocated": 1,
          "price": 12.22,
          "sellingUom": "EA",
          "priority": 1,
          "storeOrderMultiple": "E",
          "inStoreDate": "2022-02-17",
          "rushFlag": null,
          "createDateTime": "2022-02-16T19:06:31.000Z",
          "updateDateTime": "2022-02-16T19:06:31.000Z",
          "detailsTicket": null
        }
      ],
      "cacheTimestamp": "2022-04-06T11:36:30.809Z"
    },
    {
      "action": "INSERT",
      "allocNo": 5003,
      "docType": "A",
      "physicalWarehouse": 440,
      "warehouse": 441,
      "item": "100500002",
      "pickNotBeforeDate": "2022-02-16",
      "pickNotAfterDate": "2022-03-18",
      "orderType": "AUTOMATIC",
      "orderNo": null,
      "orderDocType": "P",
      "priority": 1,
      "ticketTypeId": null,
      "contextType": null,
      "contextValue": null,
      "allocStatus": "A",
      "createDateTime": "2022-02-16T19:27:43.000Z",
      "updateDateTime": "2022-02-16T19:27:43.000Z",
      "details": [
        {
          "physicaltoLocation": 1515,
          "toLocation": 1515,
          "locationType": "S",
          "storeType": "C",
          "stockholdingInd": "Y",
          "quantityAllocated": 1,
          "price": 12.22,
          "sellingUom": "EA",
          "priority": 1,
          "storeOrderMultiple": "E",
          "inStoreDate": "2022-02-17",
          "rushFlag": null,
          "createDateTime": "2022-02-16T19:27:43.000Z",
          "updateDateTime": "2022-02-16T19:27:43.000Z",
          "detailsTicket": null
        }
      ],
      "cacheTimestamp": "2022-04-06T11:36:31.628Z"
    }
  ],
  "hasMore": true,
  "limit": 2,
  "count": 2,
  "links": [
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/allocation?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-08T12:19:48.608912+00:00",
      "rel": "self"
    },
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/allocation?offsetkey=5003&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-08T12:19:48.608912+00:00",
      "rel": "next"
    }
  ]
}"
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

No

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

MERCHAPI_ASYNC_REQUEST

Yes

No

No

No

MERCH_BATCH_PARAM

Yes

No

No

No

ICL_RMS_ALLOC

Yes

No

Yes

Yes

MERCHAPI_EXT_ALLOC

Yes

Yes

Yes

No

V_MERCHAPI_EXT_ALLOC_JSON

Yes

No

No

No

SYSTEM_OPTIONS

Yes

No

No

No

Get Details for an Allocation

This section describes the Allocation Detail service.

Business Overview

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

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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-243 Close - Object. See list of elements for detail

Element Name Required Data Type Description

items

No

Collection of Object

References a collection of allocations.

Table 5-244 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Create Allocation Details
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-245 Create - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of allocations.

Table 5-246 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

allocationDescription

Yes

String (300)

Contains the user defined description of the allocation.

orderNo

No

Number (12)

Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order.

item

Yes

String (25)

Contains the transaction level item that is being allocated.

fromLocation

Yes

Number (10)

Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse.

documentNo

No

String (30)

Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order.

documentType

No

String (5)

Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided.

details

No

Collection of Object

References a collection of allocation details.

Table 5-247 Details - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

Yes

Number (10)

Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse.

toLocationType

Yes

String (1)

Contains the type of the destination location. Valid values are S (store) and W (warehouse).

quantityAllocated

Yes

Number (12,4)

Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value.

inStoreDate

No

date

Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse.

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222,
      "allocationDescription": "Allocation to 1311.",
      "orderNo": 585036,
      "item": "2147483647",
      "fromLocation": 10001,
      "documentNo": null,
      "documentType": null,
      "details": [
        {
          "toLocation": 6000,
          "toLocationType": "S",
          "quantityAllocated": 3,
          "inStoreDate": "2001-12-31"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Create Allocations
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 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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-248 Create - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of allocations.

Table 5-249 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

allocationDescription

Yes

String (300)

Contains the user defined description of the allocation.

orderNo

No

Number (12)

Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order.

item

Yes

String (25)

Contains the transaction level item that is being allocated.

fromLocation

Yes

Number (10)

Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse.

releaseDate

No

date

Contains the earliest date on which the warehouse should ship the allocation.

originInd

No

String (6)

Indicates the source application that sends the allocation. Valid values are 'AIP' and 'EG'. It will be defaulted to 'EG' in Merchandising if not defined.

documentNo

No

String (30)

Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order.

documentType

No

String (5)

Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided.

contextType

No

String (6)

Contains the functional area code to which the allocation relates to. Valid codes are defined in the CNTX code type. Examples are Promotion, Repairing.

contextValue

No

String (25)

Contains the value relating to the context type. Example: Promotion Number.

details

No

Collection of Object

References a collection of allocation details

Table 5-250 Details - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

Yes

Number (10)

Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse.

toLocationType

Yes

String (1)

Contains the type of the destination location. Valid values are S (store) and W (warehouse).

quantityAllocated

Yes

Number (12,4)

Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value.

inStoreDate

No

date

Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse.

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222,
      "allocationDescription": "Allocation to 1311.",
      "orderNo": 585036,
      "item": "2147483647",
      "fromLocation": 10001,
      "releaseDate": "2001-12-31",
      "originInd": "EG",
      "documentNo": null,
      "documentType": null,
      "contextType": "PROM",
      "contextValue": "79890",
      "details": [
        {
          "toLocation": 6000,
          "toLocationType": "S",
          "quantityAllocated": 3,
          "inStoreDate": "2001-12-31"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Delete Allocation Details
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-251 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

items

No

Collection of Object

References a collection of allocations.

Table 5-252 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

details

No

Collection of Object

References a collection of allocation details

Table 5-253 Details - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

Yes

Number (10)

Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse.

toLocationType

Yes

String (1)

Contains the type of the destination location. Valid values are S (store) and W (warehouse).

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222,
      "details": [
        {
          "toLocation": 1311,
          "toLocationType": "S"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Update Allocation Details
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-254 Update - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of allocations.

Table 5-255 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

orderNo

No

Number (12)

Contains the purchase order with which the allocation is associated. Only used if the source for the allocation is a purchase order.

item

Yes

String (25)

Contains the transaction level item that is being allocated.

fromLocation

Yes

Number (10)

Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse.

documentNo

No

String (30)

Contains identification number for a transfer, another allocation, bill of landing number (BOL), or advanced shipping notice (ASN) number for a purchase order. This field is populated according to documentation type and indicates where the inventory for the allocation should be sourced. This should be null if the source for the allocation is warehouse inventory or a purchase order.

documentType

No

String (5)

Contains the type of allocation product source. Valid values are ASN, Transfer (TSF), Bill of Lading (BOL), or Allocation (ALLOC). When this is passed in as null, the source is assumed to be a PO or warehouse inventory if not PO number provided.

details

No

Collection of Object

References a collection of allocation details.

Table 5-256 Details - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

Yes

Number (10)

Contains the destination location of the allocation. This must be an active stockholding store or virtual warehouse.

toLocationType

Yes

String (1)

Contains the type of the destination location. Valid values are S (store) and W (warehouse).

quantityAllocated

Yes

Number (12,4)

Contains the allocated quantity of the item for the destination location. When the allocation is being created this value must be a positive integer. If this value is being modified, it will contain the quantity adjusted (positive or negative), rather than an override value.

inStoreDate

No

date

Contains the date the item is to be in store. This date will be included in the Merchandising publication for communication to the warehouse.

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222,
      "orderNo": 585036,
      "item": "2147483647",
      "fromLocation": 10001,
      "documentNo": null,
      "documentType": null,
      "details": [
        {
          "toLocation": 6000,
          "toLocationType": "S",
          "quantityAllocated": 3,
          "inStoreDate": "2001-12-31"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Update Allocations
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 and the release date can be modified at the header level.

Service Type

PUT

ReST URL
MerchIntegrations/services/inventory/allocations/update
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-257 Update - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of allocations.

Table 5-258 Items - Object. See list of elements for detail

Element Name Required Data Type Description

allocationNo

Yes

Number (10)

Contains the unique identifier of the allocation. This should fall within the range of Merchandising IDs already designated for allocations.

allocationDescription

Yes

String (300)

Contains the user defined description of the allocation.

item

Yes

String (25)

Contains the transaction level item that is being allocated.

fromLocation

Yes

Number (10)

Contains the location that is the source of the allocation. This must be a valid stockholding virtual warehouse.

releaseDate

No

date

Contains the earliest date on which the warehouse should ship the allocation.

contextType

No

String (6)

Contains the actual purpose behind the creation of the allocation in the overall business setup. Valid codes need to be defined in the code type = 'CNTX'. E.g. - Promotion, Repairing, etc.

contextValue

No

String (25)

Contains the value related to the specified context type, wherever applicable. E.g.: Promotion ID when the context type is set as 'Promotion'.

Sample Input Message

{
  "items": [
    {
      "allocationNo": 102881222,
      "allocationDescription": "Allocation to 1311.",
      "item": "2147483647",
      "fromLocation": 10001,
      "releaseDate": "2001-12-31",
      "contextType": "REPAIR",
      "contextValue": "71256"
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

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

Mobile Workflow Transfer Download Service

The following services are included in this functional area:

Create Transfer - Get From Locations for Transfer

This section describes the Search From Location service.

Business Overview

This service retrieves locations applicable for inventory transfer. Location can be searched by either 'S'tore or 'W'arehouse. Then enter a location number, a partial location number, a location description, or a partial location description in the search string.

The locations returned are constrained by the following criteria:

  • When search type is warehouse only virtual warehouses are returned.

  • Only stockholding location.

  • When search type is store then only open stores are returned.

  • When items are sent as input then only locations with available inventory are returned.

  • When To Location is sent as input then:

    • It cannot be the same as the To Location.

    • When transfer type is Manual Requisition, then only locations with the same Transfer Entity/Set of Books as the To Location are returned in the search results.

    • When the transfer type is Intercompany, then only locations with a different Transfer Entity/Set of Books to the To Location are returned in the search results.

    • Only locations in the same transfer zone are returned in the search results.

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-259 TsfItemSearchRDO

Parameter Name Data Type

item

String

itemDesc

String

dept

BigDecimal

availQty

BigDecimal

averageCost

BigDecimal

unitRetail

BigDecimal

currencyCode

String

standardlUnitOfMeasure

String

suppPackSize

BigDecimal

innerPackSize

BigDecimal

itemImageUrl

String

Table 5-260 PagedResultsRDO

Parameter Name Data Type

totalRecordCount

BigDecimal

Next Page URL

String

Previous Page URL

String

JSON Structure

{
    "links": [
        {
            "href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=3",
            "rel": "next",
            "type": "GET",
            "methodType": null
        },
        {
            "href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=1",
            "rel": "prev",
            "type": "GET",
            "methodType": null
        }
    ],
    "totalRecordCount": 51,
    "results": [
        {
            "links": [],
            "item": "100001406",
            "itemDesc": "DIT Test 11:Black:Extra Small",
            "dept": 1102,
            "availQty": 100,
            "averageCost": 5,
            "unitRetail": 7.26,
            "currencyCode": "USD",
            "standardlUnitOfMeasure": "CKG",
            "suppPackSize": 1,
            "innerPackSize": 1,
            "itemImageUrl": null,
            "hyperMediaContent": {
                "linkRDO": []
            }
        }
    ],
    "hyperMediaContent": {
        "linkRDO": [
            {
                "href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=3",
                "rel": "next",
                "type": "GET",
                "methodType": null
            },
            {
                "href": "/Transfer/item?itemSearchType=ITEM&searchString=Black&fromLocation=363640301&pageSize=1&pageNumber=1",
                "rel": "prev",
                "type": "GET",
                "methodType": null
            }
        ]
    }
}
Table Impact
TABLE SELECT INSERT UPDATE DELETE

ALLOC_HEADER

Yes

No

No

No

ALLOC_DETAIL

Yes

No

No

No

DAILY_PURGE

Yes

No

No

No

ITEM_LOC

Yes

No

No

No

ITEM_LOC_SOH

Yes

No

No

No

ITEM_IMAGE

Yes

No

No

No

ITEM_SUPPLIER

Yes

No

No

No

ITEM_SUPP_COUNTRY

Yes

No

No

No

ORDHEAD

Yes

No

No

No

STORE

Yes

No

No

No

V_ITEM_MASTER

Yes

No

No

No

WH

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

JOB_AUDIT_PAYLOAD

No

Yes

No

No

Create Transfer - Get Next Transfer Numbers

Business Overview

This service retrieves the next available transfer numbers from Merchandising. This service takes an optional query parameter of count to retrieve multiple (up to 999) transfer numbers. The count defaults to 1 if the query parameter is not provided.

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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-261 Manage - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of stock order status records.

Table 5-262 Items - Object. See list of elements for detail

Element Name Required Data Type Description

location

Yes

Number (10)

Contains the location number of the stock order source location.

distroNo

No

String (12)

This field contains the stock order number. This is either the transfer or allocation number in Merchandising.

distroType

Yes

String (1)

This field specifies whether the stock order status pertains to an allocation (A) or transfer (T - transfers created in Merchandising, D - transfers created in a warehouse management system or S - transfers created in a store inventory system) that is already existing in Merchandising. Customer Order (C), and Virtual Distro (V) are also valid document types but will be ignored by Merchandising.

contextType

No

String (6)

This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR).

contextValue

No

String (25)

This field holds the value relating to the context type like promotion number.

inventoryType

No

String (6)

This field indicates if a transfer is made from the available (A) or unavailable (U) inventory.

customerOrderNo

No

String (48)

This field holds the master customer order number for a stock order associated with a customer order.

fulfillOrderNo

No

String (48)

This field holds the number related to the fulfillment details for a stock order associated with a customer order. One or more fulfillment orders could relate back to a single customer order.

details

Yes

Collection of Object

References a collection of stock order details.

Table 5-263 Details - Object. See list of elements for detail

Element Name Required Data Type Description

toLocation

Yes

Number (10)

Contains the location number of the stock order receiving location.

toLocationType

Yes

String (1)

Type of stock order receiving location. Valid values are: 'S' - Store, 'W' - Warehouse, 'E' - Finisher.

item

Yes

String (25)

This contains the unique identifier for the item.

unitQuantity

No

Number (12,4)

This field contains the difference between the number of item units shipped versus the receiving count for the given item. This is subtracted from the document-line-item-unit-count to yield an over/under variance between what a supplier said was shipped and what was counted and received at by the store's staff.

status

Yes

String (2)

This field contains the status of the stock order. Valid values are: Accepted (SI), Rejected (SD), Distributed (PP), Un-Distributed (PU), Details Selected (DS), Details Un-selected (DU), WMS Line Cancellation (NI), Return To Stock (RS), Expired (EX), and Store Reassign (SR). Statuses other than listed are ignored by Merchandising.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "location": 2,
      "distroNo": "100000190000",
      "distroType": "T",
      "contextType": "PROM",
      "contextValue": "2255",
      "inventoryType": "A",
      "customerOrderNo": null,
      "fulfillOrderNo": null,
      "details": [
        {
          "toLocation": 1211,
          "toLocationType": "S",
          "item": "102900034",
          "unitQuantity": 10,
          "status": "SI"
        }
      ]
    }
  ]
}
Response Code: 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"
    }
  ]
}

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

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-264 details

Name Data Type Description

item

String

This field specifies unique alphanumeric value that identifies the item.

transferQuantity

Number

This field specifies total quantity of the item reserved at the from location for this transfer.

price

Number

This field specifies unit retail price in the selling unit of measure for the item/location combination.

sellingUom

String

This field specifies selling unit of measure of the item.

expediteFlag

String

This field is determined from transfer's freight code field.

storeOrderMultiple

String

This field specifies multiple in which the item needs to be shipped from a warehouse to the location.

transferOrderLinkNo

Number

This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e. warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer.

ticketTypeId

String

This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e., warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer.

ticketDetails

 

This List holds attributes for details of transfer details ticket record.

invStatus

String

This field specifies inventory status, if one exists, for the transfer detail record. The inventory status field corresponds to the inventory status type found on the INV_STATUS_TYPES table

transactionUom

String

This field specifies original transaction unit of measure to be passed on to the store system. It is only used for customer direct orders coming from the Order Management System. All quantities in the response payload are expressed in item's standard unit of measure.

itemLineNo

String

This field specifies detail item line number for customer order transfers. For other types of transfer this field is not populated.

comments

String

This field specifies any comments associated with the transfer line item.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the date when the record was last updated.

Table 5-265 ticketDetails

Name Data Type Description

componentItem

String

This field specifies Alphanumeric value that identifies the component item within the pack.

componentPrice

Number

This field specifies unit retail price in the selling unit retail of the component item within the pack. 

componentSellingUom

String

This field specifies selling unit of measure for a component item within the pack.

Table 5-266 customFlexAttribute

Name Data Type Description

name

String

This field will hold the custom flex attribute name.

value

String

This field will hold the numeric or string value of the custom flex attribute.

valueDate

String

This field will hold the date value of the custom flex attribute.

createDateTime

String

This field will hold the date time when the custom flex attribute was inserted.

updateDateTime

String

This field will hold the date time when the custom flex attribute was last updated.

Table 5-267 Elements in JSON Output

Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false.

limit

This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed.

For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response.

links

“self” : This contains URI pointing to current page.

“next”: This contains URI pointing to the next page of results.

Example JSON input:

{
  "items": [
    {
      "action": "INSERT",
      "transferNo": 100000005000,
      "docType": "T",
      "physicalFromLocation": 1515,
      "fromLocationType": "S",
      "fromStoreType": "C",
      "fromStockholdingInd": "Y",
      "fromLocation": 1515,
      "physicalToLocation": 8811,
      "toLocationType": "S",
      "toStoreType": "C",
      "toStockholdingInd": "Y",
      "toLocation": 8811,
      "transferType": "MR",
      "pickNotBeforeDate": "2021-12-08",
      "pickNotAfterDate": "2022-01-07",
      "orderType": "AUTOMATIC",
      "breakByDistro": "N",
      "deliveryDate": "2021-12-08",
      "deliverAdd1": null,
      "deliverAdd2": null,
      "deliverCity": null,
      "deliverState": null,
      "deliverPost": null,
      "deliverCountryId": null,
      "comments": null,
      "details": [
        {
          "item": "100500002",
          "transferQuantity": 1,
          "price": 12.22,
          "sellingUom": "EA",
          "expediteFlag": "N",
          "storeOrderMultiple": "E",
          "transferOrderLinkNo": null,
          "ticketTypeId": null,
          "ticketDetails": null,
          "invStatus": null,
          "transactionUom": null,
          "itemLineNo": null,
          "comments": null,
          "createDateTime": "2021-12-08T18:16:04.000Z",
          "updateDateTime": "2021-12-08T18:16:10.000Z"
        }
      ],
      "transferParentNo": null,
      "expectedDcDate": "2021-12-08",
      "approvalId": "RMS_ADMIN",
      "approvalDate": "2021-12-08",
      "fromLocationTransferEntity": 1111,
      "toLocationTransferEntity": 1111,
      "invType": "A",
      "transferStatus": "A",
      "notAfterDate": "2021-12-10",
      "contextType": null,
      "contextValue": null,
      "deliverySlotId": null,
      "deliverySlotDescription": null,
      "customerOrderNo": null,
      "fulfillmentOrderNumber": null,
      "carrierCode": null,
      "carrierServiceCode": null,
      "consumerDeliveryDate": null,
      "consumerDeliveryTime": null,
      "deliverFirstName": null,
      "deliverPhoneticFirst": null,
      "deliverLastName": null,
      "deliverPhoneticLast": null,
      "deliverPreferredName": null,
      "deliverCompanyName": null,
      "deliverAdd3": null,
      "deliverCounty": null,
      "deliverPhone": null,
      "billFirstName": null,
      "billPhoneticFirst": null,
      "billLastName": null,
      "billPhoneticLast": null,
      "billPreferredName": null,
      "billCompanyName": null,
      "billAdd1": null,
      "billAdd2": null,
      "billAdd3": null,
      "billCounty": null,
      "billCity": null,
      "billCountry": null,
      "billPost": null,
      "billState": null,
      "billPhone": null,
      "partialDeliveryInd": null,
      "consumerDirectInd": "N",
      "customFlexAttribute": null,
      "createDateTime": "2021-12-08T00:00:00.000Z",
      "updateDateTime": "2021-12-08T18:16:24.000Z",
      "cacheTimestamp": "2022-04-06T10:00:47.220Z"
    },
    {
      "action": "INSERT",
      "transferNo": 100000015002,
      "docType": "T",
      "physicalFromLocation": 440,
      "fromLocationType": "W",
      "fromStoreType": null,
      "fromStockholdingInd": null,
      "fromLocation": 441,
      "physicalToLocation": 2345,
      "toLocationType": "E",
      "toStoreType": null,
      "toStockholdingInd": null,
      "toLocation": 2345,
      "transferType": "MR",
      "pickNotBeforeDate": "2021-12-20",
      "pickNotAfterDate": "2022-01-19",
      "orderType": "AUTOMATIC",
      "breakByDistro": "N",
      "deliveryDate": "2021-12-21",
      "deliverAdd1": null,
      "deliverAdd2": null,
      "deliverCity": null,
      "deliverState": null,
      "deliverPost": null,
      "deliverCountryId": null,
      "comments": null,
      "details": [
        {
          "item": "100500002",
          "transferQuantity": 3,
          "price": 12.22,
          "sellingUom": "EA",
          "expediteFlag": "N",
          "storeOrderMultiple": "E",
          "transferOrderLinkNo": null,
          "ticketTypeId": null,
          "ticketDetails": null,
          "invStatus": null,
          "transactionUom": null,
          "itemLineNo": null,
          "comments": null,
          "createDateTime": "2021-12-21T14:07:46.000Z",
          "updateDateTime": "2021-12-21T14:07:50.000Z"
        }
      ],
      "transferParentNo": null,
      "expectedDcDate": "2021-12-21",
      "approvalId": "RMS_ADMIN",
      "approvalDate": "2021-12-20",
      "fromLocationTransferEntity": 1111,
      "toLocationTransferEntity": 1111,
      "invType": "A",
      "transferStatus": "A",
      "notAfterDate": "2021-12-22",
      "contextType": null,
      "contextValue": null,
      "deliverySlotId": null,
      "deliverySlotDescription": null,
      "customerOrderNo": null,
      "fulfillmentOrderNumber": null,
      "carrierCode": null,
      "carrierServiceCode": null,
      "consumerDeliveryDate": null,
      "consumerDeliveryTime": null,
      "deliverFirstName": null,
      "deliverPhoneticFirst": null,
      "deliverLastName": null,
      "deliverPhoneticLast": null,
      "deliverPreferredName": null,
      "deliverCompanyName": null,
      "deliverAdd3": null,
      "deliverCounty": null,
      "deliverPhone": null,
      "billFirstName": null,
      "billPhoneticFirst": null,
      "billLastName": null,
      "billPhoneticLast": null,
      "billPreferredName": null,
      "billCompanyName": null,
      "billAdd1": null,
      "billAdd2": null,
      "billAdd3": null,
      "billCounty": null,
      "billCity": null,
      "billCountry": null,
      "billPost": null,
      "billState": null,
      "billPhone": null,
      "partialDeliveryInd": null,
      "consumerDirectInd": "N",
      "customFlexAttribute": null,
      "createDateTime": "2021-12-20T00:00:00.000Z",
      "updateDateTime": "2021-12-21T14:08:42.000Z",
      "cacheTimestamp": "2022-04-06T10:00:48.823Z"
    }
  ],
  "hasMore": true,
  "limit": 2,
  "count": 2,
  "links": [
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
      "rel": "self"
    },
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?offsetkey=100000015002&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
      "rel": "next"
    }
  ]
}
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

Yes

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

MERCHAPI_ASYNC_REQUEST

Yes

No

No

No

MERCH_BATCH_PARAM

Yes

No

No

No

ICL_RMS_TRANSFER

Yes

No

Yes

Yes

MERCHAPI_EXT_TRANSFER

Yes

Yes

Yes

Yes

MERCHAPI_EXT_TRANSFER_CFA

No

Yes

No

Yes

TSFHEAD

Yes

No

No

No

TSFHEAD_CFA_EXT

Yes

No

No

No

V_MERCHAPI_EXT_TSF_JSON

Yes

No

No

No

SYSTEM_OPTIONS

Yes

No

No

No

Get Transfer Details for Provided Transfer
Endpoint
MerchIntegrations/services/inventory/transfer
MerchIntegrations/services/inventory/transfer/{tsfNo}
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-268 details

Name Data Type Description

item

String

This field specifies unique alphanumeric value that identifies the item.

transferQuantity

Number

This field specifies total quantity of the item reserved at the from location for this transfer.

price

Number

This field specifies unit retail price in the selling unit of measure for the item/location combination.

sellingUom

String

This field specifies selling unit of measure of the item.

expediteFlag

String

This field is determined from transfer's freight code field.

storeOrderMultiple

String

This field specifies multiple in which the item needs to be shipped from a warehouse to the location.

transferOrderLinkNo

Number

This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e. warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer.

ticketTypeId

String

This field specifies reference number to link the item on the transfer to any purchase orders that have been created to allow the from location (i.e., warehouse) on the transfer to fulfill the transfer quantity to the to location (i.e. store) on the transfer.

ticketDetails

 

This List holds attributes for details of transfer details ticket record.

invStatus

String

This field specifies inventory status, if one exists, for the transfer detail record. The inventory status field corresponds to the inventory status type found on the INV_STATUS_TYPES table

transactionUom

String

This field specifies original transaction unit of measure to be passed on to the store system. It is only used for customer direct orders coming from the Order Management System. All quantities in the response payload are expressed in item's standard unit of measure.

itemLineNo

String

This field specifies detail item line number for customer order transfers. For other types of transfer this field is not populated.

comments

String

This field specifies any comments associated with the transfer line item.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the date when the record was last updated.

Table 5-269 ticketDetails

Name Data Type Description

componentItem

String

This field specifies Alphanumeric value that identifies the component item within the pack.

componentPrice

Number

This field specifies unit retail price in the selling unit retail of the component item within the pack. 

componentSellingUom

String

This field specifies selling unit of measure for a component item within the pack.

Table 5-270 customFlexAttribute

Name Data Type Description

name

String

This field will hold the custom flex attribute name.

value

String

This field will hold the numeric or string value of the custom flex attribute.

valueDate

String

This field will hold the date value of the custom flex attribute.

createDateTime

String

This field will hold the date time when the custom flex attribute was inserted.

updateDateTime

String

This field will hold the date time when the custom flex attribute was last updated.

Table 5-271 Elements in JSON Output

Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false.

limit

This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed.

For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response.

links

“self” : This contains URI pointing to current page.

“next”: This contains URI pointing to the next page of results.

Example JSON input:

" {
  "items": [
    {
      "action": "INSERT",
      "transferNo": 100000005000,
      "docType": "T",
      "physicalFromLocation": 1515,
      "fromLocationType": "S",
      "fromStoreType": "C",
      "fromStockholdingInd": "Y",
      "fromLocation": 1515,
      "physicalToLocation": 8811,
      "toLocationType": "S",
      "toStoreType": "C",
      "toStockholdingInd": "Y",
      "toLocation": 8811,
      "transferType": "MR",
      "pickNotBeforeDate": "2021-12-08",
      "pickNotAfterDate": "2022-01-07",
      "orderType": "AUTOMATIC",
      "breakByDistro": "N",
      "deliveryDate": "2021-12-08",
      "deliverAdd1": null,
      "deliverAdd2": null,
      "deliverCity": null,
      "deliverState": null,
      "deliverPost": null,
      "deliverCountryId": null,
      "comments": null,
      "details": [
        {
          "item": "100500002",
          "transferQuantity": 1,
          "price": 12.22,
          "sellingUom": "EA",
          "expediteFlag": "N",
          "storeOrderMultiple": "E",
          "transferOrderLinkNo": null,
          "ticketTypeId": null,
          "ticketDetails": null,
          "invStatus": null,
          "transactionUom": null,
          "itemLineNo": null,
          "comments": null,
          "createDateTime": "2021-12-08T18:16:04.000Z",
          "updateDateTime": "2021-12-08T18:16:10.000Z"
        }
      ],
      "transferParentNo": null,
      "expectedDcDate": "2021-12-08",
      "approvalId": "RMS_ADMIN",
      "approvalDate": "2021-12-08",
      "fromLocationTransferEntity": 1111,
      "toLocationTransferEntity": 1111,
      "invType": "A",
      "transferStatus": "A",
      "notAfterDate": "2021-12-10",
      "contextType": null,
      "contextValue": null,
      "deliverySlotId": null,
      "deliverySlotDescription": null,
      "customerOrderNo": null,
      "fulfillmentOrderNumber": null,
      "carrierCode": null,
      "carrierServiceCode": null,
      "consumerDeliveryDate": null,
      "consumerDeliveryTime": null,
      "deliverFirstName": null,
      "deliverPhoneticFirst": null,
      "deliverLastName": null,
      "deliverPhoneticLast": null,
      "deliverPreferredName": null,
      "deliverCompanyName": null,
      "deliverAdd3": null,
      "deliverCounty": null,
      "deliverPhone": null,
      "billFirstName": null,
      "billPhoneticFirst": null,
      "billLastName": null,
      "billPhoneticLast": null,
      "billPreferredName": null,
      "billCompanyName": null,
      "billAdd1": null,
      "billAdd2": null,
      "billAdd3": null,
      "billCounty": null,
      "billCity": null,
      "billCountry": null,
      "billPost": null,
      "billState": null,
      "billPhone": null,
      "partialDeliveryInd": null,
      "consumerDirectInd": "N",
      "customFlexAttribute": null,
      "createDateTime": "2021-12-08T00:00:00.000Z",
      "updateDateTime": "2021-12-08T18:16:24.000Z",
      "cacheTimestamp": "2022-04-06T10:00:47.220Z"
    },
    {
      "action": "INSERT",
      "transferNo": 100000015002,
      "docType": "T",
      "physicalFromLocation": 440,
      "fromLocationType": "W",
      "fromStoreType": null,
      "fromStockholdingInd": null,
      "fromLocation": 441,
      "physicalToLocation": 2345,
      "toLocationType": "E",
      "toStoreType": null,
      "toStockholdingInd": null,
      "toLocation": 2345,
      "transferType": "MR",
      "pickNotBeforeDate": "2021-12-20",
      "pickNotAfterDate": "2022-01-19",
      "orderType": "AUTOMATIC",
      "breakByDistro": "N",
      "deliveryDate": "2021-12-21",
      "deliverAdd1": null,
      "deliverAdd2": null,
      "deliverCity": null,
      "deliverState": null,
      "deliverPost": null,
      "deliverCountryId": null,
      "comments": null,
      "details": [
        {
          "item": "100500002",
          "transferQuantity": 3,
          "price": 12.22,
          "sellingUom": "EA",
          "expediteFlag": "N",
          "storeOrderMultiple": "E",
          "transferOrderLinkNo": null,
          "ticketTypeId": null,
          "ticketDetails": null,
          "invStatus": null,
          "transactionUom": null,
          "itemLineNo": null,
          "comments": null,
          "createDateTime": "2021-12-21T14:07:46.000Z",
          "updateDateTime": "2021-12-21T14:07:50.000Z"
        }
      ],
      "transferParentNo": null,
      "expectedDcDate": "2021-12-21",
      "approvalId": "RMS_ADMIN",
      "approvalDate": "2021-12-20",
      "fromLocationTransferEntity": 1111,
      "toLocationTransferEntity": 1111,
      "invType": "A",
      "transferStatus": "A",
      "notAfterDate": "2021-12-22",
      "contextType": null,
      "contextValue": null,
      "deliverySlotId": null,
      "deliverySlotDescription": null,
      "customerOrderNo": null,
      "fulfillmentOrderNumber": null,
      "carrierCode": null,
      "carrierServiceCode": null,
      "consumerDeliveryDate": null,
      "consumerDeliveryTime": null,
      "deliverFirstName": null,
      "deliverPhoneticFirst": null,
      "deliverLastName": null,
      "deliverPhoneticLast": null,
      "deliverPreferredName": null,
      "deliverCompanyName": null,
      "deliverAdd3": null,
      "deliverCounty": null,
      "deliverPhone": null,
      "billFirstName": null,
      "billPhoneticFirst": null,
      "billLastName": null,
      "billPhoneticLast": null,
      "billPreferredName": null,
      "billCompanyName": null,
      "billAdd1": null,
      "billAdd2": null,
      "billAdd3": null,
      "billCounty": null,
      "billCity": null,
      "billCountry": null,
      "billPost": null,
      "billState": null,
      "billPhone": null,
      "partialDeliveryInd": null,
      "consumerDirectInd": "N",
      "customFlexAttribute": null,
      "createDateTime": "2021-12-20T00:00:00.000Z",
      "updateDateTime": "2021-12-21T14:08:42.000Z",
      "cacheTimestamp": "2022-04-06T10:00:48.823Z"
    }
  ],
  "hasMore": true,
  "limit": 2,
  "count": 2,
  "links": [
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
      "rel": "self"
    },
    {
      "href": "https://rex.retail.us-phoenix-1.ocs.oc-test.com/rgbu-rex-rgbu-stg83-mfcs/MerchIntegrations/services/inventory/transfer?offsetkey=100000015002&limit=2&since=1970-01-01T00:00:00.001Z&before=2022-04-10T15:26:38.684995+00:00",
      "rel": "next"
    }
  ]
}"
Table Impact

The list of table includes the data pre-processing for this service along with the table/views queried during the ReST call.

TABLE SELECT INSERT UPDATE DELETE

MERCHAPI_CONFIG

Yes

No

Yes

No

MERCHAPI_CONSUMER_CONFIG

Yes

No

No

No

MERCHAPI_ASYNC_REQUEST

Yes

No

No

No

MERCH_BATCH_PARAM

Yes

No

No

No

ICL_RMS_TRANSFER

Yes

No

Yes

Yes

MERCHAPI_EXT_TRANSFER

Yes

Yes

Yes

Yes

MERCHAPI_EXT_TRANSFER_CFA

No

Yes

No

Yes

TSFHEAD

Yes

No

No

No

TSFHEAD_CFA_EXT

Yes

No

No

No

V_MERCHAPI_EXT_TSF_JSON

Yes

No

No

No

SYSTEM_OPTIONS

Yes

No

No

No

Transfer Upload Service

The following services are included in this functional area:

Create Book Transfer

This section describes the Book Transfer ReSTful Web Service

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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-272 Create - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-273 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

Number that uniquely identifies the transfer.

fromLocationType

Yes

String (1)

The location type of the from location. Valid values are 'S' and 'W'.

fromLocation

Yes

String (10)

The location number of the from location.

toLocationType

Yes

String (1)

The location type of the to location. Valid values are 'S', 'W' and 'E'

toLocation

Yes

String (10)

The location number of the to location.

details

No

Collection of Object

References collection of transfer details

Table 5-274 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

The unique identifier of the item being transferred.

transferQuantity

Yes

Number (12,4)

The total quantity of the item reserved for this transfer at the from location.

supplierPackSize

No

Number (12,4)

The supplier pack size for this item/transfer.

invStatus

No

Number (2)

A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table.

adjustmentType

No

String (6)

This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost.

adjustmentValue

No

Number (20,4)

If the adjustment type is provided, then the value must also be specified. This must always be a positive amount.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300056,
      "fromLocationType": "S",
      "fromLocation": "1521",
      "toLocationType": "S",
      "toLocation": "1511",
      "details": [
        {
          "item": "100100076",
          "transferQuantity": 3,
          "supplierPackSize": 3,
          "invStatus": 1,
          "adjustmentType": "IA",
          "adjustmentValue": 3.55
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Create Transfers
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-275 Create - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-276 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

Number that uniquely identifies the transfer.

fromLocationType

Yes

String (1)

The location type of the from location. Valid values are 'S' and 'W'.

fromLocation

Yes

Number (10)

The location number of the from location.

toLocationType

Yes

String (1)

The location type of the to location. Valid values are 'S', 'W' and 'E'

toLocation

Yes

Number (10)

The location number of the to location.

deliveryDate

No

date

The earliest date the transfer can be delivered. When Inventory Planning is part of your implementation, this is required for all transfer types, except RAC, EG, and Store Inventory Operations transfers. If included in the message, this must be today or a future date.

department

No

Number (4)

The department number associated with the transfer. A system option determines whether or not the department is required for transfers. If the system option is set to require a department, then this must be included in the message. If the system option is set to not require the department, then the department must be null in this message unless the transfer type is SIM (Store Inventory Operations), AIP (Inventory Planning), or EG (Externally Generated).

routingCode

No

String (1)

If the freight code is Expedite (E), then this must have a value. Otherwise, it must be null. The descriptions for these three options are held in the Codes table under code TRRC and can be configured as needed for your business. Examples are Federal Express (1), UPS (2) and mail (3).

freightCode

No

String (1)

A code indicating the freight status of the transfer (for example, normal, expedite, and so on).

transferType

No

String (6)

A code indicating the type of transfer (e. g. store requisition, book transfer, etc. ). The following types of transfers can be created in this service: Administrative (AD), Inventory Planning Generated (AIP), Book (BT), Confirmation (CF), Externally Generated (EG), Intercompany (IC), Manual Requisition (MR), Reallocation (RAC), Return to Vendor ,(RV) and Store Inventory Operations Generated (SIM).

details

No

Collection of Object

References a collection of transfer details.

status

No

String (1)

A code indicating the status of the transfer. Valid values are 'I' and 'A'.

createdBy

No

String (30)

The userid of the user who created the transfer.

comments

No

String (2000)

Comments associated with the transfer.

contextType

No

String (6)

This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR).

contextValue

No

String (25)

This field holds the value relating to the context type like Promotion number.

customFlexAttribute

No

Collection of Object

References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL

Table 5-277 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

The unique identifier of the item being transferred.

transferQuantity

Yes

Number (12,4)

The total quantity of the item reserved for this transfer at the from location.

supplierPackSize

No

Number (12,4)

The supplier pack size for this item/transfer.

invStatus

No

Number (2)

A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table.

adjustmentType

No

String (6)

This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost.

adjustmentValue

No

Number (20,4)

If the adjustment type is provided, then the value must also be specified. This must always be a positive amount.

Table 5-278 CustomFlexAttribute - Object. See list of elements for detail

Element Name Required Data Type Description

name

Yes

String (30)

Holds the attribute name.

value

No

String (250)

Holds the numeric or string value of the attribute.

valueDate

No

date

Holds the date value of the attribute.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300056,
      "fromLocationType": "S",
      "fromLocation": 1521,
      "toLocationType": "S",
      "toLocation": 1511,
      "deliveryDate": "2001-12-31",
      "department": null,
      "routingCode": null,
      "freightCode": "N",
      "transferType": "AD",
      "details": [
        {
          "item": "104100022",
          "transferQuantity": 3,
          "supplierPackSize": 3,
          "invStatus": 1,
          "adjustmentType": "IA",
          "adjustmentValue": 3.6
        }
      ],
      "status": "I",
      "createdBy": "RMS01APP",
      "comments": "transfer to loc 1511",
      "contextType": "PROM",
      "contextValue": "2255",
      "customFlexAttribute": [
        {
          "name": "REVIEW_DATE",
          "value": null,
          "valueDate": "2001-12-31"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Delete Transfer Details
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-279 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-280 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

The transfer number where info is being deleted from.

details

No

Collection of Object

References collection of transfer details

Table 5-281 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

The item for which transfer info is being deleted.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300056,
      "details": [
        {
          "item": "100100076"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Delete Transfers
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-282 Delete - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-283 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

This is the transfer being deleted.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300001
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Update Transfer Details
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-284 Update - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-285 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

Number that uniquely identifies the transfer.

fromLocationType

Yes

String (1)

The location type of the from location. Valid values are 'S' and 'W'.

fromLocation

Yes

Number (10)

The location number of the from location.

toLocationType

Yes

String (1)

The location type of the to location. Valid values are 'S', 'W' and 'E'

toLocation

Yes

Number (10)

The location number of the to location.

details

No

Collection of Object

References collection of transfer details

Table 5-286 Details - Object. See list of elements for detail

Element Name Required Data Type Description

item

Yes

String (25)

The unique identifier of the item being transferred.

transferQuantity

Yes

Number (12,4)

The total quantity of the item reserved for this transfer at the from location.

supplierPackSize

No

Number (12,4)

The supplier pack size for this item/transfer.

invStatus

No

Number (2)

A code indicating the inventory status for this transfer detail. Valid values are found on the inv_status_types table.

adjustmentType

No

String (6)

This field, along with the adjustment value, is used to calculate the transfer price for intercompany transfers. It will be ignored for all other transfers. If the adjustment value is provided, then the type must also be specified. Valid values are: 'IA', 'IP', 'DA', 'DP', 'S'. IA and IP can only be used if you have your system options set to allow the transfer price to exceed weighted average cost.

adjustmentValue

No

Number (20,4)

If the adjustment type is provided, then the value must also be specified. This must always be a positive amount.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300056,
      "fromLocationType": "S",
      "fromLocation": 1521,
      "toLocationType": "S",
      "toLocation": 1511,
      "details": [
        {
          "item": "104100022",
          "transferQuantity": 3,
          "supplierPackSize": 3,
          "invStatus": 1,
          "adjustmentType": "IA",
          "adjustmentValue": 3.55
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

{
  "status": "ERROR",
  "message": "Error found in validation of input payload",
  "validationErrors": [
    {
      "error": "must be one of Y, N",
      "field": "createRecord.arg0.approveInd",
      "inputValue": "X"
    }
  ],
  "businessError": [
    "Error message"
  ]
}
Update Transfers
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-287 Update - Object. See list of elements for detail

Element Name Required Data Type Description

items

Yes

Collection of Object

References a collection of transfers.

Table 5-288 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

Number (12)

Number that uniquely identifies the transfer.

fromLocationType

Yes

String (1)

The location type of the from location. Valid values are 'S' and 'W'.

fromLocation

Yes

String (10)

The location number of the from location.

toLocationType

Yes

String (1)

The location type of the to location. Valid values are 'S', 'W' and 'E'

toLocation

Yes

String (10)

The location number of the to location.

deliveryDate

No

date

The earliest date the transfer can be delivered. When Inventory Planning is part of your implementation, this is required for all transfer types, except RAC, EG, and SIM transfers. If included in the message, this must be today or a future date.

routingCode

No

String (1)

If the freight code is Expedite (E), then this must have a value. Otherwise, it must be null. The descriptions for these three options are held in the Codes table under code TRRC and can be configured as needed for your business. Examples are Federal Express (1), UPS (2) and mail (3).

transferType

No

String (6)

A code indicating the type of transfer (e. g. store requisition, book transfer, etc. ). The following types of transfers can be created in this service: Administrative (AD), Inventory Planning Generated (AIP), Book (BT), Confirmation (CF), Externally Generated (EG), Intercompany (IC), Manual Requisition (MR), Reallocation (RAC), Return to Vendor ,(RV) and Store Inventory Operations Generated (SIM).

status

No

String (1)

A code indicating the status of the transfer. Valid values are 'I' and 'A'.

createdBy

No

String (30)

The userid of the user who created the transfer.

comments

No

String (2000)

Comments associated with the transfer.

contextType

No

String (6)

This field holds the reason code related to which a transfer is made. Valid values are found in the code type CNTX. Examples are Promotion (PROM), Customer Transfer (WED), Store Requisition (STORE) and Repairing (REPAIR).

contextValue

No

String (25)

This field holds the value relating to the context type like Promotion number.

customFlexAttribute

No

Collection of Object

References a collection of custom flexible attributes. This collection is treated as a single group and should include all named flexible attributes for the business entity. If any configured named attribute is missing from the input collection, its value will be set to NULL.

Table 5-289 CustomFlexAttribute - Object. See list of elements for detail

Element Name Required Data Type Description

name

Yes

String (30)

Holds the attribute name.

value

No

String (250)

Holds the numeric or string value of the attribute.

valueDate

No

date

Holds the date value of the attribute.

Sample Input Message

{
  "items": [
    {
      "transferNo": 12300056,
      "fromLocationType": "S",
      "fromLocation": "1521",
      "toLocationType": "S",
      "toLocation": "1511",
      "deliveryDate": "2001-12-31",
      "routingCode": null,
      "transferType": "AD",
      "status": "A",
      "createdBy": "RMS01APP",
      "comments": "transfer to loc 1511",
      "contextType": "PROM",
      "contextValue": "2255",
      "customFlexAttribute": [
        {
          "name": "REVIEW_DATE",
          "value": null,
          "valueDate": "2001-12-31"
        }
      ]
    }
  ]
}
Response Code: 200 (Success)

Sample Response Message

{
  "status": "SUCCESS",
  "message": "Service call is successful"
}
Response Code: 400 (Error)

In case of error, the following standard error response will be returned. The element "validationErrors" will be present when input payload or input parameters are not as per the schema definition of this service. The element "businessError" will be present if the payload passes schema validation but exception is caught while processing business logic.

Sample Error Message

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

Work Order Status Upload Service

The following services are included in this functional area:

Update Work Orders Status
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
Availability During Nightly Batch Cycle

This service will not be available when batches that affect inventory are in-progress.

Input Payload Details

Table 5-290 Update - Object. See list of elements for detail

Element Name Required Data Type Description

collectionSize

Yes

Number (4)

Number of items in the collection.

items

Yes

Collection of Object

References a collection of work orders.

Table 5-291 Items - Object. See list of elements for detail

Element Name Required Data Type Description

transferNo

Yes

String (12)

This field contains the identifier of the transfer during which the work order activities will be performed. For 2-legged transfers, this is the transfer number of the 1st leg transfer.

parentTransferNo

No

String (12)

The higher level transfer that this transfer is part of.

item

No

String (25)

The item on which the work order has been completed. If an item transformation occurred, this should be the resultant item. This should be populated if completedQty is provided.

location

Yes

Number (10)

This is the finisher location.

completeDate

Yes

date

This is the workorder completion date. If this is not provided, the value will be defaulted to the current date.

completedQuantity

No

Number (12,4)

The quantity of the item on which work has been completed. This should be provided if item is provided.

Sample Input Message

{
  "collectionSize": 1,
  "items": [
    {
      "transferNo": "100000135001",
      "parentTransferNo": "100000135000",
      "item": "101300002",
      "location": 15000,
      "completeDate": "2001-12-31",
      "completedQuantity": 1
    }
  ]
}
Response Code: 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 can be used by external applications to get all or selected work orders that are associated with purchase orders and its details from Merchandising.

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/woin?since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/woin/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woin
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

orderNo

No

Number

This is the purchase order number.

offsetkey

No

String

Offset Key. Valid Value is combination of sort_order_seq and node ID.

limit

No

BigDecimal

Pagination limit. Default Value is 1000.

Input Parameters for MerchIntegrations/services/inventory/woin/{workOrderId}
Parameter Name Required Data Type Description

workOrderId

Yes

Number

This is the unique identifier for work in process associated with an order.

Output - WO In Head
Name Data Type Description

action

String

Action for Item details. Valid Values are INSERT, UPDATE, and DELETE.

workOrderId

Number

This field contains the unique identifier for work in process associated with an order.

orderNo

Number

This field contains the order number associated with the work order.

createDateTime

String

This column holds the record creation date.

details

 

This List holds attributes for details of the Work Order.

cacheTimestamp

String

This field specifies date and time when the work order record was last maintained.

Output - WO In Detail
Name Data Type Description

warehouse

Number

This field holds physical warehouse where the work order will be done.

item

String

This field holds item on which the work order will be done.

locationType

String

This field holds location type of the final destination.

location

Number

This field holds final destination for the item on the order. If the item is pre-distributed this location will be the store or warehouse on the allocation. If not, it will be the same warehouse as above.

sequenceNo

Number

This field holds sequence number that is needed to ensure each record is unique, since the same work-in-progress code can be listed more than once on the same work order.

activityCode

String

This field holds WIP code for the work to be done on the item. Valid values are in the codes table under the WWIP code type.

createDateTime

String

This column holds the record creation date.

Elements in JSON Output
Elements Description

items

The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query.

hasMore

This is dependent on limit value. If the total rows are more than then limit defined then 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 can be used by external applications to get all or selected work orders that are associated with transfers and its details from Merchandising.

Service Type

GET

ReST URL
/MerchIntegrations/services/inventory/woout? since={since}&before={before}&offsetkey={offsetkey}&limit={limit}
/MerchIntegrations/services/inventory/woout/{workOrderId}
Input Parameters for MerchIntegrations/services/inventory/woout
Parameter Name Required Data Type Description

since

No

String

Since Date.

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

before

No

String

Before Date

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

transferNo

No

Number

This is the transfer number.

offsetkey

No

String

Offset Key. Valid Value is combination of sort_order_seq and node id.

limit

No

BigDecimal

Pagination limit. Default Value is 1000.

Input Parameters for MerchIntegrations/services/inventory/woout/{workOrderId}
Parameter Name Required Data Type Description

workOrderId

Yes

Number

This is the unique identifier for work in process associated with an order or transfer.

Output - WO Out Head
Name Data Type Description

action

String

Action for Item details. Valid Values are INSERT, UPDATE, and DELETE.

workOrderId

Number

This field contains the unique identifier for work in process associated with an order or transfer.

distroNo

Number

This field contains the first leg transfer number of the 2-legged transfer.

parentDistroNo

Number

This field contains the second leg transfer number of the 2-legged transfer.

finisherLocationId

Number

This field contains destination location for the transfer.

inventoryType

String

This field contains the code to indicate whether the inventory on the transfer is available.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the record updated date.

activityDetails

This list holds attributes for details of the Work Order Out record.

transformationDetails

This list holds attributes for details of Work Order transformation details record.

packingDetails

This list holds attributes for details of Work Order packing details record.

cacheTimestamp

String

This field specifies date and time when the work order out record was last maintained.

Output - WO Activity Details
Name Data Type Description

item

String

Unique identifier for the item.

activityId

Number

This field contains a code number indicating the activity that will be performed on the item.

activityUnitCost

Number

This field contains the per unit cost of the finishing activity.

comments

String

This field contains any comments regarding this activity

invStatus

String

This field contains the inventory status of the transfer detail.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the record updated date.

Output - WO Transformation Details
Name Data Type Description

fromItem

String

This field contains the original item on the transfer.

toItem

String

This field contains the item which results from the finishing activity.

createDateTime

String

This column holds the record creation date.

updateDateTime

String

This column holds the record updated date.

Output - WO Packing Details
Name Data Type Description

item

String

This field contains the item resulting from the packing process

packingSetNo

Number

This field contains packing set number from the packing process.

recordType

String

This field determines if the item in the 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