Merchandising to Omnichannel Services
The following services are included in this functional area:
REST Endpoint for Omni channel/Diff Group
Business Overview
This service publishes differentiator groups to the Omnichannel application and can also be consumed by downstream consuming systems. Functionally, the source view uses the differentiator-group header-plus-detail relationship, so only differentiator groups that currently have detail rows are published.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: DIFF_GROUP_HEAD, DIFF_GROUP_DETAIL
Additional business tables: DIFF_TYPE
JSON cache table: MERCHAPI_DIFF_GROUP
JSON generation view: V_MERCHAPI_DIFF_GROUP_JSON
The cache is refreshed from V_MERCHAPI_DIFF_GROUP_JSON, which builds the payload from DIFF_GROUP_HEAD, DIFF_TYPE, and DIFF_GROUP_DETAIL.
The view uses the header-plus-detail relationship, so only differentiator groups that currently have detail rows are published.
When the omnichannel dimension-type API is enabled, the same diff-group processing flow also repopulates the child dimension-type cache for impacted items.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_MERCHAPI_DIFF_GROUP_JSON. No additional filter criteria were identified beyond the cache-build logic.
Rebuild marks cache rows deleted when the group no longer exists in V_MERCHAPI_DIFF_GROUP_JSON.
ICL (Integration Change Log) table: ICL_RMS_DIFF_GROUP (ICL consumer name = MERCHAPI)
Delta processing is driven by ICL_RMS_DIFF_GROUP.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_DIFF_GROUP
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_DIFF_GROUP_ADHOC_PROCESS -> MERCHAPI_OMNI_DIFF_GROUP_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/diff/group
Special handling
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-2 PageResultsItemsVMerchapiDiffGrp - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-3 VMerchapiDiffGrp - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Diff group. |
|
diffgroupid |
No |
String (10) |
This column contains the Diff group ID. |
|
diffgroupdesc |
No |
String (120) |
This column contains the Diff group's description. |
|
difftypeid |
No |
String (6) |
This column contains the Diff type ID. |
|
diffid |
No |
String (10) |
This column contains the Diff ID. |
Table 5-4 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"diffgroupid": "BASIC CLRS",
"diffgroupdesc": "Basic Color Pallet",
"difftypeid": "C",
"diffid": "GREEN"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"diffgroupid": "1177",
"diffgroupdesc": "EIT_Diff_Group_1",
"difftypeid": "CF",
"diffid": "4280"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/diff/group?before=2021-05-06T16%3A12%3A02.551757%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http:// <hostname>/MerchIntegrations/services/foundation/omnichannel/diff/group?before=2021-05-06T16%3A12%3A02.551757%2B08%3A00&limit=1&offsetkey=1177%2C4280&since=1970-01-01T00%3A00%3A00.001Z",
"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 |
| MERCH_BATCH_PARAM |
Yes
|
No | No | No |
| ICL_RMS_DIFF_GROUP | Yes | Yes | Yes | Yes |
| MERCHAPI_DIFF_GROUP | Yes | Yes | Yes | Yes |
| V_MERCHAPI_DIFF_GROUP | Yes | No | No | No |
| V_MERCHAPI_DIFF_GROUP_JSON | Yes | No | No | No |
| V_MERCHAPI_ITEM_JSON | Yes | No | No | No |
| MERCHAPI_ITEM_DIFF_TYPE | Yes | Yes | Yes | Yes |
REST Endpoint for Omni channel/diff Ids
Business Overview
This service publishes differentiator IDs to the Omnichannel application and can also be consumed by downstream consuming systems. Functionally, it publishes the current differentiator master data only while the differentiator still resolves to a valid differentiator type.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: DIFF_IDS, DIFF_TYPE
Additional business tables: none
JSON cache table: MERCHAPI_DIFF_IDS
JSON generation view: V_MERCHAPI_DIFF_IDS_JSON
The cache is refreshed from V_MERCHAPI_DIFF_IDS_JSON, which joins DIFF_IDS to DIFF_TYPE so the payload includes both the differentiator and its type information.
Functionally, the published set is the current differentiator master data that still resolves to a valid differentiator type.
When the omnichannel dimension-type or dimension-value APIs are enabled, the same diff-ID processing flow also repopulates those child caches for impacted items.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_MERCHAPI_DIFF_IDS_JSON. No additional filter criteria were identified beyond the cache-build logic.
Rebuild marks cache rows deleted when the differentiator no longer exists in V_MERCHAPI_DIFF_IDS_JSON.
ICL (Integration Change Log) table: ICL_RMS_DIFF_IDS, ICL_RMS_DIFF_TYPE (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on DIFF_IDS, DIFF_TYPE.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_DIFF_IDS
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_DIFF_IDS_ADHOC_PROCESS -> MERCHAPI_OMNI_DIFF_IDS_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/diff
Special handling
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-5 PageResultsItemsVMerchapiDiffIds - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-6 VMerchapiDiffIds - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Diff. |
|
diffid |
No |
String (10) |
This column contains the Diff ID. |
|
diffdesc |
No |
String (120) |
This column contains the Diff description. |
|
difftype |
No |
String (6) |
This column contains the Diff type. |
|
difftypedesc |
No |
String (120) |
This column contains the Diff type description. |
Table 5-7 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"diffid": "1930",
"diffdesc": "Green",
"difftype": "C",
"difftypedesc": "Color"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"diffid": "1005",
"diffdesc": "EIT_Diff_ID : Black",
"difftype": "CF",
"difftypedesc": "Cereal Flavour"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/diff?before=2021-05-05T16%3A18%3A57.100893%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http:// <hostname> /MerchIntegrations/services/foundation/omnichannel/diff?before=2021-05-05T16%3A18%3A57.100893%2B08%3A00&limit=1&offsetkey=1005&since=1970-01-01T00%3A00%3A00.001Z",
"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_DIFF_IDS | Yes | Yes | Yes | Yes |
| ICL_RMS_DIFF_TYPE | Yes | Yes | Yes | Yes |
| DIFF_IDS | Yes | No | No | No |
| MERCHAPI_DIFF_IDS | Yes | Yes | Yes | Yes |
| V_MERCHAPI_DIFF_IDS_JSON | Yes | No | No | No |
|
V_MERCHAPI_DIFF_IDS V_MERCHAPI_ITEM_JSON MERCHAPI_ITEM_DIFF_TYPE MERCHAPI_ITEM_DIFF_VALUE |
Yes Yes Yes Yes |
No No Yes Yes |
No No Yes Yes |
No No Yes Yes |
REST Endpoint for Omni channel/Inventory/Store details
Business Overview
This service publishes store available inventory to the Omnichannel application and can also be consumed by downstream consuming systems. It includes the store availability position for active, transaction-level inventory items at stockholding stores that are enabled for customer orders, limited to sellable non-pack store rows. The response exposes stock on hand together with the derived available quantity after subtracting reserved and other non-available inventory buckets so consuming systems receive the store availability position used for fulfillment.
The underlying technical component for this service is same as '/inventory/available'. Refer to the API documentation for '/inventory/available' for more details.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level. Allowed value is 'STORE'. If not defined, fetches details for all stores. |
|
nodeid |
No |
String (10) |
Node Id. Should be a valid store number. |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-8 PageResultsItemsStoreAvailable - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-9 StoreAvailable - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
This field contains the action for Store Inventory. |
|
item |
No |
String (25) |
This field contains the unique alphanumeric value that identifies the item. This will be an approved sellable transaction-level item. |
|
location |
No |
Number(10,0) |
This field contains the numeric identifier of the location in which the item is to be found. |
|
loctype |
No |
String (1) |
This field contains the type of location in the location field. Valid values are S (store). |
|
availablequantity |
No |
Number(12,4) |
This field represents the available inventory of an item in a particular location. |
|
stockonhand |
No |
Number(12,4) |
This field contains current stock on hand for the item. |
|
standarduom |
No |
String (4) |
This field contains the unit of measure in which stock of the item is tracked at a corporate level. |
Table 5-10 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": null,
"item": "100100092",
"location": 1521,
"loctype": "S",
"availablequantity": 10,
"stockonhand": 12,
"standarduom": "EA"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined, then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "INSERT",
"item": "100000286",
"location": "1341",
"loctype": "S",
"availablequantity": 100,
"stockonhand": 100,
"standarduom": "EA"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/inventory/omnichannel/inventory/store?before=2021-05-13T18%3A28%3A10.129377%2B05%3A30&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/inventory/omnichannel/inventory/store?before=2021-05-13T18%3A28%3A10.129377%2B05%3A30&limit=1&offsetkey=1341%2C100000286&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| ITEM_MASTER | Yes | No | No | No |
| ITEM_LOC_SOH | Yes | No | No | No |
| STORE | Yes | No | No | No |
| MERCHAPI_ITEM_LOC | Yes | No | No | No |
REST Endpoint for Omni channel/Inventory/Warehouse details
Business Overview
This service publishes warehouse available inventory to the Omnichannel application and can also be consumed by downstream consuming systems. It includes the warehouse availability position for active, transaction-level inventory items at stockholding warehouses that are enabled for customer orders, limited to sellable rows while still allowing warehouse pack items to publish. The response exposes stock on hand, the derived available quantity, and the physical warehouse linkage used for virtual-warehouse sourcing scenarios.
The underlying technical component for this service is same as '/inventory/available'. Refer to the API documentation for '/inventory/available' for more details.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level. Allowed value is 'WAREHOUSE'. If not defined, fetches details for all warehouses. |
|
nodeid |
No |
String (10) |
Node Id. Should be a valid warehouse number if nodelevel is 'WAREHOUSE'. |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-11 PageResultsItemsOmnichannel_MerchapiItemLocSoh - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-12 Omnichannel_MerchapiItemLocSoh - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
This field contains the action for Warehouse Inventory. |
|
item |
No |
String (25) |
This field contains the unique alphanumeric value that identifies the item. This will be an approved sellable transaction-level item. For warehouse locations, pack items are also included. |
|
location |
No |
Number(10,0) |
This field contains the numeric identifier of the location in which the item is to be found. |
|
loctype |
No |
String (1) |
This field contains the type of location in the location field. Valid values are W (warehouse). |
|
availablequantity |
No |
Number(12,4) |
This field represents the available inventory of an item in a particular location. |
|
stockonhand |
No |
Number(12,4) |
This field contains current stock on hand for the item. |
|
standarduom |
No |
String (4) |
This field contains the unit of measure in which stock of the item is tracked at a corporate level. |
|
physicalwarehouse |
No |
Number(10,0) |
This field contains the physical warehouse for location type of warehouse. |
Table 5-13 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": null,
"item": "100100092",
"location": 11001,
"loctype": "W",
"availablequantity": 10,
"stockonhand": 12,
"standarduom": "EA",
"physicalwarehouse": 11
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"item": "100000075",
"location": "10001",
"loctype": "W",
"availablequantity": 0,
"stockonhand": 0,
"standarduom": "EA",
"physicalwarehouse": 2
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/inventory/omnichannel/inventory/warehouse?before=2021-05-13T19%3A14%3A44.470363%2B05%3A30&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/inventory/omnichannel/inventory/warehouse?before=2021-05-13T19%3A14%3A44.470363%2B05%3A30&limit=1&offsetkey=10001%2C100000075&since=1970-01-01T00%3A00%3A00.001Z",
"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 |
| ITEM_LOC_SOH | Yes | No | No | No |
| WH | Yes | No | No | No |
| MERCHAPI_ITEM_LOC | Yes | No | No | No |
REST Endpoint for Omni channel/ Item details
Business Overview
This service publishes the item payload to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes item definitions from approved item records and enriches them with merchandise hierarchy, differentiator, brand, and selected code-detail attributes. When callers supply nodelevel and nodeid, the service returns the item in the context of the requested store or warehouse by joining to MERCHAPI_ITEM_LOC, which adds local item description, local short description, and UIN type for that node. The source view itself publishes only current ITEM_MASTER rows in status A, while refresh processing also selects status D rows so delete actions can still be represented in the cache.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: ITEM_MASTER
Additional business tables: DEPS, GROUPS, DIVISION, CLASS, SUBCLASS, DIFF_GROUP_HEAD, DIFF_IDS, BRAND, SYSTEM_OPTIONS, CODE_DETAIL
JSON cache table: MERCHAPI_ITEM_MASTER
JSON generation view: V_MERCHAPI_ITEM_JSON
The JSON view is driven from ITEM_MASTER and enriched from hierarchy tables, differentiator setup, brand, system options, and code-detail lookups.
The source view publishes only items whose current ITEM_MASTER.STATUS = 'A', while refresh processing selects ITEM_MASTER rows in status A or D so deletes can still be represented in the cache.
The REST layer also supports location-scoped item output by joining the item cache to MERCHAPI_ITEM_LOC when nodelevel and nodeid are supplied, which adds local item description and UIN context for the requested store or warehouse.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_ITEM_JSON and apply ITEM_MASTER.STATUS IN ('A','D').
ICL (Integration Change Log) table: ICL_RMS_ITEM_MASTER (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on ITEM_MASTER, and the shared item delta flow also refreshes the related UPC and dimension projections maintained under the same process configuration.
Item Approval Handling
Approval of an item also results in publish of foundation/omnichannel/item/upc, foundation/omnichannel/item/dimensiontype, and foundation/omnichannel/item/dimensionvalue through the shared item flow. Approval also queues foundation/omnichannel/item/image, foundation/omnichannel/item/relateditem, foundation/item/location, foundation/item/vat, and foundation/taxLocationItem by writing the existing dependent source rows to those APIs' ICL tables when the item reaches approved status.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ITEM_DIM_UPC
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ITEM_DIM_UPC_ADHOC_PROCESS -> MERCHAPI_OMNI_ITEM_DIM_UPC_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/item
Special handling
Additional GET query parameters: nodelevel, nodeid.
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately. The available configuration for this service should therefore be reviewed and validated against the customer production data profile, including expected volume, message size, and access pattern, with the key performance-related configuration for this service covering the following:
Multi-threading and commit control
This service shares the API_OMNI_ITEM_DIM_UPC runtime with the omnichannel item, UPC, and dimension caches. Delta processing on that shared flow remains single-threaded, while initial seeding supports multi-threaded execution. Delta commit sizing is controlled through API_COMMIT_MAX_COUNTER, and initial-seeding thread and commit sizing are controlled through API_REFRESH_OVERRIDE_NO_OF_THREADS and API_REFRESH_OVERRIDE_COMMIT_MAX_COUNTER.
For initial seeding, thread and commit settings should be chosen together based on expected row volume, average message size, and the complex SQL query required to build the item message from ITEM_MASTER together with hierarchy, differentiator, brand, and lookup data. Common starting points for large-volume seeding are 8, 16, or 32 threads. Values of 48 or 64 threads should be considered only after testing and with awareness of competing workload in the environment. The delivered refresh override is currently 4 threads.
Commit sizing should be reviewed together with the thread setting. Typical values can range from about 1,000 rows, or even higher values such as 10,000. The delivered delta commit setting is currently 1000, and the delivered refresh override commit setting is currently 10000.
Dropping indexes and constraints during seeding
This option applies only to initial seeding, including truncate-and-load execution of the shared item cache. Even with refresh-override threading, larger parallel insert volumes can increase index maintenance overhead and slow the load.
To reduce that overhead, DROP_INDEX_ON_REFRESH can be enabled so indexes and constraints are dropped before seeding and rebuilt after the load completes.
This can improve data-load throughput, but the overall refresh plan should also account for the additional time needed for index rebuild after the seeding step finishes. GATHER_STATS_ON_REFRESH should normally remain enabled unless testing shows a need to change it.
REST fetch considerations
Item payloads can be comparatively large, so REST page size should be selected based on average message size so that the average response remains below about 10 MB per call. Common page-limit values are 1,000, 5,000, or 10,000 rows.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 10,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using the shared HISTOGRAM_ROW_COUNT configuration.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level (STORE or WAREHOUSE) |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-14 PageResultsItemsVMerchApiItem - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-15 VMerchApiItem - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for item details. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
itemparent |
No |
String (25) |
This field specifies the alphanumeric value that uniquely identifies the item or group at the level above the item. |
|
itemgrandparent |
No |
String (25) |
This field specifies the alphanumeric value that uniquely identifies the item or group two levels above the item. |
|
itemlevel |
No |
Number(1,0) |
This field specifies the number indicating which of the three levels the item resides. The item level determines if the item stands alone or if it is part of a family of related items. |
|
tranlevel |
No |
Number(1,0) |
This field specifies the number indicating which of the three levels transactions occur for the item's group. The transaction level is the level at which the item's inventory is tracked in the system. |
|
inventoryind |
No |
String (1) |
This field determines if an item holds inventory or not for item transformations. |
|
diff1level |
No |
String (5) |
This field specifies diff1 level. |
|
diff1type |
No |
String (6) |
This field specifies diff1 type. |
|
diff1 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
diff2level |
No |
String (5) |
This field specifies diff2 level. |
|
diff2type |
No |
String (6) |
This field specifies diff2 type. |
|
diff2 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
diff3level |
No |
String (5) |
This field specifies diff3 level. |
|
diff3type |
No |
String (6) |
This field specifies diff3 type. |
|
diff3 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
division |
No |
Number(4,0) |
This field specifies the number which uniquely identifies the division of the company. |
|
groupid |
No |
Number(4,0) |
This field specifies the group in which the department exists. |
|
dept |
No |
Number(4,0) |
This field uniquely identifies the department. |
|
class |
No |
Number(4,0) |
This field uniquely identifies the class within the system. |
|
uniqueclass |
No |
Number(10,0) |
This field uniquely identifies the department/class combination. |
|
subclass |
No |
Number(4,0) |
This field uniquely identifies the subclass. |
|
uniquesubclass |
No |
Number(10,0) |
This field uniquely identifies the department/class/subclass combination. |
|
description |
No |
String (250) |
This field specifies the description of the item. For items that have parents, this description will default to the parent's description plus any differentiators. |
|
shortdescription |
No |
String (120) |
This field specifies the short description of the item. |
|
brandname |
No |
String (30) |
This field specifies the brand associated with an item. |
|
merchandiseind |
No |
String (1) |
This field indicates if the item is a merchandise item. Merchandise items are generally physical items that must be shipped or received and for which there is inventory. Non-merchandise items are often items which do not have inventory. Common examples include extra fees for service, extended warranties, alterations, or endlessly available items such as downloads, in-app purchases of bonus content, and subscriptions. |
|
mfgrecretail |
No |
Number(20,4) |
This field specifies the manufacturer's recommended retail price for the item. This field is stored in the primary currency. |
|
orginalunitretail |
No |
Number(20,4) |
This field specifies the retail price for the item. |
|
catchweightind |
No |
String (1) |
This field specifies whether the item should be weighed when it arrives at a location. |
|
itemservicelevel |
No |
String (6) |
This field specifies the value that restricts the type of shipment methods that RCOM can select for an item. |
|
giftwrapind |
No |
String (1) |
This field determines whether the location will support gift wrapping or not. |
|
shipaloneind |
No |
String (1) |
This field indicates if the item should be shipped to the customer in a separate package versus being grouped together in a box. |
|
standarduom |
No |
String (4) |
This field specifies the unit of measure in which stock of the item is tracked at a corporate level. |
|
productclassification |
No |
String (6) |
This field determines how to pack customer orders, such as to determine products that may not be able to be packaged together. Examples of classifications may include fragile, toxic, and heavy. |
|
xdiff1desc |
No |
String (120) |
This field specifies diff1 description. |
|
xdiff2desc |
No |
String (120) |
This field specifies diff2 description. |
|
xdiff3desc |
No |
String (120) |
This field specifies diff3 description. |
|
itemnumbertype |
No |
String (6) |
This field specifies what type the item is. Valid values for this field are in the code type UPCT on the code_head and code_detail tables. |
|
itemlocation |
No |
String (10) |
This field specifies if the service call was to fetch the enterprise view or a specific location. The value is either 'ent' or the node ID parameter. |
|
localdescription |
No |
String (250) |
This field specifies the local description of the item. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
|
localshortdescription |
No |
String (120) |
This field specifies the local short description of the item. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
|
uintype |
No |
String (6) |
This field specifies the unique identification number (UIN) type used to identify the instances of the item at the location. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
Table 5-16 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"item": "100100076",
"itemparent": null,
"itemgrandparent": null,
"itemlevel": 1,
"tranlevel": 1,
"inventoryind": "Y",
"diff1level": null,
"diff1type": null,
"diff1": null,
"diff2level": null,
"diff2type": null,
"diff2": null,
"diff3level": null,
"diff3type": null,
"diff3": null,
"division": 1,
"groupid": 1,
"dept": 3041,
"class": 1,
"uniqueclass": 1,
"subclass": 1,
"uniquesubclass": 1,
"description": "Regular Item 100100076",
"shortdescription": "100100076 Item",
"brandname": null,
"merchandiseind": "Y",
"mfgrecretail": 12.99,
"orginalunitretail": 12.99,
"catchweightind": "Y",
"itemservicelevel": null,
"giftwrapind": "Y",
"shipaloneind": "Y",
"standarduom": "EA",
"productclassification": null,
"xdiff1desc": null,
"xdiff2desc": null,
"xdiff3desc": null,
"itemnumbertype": "MANL",
"itemlocation": "ent",
"localdescription": "localItemDesc",
"localshortdescription": "localShortDesc",
"uintype": null
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON Input
{
"items": [
{
"item": "100000024",
"action": "INSERT",
"itemlocation": "ent",
"itemparent": null,
"itemgrandparent": null,
"itemlevel": 1,
"tranlevel": 3,
"inventoryind": "Y",
"diff1level": null,
"diff1type": null,
"diff1": null,
"diff2level": null,
"diff2type": null,
"diff2": null,
"diff3level": null,
"diff3type": null,
"diff3": null,
"division": 1000,
"groupid": 108,
"dept": 1117,
"class": 1,
"uniqueclass": 51,
"subclass": 1,
"uniquesubclass": 432,
"description": "Test Item 100000024 ",
"shortdescription": "Test Item",
"localdescription": null,
"localshortdescription": null,
"brandname": null,
"merchandiseind": "Y",
"uintype": null,
"mfgrecretail": null,
"orginalunitretail": 13.2,
"catchweightind": "N",
"itemservicelevel": null,
"giftwrapind": "N",
"shipaloneind": "N",
"standarduom": "EA",
"productclassification": "APP",
"xdiff1desc": null,
"xdiff2desc": null,
"xdiff3desc": null,
"itemnumbertype": "MANL" }
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/item?before=2021-05-12T23%3A35%3A49.770127%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/item?before=2021-05-12T23%3A35%3A49.770127%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&offsetkey=100000024&since=1970-01-01T00%3A00%3A00.001Z ",
"rel": "next"
}
]
}Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| ITEM_MASTER | Yes | No | No | No |
| ICL_RMS_ITEM_MASTER | Yes | No | Yes | Yes |
| MERCHAPI_ITEM_MASTER | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_MASTER | Yes | No | No | No |
| ICL_RMS_ITEM_IMAGE | No | Yes | No | No |
| ICL_RMS_RELATED_ITEM | No | Yes | No | No |
| ICL_RMS_ITEM_LOC | No | Yes | No | No |
| SYSTEM_OPTIONS | Yes | No | No | No |
REST Endpoint for Omni channel/ Item UPC details
Business Overview
This service publishes reference-item and UPC-style rows to the Omnichannel application and can also be consumed by downstream consuming systems. It uses the same underlying component as 'foundation/omnichannel/item'. Functionally, the enterprise query returns only below-transaction-level items whose parent item is present in the published item cache. When callers supply nodelevel and nodeid, the service further requires a matching MERCHAPI_ITEM_LOC row for that parent item at the requested store or warehouse, so the reference item is returned only when the parent is published for that node.
Refer to the documentation for 'foundation/omnichannel/item' for technical details and functional considerations.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level (STORE or WAREHOUSE) |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-17 PageResultsItemsVMerchApiItemUPC - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-18 VMerchApiItemUPC - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for item details. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
itemparent |
No |
String (25) |
This field specifies the alphanumeric value that uniquely identifies the item or group at the level above the item. |
|
itemgrandparent |
No |
String (25) |
This field specifies the alphanumeric value that uniquely identifies the item or group two levels above the item. |
|
itemlevel |
No |
Number(1,0) |
This field specifies the number indicating which of the three levels the item resides. The item level determines if the item stands alone or if it is part of a family of related items. |
|
tranlevel |
No |
Number(1,0) |
This field specifies the number indicating which of the three levels transactions occur for the item's group. The transaction level is the level at which the item's inventory is tracked in the system. |
|
inventoryind |
No |
String (1) |
This field determines if an item holds inventory or not for item transformations. |
|
diff1level |
No |
String (5) |
This field specifies diff1 level. |
|
diff1type |
No |
String (6) |
This field specifies diff1 type. |
|
diff1 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
diff2level |
No |
String (5) |
This field specifies diff2 level. |
|
diff2type |
No |
String (6) |
This field specifies diff2 type. |
|
diff2 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
diff3level |
No |
String (5) |
This field specifies diff3 level. |
|
diff3type |
No |
String (6) |
This field specifies diff3 type. |
|
diff3 |
No |
String (10) |
This field specifies the diff_group or diff_id that differentiates the current item from its item_parent. For an item that is a parent, this field may be either a group or value. For an item that is not a parent, this field may contain a value. |
|
division |
No |
Number(4,0) |
This field specifies the number which uniquely identifies the division of the company. |
|
groupid |
No |
Number(4,0) |
This field specifies the group in which the department exists. |
|
dept |
No |
Number(4,0) |
This field uniquely identifies the department. |
|
class |
No |
Number(4,0) |
This field uniquely identifies the class within the system. |
|
uniqueclass |
No |
Number(10,0) |
This field uniquely identifies the department/class combination. |
|
subclass |
No |
Number(4,0) |
This field uniquely identifies the subclass. |
|
uniquesubclass |
No |
Number(10,0) |
This field uniquely identifies the department/class/subclass combination. |
|
description |
No |
String (250) |
This field specifies the description of the item. For items that have parents, this description will default to the parent's description plus any differentiators. |
|
shortdescription |
No |
String (120) |
This field specifies the short description of the item. |
|
brandname |
No |
String (30) |
This field specifies the brand associated with an item. |
|
merchandiseind |
No |
String (1) |
This field indicates if the item is a merchandise item. Merchandise items are generally physical items that must be shipped or received and for which there is inventory. Non-merchandise items are often items which do not have inventory. Common examples include extra fees for service, extended warranties, alterations, or endlessly available items such as downloads, in-app purchases of bonus content, and subscriptions. |
|
mfgrecretail |
No |
Number(20,4) |
This field specifies the manufacturer's recommended retail price for the item. This field is stored in the primary currency. |
|
orginalunitretail |
No |
Number(20,4) |
This field specifies the retail price for the item. |
|
catchweightind |
No |
String (1) |
This field specifies whether the item should be weighed when it arrives at a location. |
|
itemservicelevel |
No |
String (6) |
This field specifies the value that restricts the type of shipment methods that RCOM can select for an item. |
|
giftwrapind |
No |
String (1) |
This field determines whether the location will support gift wrapping or not. |
|
shipaloneind |
No |
String (1) |
This field indicates if the item should be shipped to the customer in a separate package versus being grouped together in a box. |
|
standarduom |
No |
String (4) |
This field specifies the unit of measure in which stock of the item is tracked at a corporate level. |
|
productclassification |
No |
String (6) |
This field determines how to pack customer orders, such as to determine products that may not be able to be packaged together. Examples of classifications may include fragile, toxic, and heavy. |
|
xdiff1desc |
No |
String (120) |
This field specifies diff1 description. |
|
xdiff2desc |
No |
String (120) |
This field specifies diff2 description. |
|
xdiff3desc |
No |
String (120) |
This field specifies diff3 description. |
|
itemnumbertype |
No |
String (6) |
This field specifies what type the item is. Valid values for this field are in the code type UPCT on the code_head and code_detail tables. |
|
itemlocation |
No |
String (10) |
This field specifies if the service call was to fetch the enterprise view or a specific location. The value is either 'ent' or the node ID parameter. |
|
localdescription |
No |
String (250) |
This field specifies the local description of the item. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
|
localshortdescription |
No |
String (120) |
This field specifies the local short description of the item. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
|
uintype |
No |
String (6) |
This field specifies the unique identification number (UIN) type used to identify the instances of the item at the location. This is applicable when the service query parameter of node level and node ID is used to fetch data for a specific location. |
Table 5-19 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"item": "100100076",
"itemparent": null,
"itemgrandparent": null,
"itemlevel": 1,
"tranlevel": 1,
"inventoryind": "Y",
"diff1level": null,
"diff1type": null,
"diff1": null,
"diff2level": null,
"diff2type": null,
"diff2": null,
"diff3level": null,
"diff3type": null,
"diff3": null,
"division": 1,
"groupid": 1,
"dept": 3041,
"class": 1,
"uniqueclass": 1,
"subclass": 1,
"uniquesubclass": 1,
"description": "Regular Item 100100076",
"shortdescription": "100100076 Item",
"brandname": null,
"merchandiseind": "Y",
"mfgrecretail": 12.99,
"orginalunitretail": 12.99,
"catchweightind": "Y",
"itemservicelevel": null,
"giftwrapind": "Y",
"shipaloneind": "Y",
"standarduom": "EA",
"productclassification": null,
"xdiff1desc": null,
"xdiff2desc": null,
"xdiff3desc": null,
"itemnumbertype": "MANL",
"itemlocation": "ent",
"localdescription": "localItemDesc",
"localshortdescription": "localShortDesc",
"uintype": null
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"item": "101100001",
"action": "INSERT",
"itemlocation": "ent",
"itemparent": "100250007",
"itemgrandparent": null,
"itemlevel": 2,
"tranlevel": 1,
"inventoryind": "Y",
"diff1level": null,
"diff1type": null,
"diff1": null,
"diff2level": null,
"diff2type": null,
"diff2": null,
"diff3level": null,
"diff3type": null,
"diff3": null,
"division": 3000,
"groupid": 304,
"dept": 3041,
"class": 1,
"uniqueclass": 139,
"subclass": 1,
"uniquesubclass": 17,
"description": "Something - MK",
"shortdescription": "Something",
"localdescription": null,
"merchandiseind": "Y",
"uintype": null,
"mfgrecretail": null,
"orginalunitretail": null,
"catchweightind": "N",
"itemservicelevel": null,
"giftwrapind": "N",
"shipaloneind": "N",
"standarduom": "EA",
"productclassification": null,
"xdiff1desc": null,
"xdiff2desc": null,
"xdiff3desc": null,
"itemnumbertype": "UPC-A"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/item/upc?before=2021-05-13T16%3A38%3A07.284763%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&since=1970-01-01T00%3A00%3A00.001Z ",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/item/upc?before=2021-05-13T16%3A38%3A07.284763%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&offsetkey=101100001&since=1970-01-01T00%3A00%3A00.001Z ",
"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 |
| ITEM_MASTER | Yes | No | No | No |
| ICL_RMS_ITEM_MASTER | Yes | No | Yes | Yes |
| MERCHAPI_ITEM_MASTER | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_MASTER | Yes | No | No | No |
| ICL_RMS_ITEM_IMAGE | No | Yes | No | No |
| ICL_RMS_RELATED_ITEM | No | Yes | No | No |
| ICL_RMS_ITEM_LOC | No | Yes | No | No |
| SYSTEM_OPTIONS | Yes | No | No | No |
REST Endpoint for Omni channel/ Merchandise Hierarchy details
Business Overview
This service retrieves the merchandise hierarchy relationships. No details about each hierarchy value are provided, only the hierarchy tree relationships are returned. In order to fetch new updates pass the parameter of since/before timestamp.
This service publishes the merchandise hierarchy to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes the current company-through-subclass hierarchy tree with parent-child links, hierarchy display identifiers, and buyer assignments where they are maintained in Merchandising. This service does not provide details about individual hierarchy value, only the hierarchy tree relationships are returned.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: DIVISION, GROUPS, DEPS, CLASS, SUBCLASS
Additional business tables: COMPHEAD, CODE_DETAIL
JSON cache table: MERCHAPI_MERCH_HIER
JSON generation view: V_MERCHAPI_MERCH_HIER_JSON
The source view builds the company-through-subclass hierarchy from COMPHEAD, DIVISION, GROUPS, DEPS, CLASS, SUBCLASS, and CODE_DETAIL, and it uses CODE_DETAIL (CODE_TYPE = 'MHSO') to label and sort the hierarchy levels.
Functionally, the service publishes the current hierarchy tree with parent-child links, display identifiers, and buyer assignments where they are maintained, and it seeds the company row when it is missing so the tree always has a company root.
The cache is refreshed from that current-state hierarchy source so the published tree stays aligned with the latest company-through-subclass structure in Merchandising.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_MERCHAPI_MERCH_HIER_JSON. No additional filter criteria were identified beyond the cache-build logic.
Rebuild marks cache rows deleted when the hierarchy row no longer exists in V_MERCHAPI_MERCH_HIER_JSON.
ICL (Integration Change Log) table: ICL_RMS_DIVISION, ICL_RMS_GROUPS, ICL_RMS_DEPS, ICL_RMS_CLASS, ICL_RMS_SUBCLASS (ICL consumer name = MERCHAPI)
Delta processing is driven by ICL_RMS_DIVISION, ICL_RMS_GROUPS, ICL_RMS_DEPS, ICL_RMS_CLASS, and ICL_RMS_SUBCLASS.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_MERCH_HIER
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_MERCH_HIER_ADHOC_PROCESS -> MERCHAPI_OMNI_MERCH_HIER_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/merchhier
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-20 PageResultsItemsVMerchapiMerchHier - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-21 VMerchapiMerchHier - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for merchandising hierarchy. |
|
nodeid |
No |
Number(10,0) |
This column contains the Merchandising Hierarchy ID. |
|
hierarchylevel |
No |
String (10) |
This column contains the Merchandising Hierarchy Level. |
|
nodename |
No |
String (120) |
This column contains the name of the Merchandising Hierarchy. |
|
parentlevel |
No |
String (10) |
This column contains the Parent Merchandising Hierarchy Level. |
|
parentnodeid |
No |
Number(10,0) |
This column contains the Parent Merchandising Hierarchy ID. |
|
merchdisplayid |
No |
Number(10,0) |
This column contains the merchandising hierarchy display ID. |
|
buyer |
No |
Number(4,0) |
This column contains the number of the buyer associated with the merchandising hierarchy. |
Table 5-22 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"nodeid": 1,
"hierarchylevel": "COMPANY",
"nodename": "Retailers Ltd",
"parentlevel": "COMPANY",
"parentnodeid": 1,
"merchdisplayid": 1,
"buyer": 1002
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "UPDATE",
"nodeid": 1,
"hierarchylevel": "COMPANY",
"nodename": "Retailers Ltd",
"parentlevel": null,
"parentnodeid": null,
"merchdisplayid": 1,
"buyer": null
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/merchhier?before=2021-05-12T20%3A43%3A04.296066%2B05%3A30&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/location/warehouse?before=2021-05-12T20%3A15%3A13.253929%2B05%3A30&limit=1&offsetkey=2%2Cvirtual&since=1970-01-01T00%3A00%3A00.001Z ",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| ICL_RMS_DIVISION | Yes | No | Yes | Yes |
| ICL_RMS_GROUPS | Yes | No | Yes | Yes |
| ICL_RMS_DEPS | Yes | No | Yes | Yes |
| ICL_RMS_CLASS | Yes | No | Yes | Yes |
| ICL_RMS_SUBCLASS | Yes | No | Yes | Yes |
| COMPHEAD | Yes | No | No | No |
| CODE_DETAIL | Yes | No | No | No |
| MERCHAPI_MERCH_HIER | Yes | Yes | Yes | Yes |
| V_ MERCHAPI_MERCH_HIER | Yes | No | No | No |
| V_ MERCHAPI_MERCH_HIER _JSON | Yes | No | No | No |
| SYSTEM_OPTIONS | Yes | No | No | No |
REST Endpoint for Omni channel/Org hier descendant’s details
Business Overview
This service retrieves organization hierarchy relationships for the levels below the provided hierarchy value (including warehouses). For example, if a region is sent in as the input information, the service will return all of the districts and stores in the provided region. No details about each hierarchy value are provided, only the hierarchy tree relationships are returned. In order to fetch new updates pass the parameter of since/before timestamp.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: CHAIN, AREA, REGION, DISTRICT, STORE, WH, ADDR
Additional business tables: COMPHEAD, CODE_DETAIL
JSON cache table: MERCHAPI_ORG_HIER (shared with foundation/omnichannel/orghier)
JSON generation view: V_ORG_HIER_FULL_VW (shared cache source used by foundation/omnichannel/orghier)
This service is the descendant projection over the same organizational hierarchy cache table, MERCHAPI_ORG_HIER.
It uses the same underlying hierarchy data built from V_ORG_HIER_FULL_VW, but functionally it returns the current non-deleted descendants beneath a supplied organization node rather than the broader change-tracked relationship feed.
Because it is a child merchapi of foundation/omnichannel/orghier, it does not have its own separate cache-population process.
Initial Seeding and post enablement rebuild/repair
This service relies on the shared initial-seeding and rebuild flow used by foundation/omnichannel/orghier.
That shared rebuild uses the all-level org-hierarchy refresh path.
ICL (Integration Change Log) table: ICL_RMS_CHAIN, ICL_RMS_AREA, ICL_RMS_REGION, ICL_RMS_DISTRICT, ICL_RMS_STORE, ICL_RMS_WH, ICL_RMS_ADDR (ICL consumer name = MERCHAPI)
This child service relies on the shared org-hierarchy delta flow, with address deltas scoped to modules WH, ST, and WFST.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ORG_HIER_STR_WH
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ORG_HIER_STR_WH_ADHOC_PROCESS -> MERCHAPI_OMNI_ORG_HIER_STR_WH_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/orghier/descendant
Special handling
Additional GET query parameters: nodelevel, nodeid.
Supported nodelevel values for this service are COMPANY, CHAIN, AREA, REGION, DISTRICT.
Foundation/omnichannel/orghier/descendant is a child merchapi of foundation/omnichannel/orghier.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-23 PageResultsItemsVMerchApiOrgHier - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-24 VMerchApiOrgHier - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
hierarchylevel |
No |
String (10) |
This field specifies Organization Hierarchy Level. |
|
hierarchynodeid |
No |
Number(10,0) |
This field specifies Organization Hierarchy ID. |
|
hierarchynodename |
No |
String (120) |
This field specifies the name of the Organization Hierarchy ID. |
|
parentlevel |
No |
String (10) |
This field specifies the Parent Organization Hierarchy Level. |
|
parentid |
No |
Number(10,0) |
This field specifies Parent Organization Hierarchy ID. |
|
levelorder |
No |
Number(4,0) |
This field specifies the hierarchy level order. |
Table 5-25 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"hierarchylevel": "CHAIN",
"hierarchynodeid": 100,
"hierarchynodename": null,
"parentlevel": null,
"parentid": 1,
"levelorder": 10
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"hierarchylevel": "COMPANY",
"hierarchynodeid": 9118,
"hierarchynodename": "Retailers Ltd",
"parentlevel": null,
"parentid": null,
"levelorder": 1
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/orghier/descendant?nodelevel=COMPANY&limit=1&nodeid=9118",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/orghier/descendant?nodelevel=COMPANY&limit=1&nodeid=9118&offsetkey=1%2C9118",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| V_ICL_RMS_ORGHIER | Yes | No | No | No |
| ICL_RMS_CHAIN | Yes | Yes | Yes | Yes |
| ICL_RMS_AREA | Yes | Yes | Yes | Yes |
| ICL_RMS_REGION | Yes | Yes | Yes | Yes |
| ICL_RMS_DISTRICT | Yes | Yes | Yes | Yes |
| ITEM_LOC | Yes | No | No | No |
| MERCHAPI_ORG_HIER | Yes | Yes | Yes | Yes |
| V_ORG_HIER_FULL_VW | Yes | No | No | No |
| V_MERCHAPI_ORG_HIER | Yes | No | No | No |
REST Endpoint for Omni channel/Org hierarchy details
Business Overview
This service publishes organizational hierarchy relationships to downstream consuming systems. It expands the company, chain, area, region, district, store, and warehouse node set into hierarchy relationship rows so consuming systems can retrieve descendants beneath a selected parent node while each row still carries its immediate parent information.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: CHAIN, AREA, REGION, DISTRICT, STORE, WH, ADDR
Additional business tables: COMPHEAD, CODE_DETAIL
JSON cache table: MERCHAPI_ORG_HIER
JSON generation view: not applicable; source hierarchy view is V_ORG_HIER_FULL_VW
That source view builds company, chain, area, region, district, store, and warehouse nodes from COMPHEAD, CHAIN, AREA, REGION, DISTRICT, STORE, WH, and CODE_DETAIL.
Functionally, V_MERCHAPI_ORG_HIER expands those nodes into ancestor-to-descendant relationship rows, so consumers can retrieve the hierarchy beneath a selected parent node while each row still carries its immediate parent information.
The shared package processes higher organization levels directly and then invokes the retail-store and warehouse loaders so the broader org-hierarchy, store, and warehouse caches stay aligned.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_ORG_HIER_FULL_VW. No additional filter criteria were identified beyond the cache-build logic.
Foundation/omnichannel/orghier rebuilds all hierarchy levels.
ICL (Integration Change Log) table: ICL_RMS_CHAIN, ICL_RMS_AREA, ICL_RMS_REGION, ICL_RMS_DISTRICT, ICL_RMS_STORE, ICL_RMS_WH, ICL_RMS_ADDR (ICL consumer name = MERCHAPI)
Delta processing uses ICL_RMS_CHAIN, ICL_RMS_AREA, ICL_RMS_REGION, ICL_RMS_DISTRICT, ICL_RMS_STORE, ICL_RMS_WH, and ICL_RMS_ADDR, with address deltas scoped to modules WH, ST, and WFST.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ORG_HIER_STR_WH
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ORG_HIER_STR_WH_ADHOC_PROCESS -> MERCHAPI_OMNI_ORG_HIER_STR_WH_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/orghier
Special handling
Additional GET query parameters: nodelevel, nodeid.
Supported nodelevel values for this service are COMPANY, CHAIN, AREA, REGION, DISTRICT, STORE.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-26 PageResultsItemsVMerchApiOrgHierDetail - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-27 VMerchApiOrgHierDetail - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for organization hierarchy detail. |
|
hierarchylevel |
No |
String (10) |
This field specifies Organization Hierarchy Level. |
|
hierarchynodeid |
No |
Number(10,0) |
This field specifies Organization Hierarchy ID. |
|
hierarchynodename |
No |
String (120) |
This field specifies the name of the Organization Hierarchy ID. |
|
parentlevel |
No |
String (10) |
This field specifies the Parent Organization Hierarchy Level. |
|
parentid |
No |
Number(10,0) |
This field specifies Parent Organization Hierarchy ID. |
|
mgrname |
No |
String (120) |
This field specifies the name of the store manager. |
|
stockholding |
No |
String (1) |
This field specifies whether the store can hold stock. This field holds value only for stores. |
|
integratedpos |
No |
String (1) |
This field indicates whether or not the POS system at the store is integrated. This field holds value only for stores. |
Table 5-28 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": null,
"hierarchylevel": "CHAIN",
"hierarchynodeid": 100,
"hierarchynodename": null,
"parentlevel": null,
"parentid": 1,
"mgrname": null,
"stockholding": null,
"integratedpos": null
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than 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:
" {
"action": "UPDATE",
"hierarchylevel": "AREA",
"hierarchynodeid": 1212,
"hierarchynodename": "Area 12121",
"parentlevel": "CHAIN",
"parentid": 1212,
"mgrname": "V",
"stockholding": null,
"integratedpos": null
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/orghier?before=2021-05-11T15%3A20%3A25.711306%2B00%3A00&nodelevel=COMPANY&limit=1&nodeid=9118&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/orghier?before=2021-05-11T15%3A20%3A25.711306%2B00%3A00&nodelevel=COMPANY&limit=1&nodeid=9118&offsetkey=AREA%2C1212&since=1970-01-01T00%3A00%3A00.001Z",
"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 |
| V_ICL_RMS_ORGHIER | Yes | No | No | No |
| ICL_RMS_CHAIN | Yes | Yes | Yes | Yes |
| ICL_RMS_AREA | Yes | Yes | Yes | Yes |
| ICL_RMS_REGION | Yes | Yes | Yes | Yes |
| ICL_RMS_DISTRICT | Yes | Yes | Yes | Yes |
| ITEM_LOC | Yes | No | No | No |
| MERCHAPI_ORG_HIER | Yes | Yes | Yes | Yes |
| V_ORG_HIER_FULL_VW | Yes | No | No | No |
| V_MERCHAPI_ORG_HIER | Yes | No | No | No |
REST Endpoint for Omni channel/refresh Date
Business Overview
This is a metadata publish service that exposes the list of enabled integration services together with cache-refresh and latest-change information for each service. It is intended as a lightweight pre-check for clients that call multiple integration APIs as part of the same batch or polling process. By calling this service first, a client can identify which APIs have had a real data change and avoid redundant requests to services whose published data has not changed.
Cache refresh timestamp: The timestamp when the JSON cache for a service was initially loaded or most recently fully refreshed. This helps determine when a cache was last rebuilt and whether a downstream consumer should perform a bulk reload or continue with delta retrieval. This information is sourced from MERCHAPI_CONFIG.
Latest data update timestamp: The most recent data-update timestamp for the service. This helps reduce unnecessary calls across multiple integration services by allowing a client to identify, in a single request, which services have had recent data changes. This information is derived by querying the applicable underlying table for each individual service.
Implementation usage: Where a client batch process calls multiple publish APIs in sequence, this service can be used as a gating step to determine which APIs need to be called in that cycle and which can be skipped because no new published data is available.
XStore usage: XStore relies extensively on this service to keep integration calls from XOCS to MFCS relevant by helping avoid unnecessary requests to APIs whose published data has not changed.
Performance note: This service relies on the LAST_UPDATE_DATETIME index being available on each JSON cache table. If any API is running initial seeding with the drop-index option enabled and the index rebuild has not yet completed, performance of this service for that table can degrade.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
entitytype |
No |
String |
entity type |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-29 PageResultsItemsVMerchApiRefreshDate - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-30 VMerchApiRefreshDate - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
entity |
No |
String (100) |
This field gives the service name which is defined in merchapi_config table. |
|
refreshdate |
No |
dateTime |
This field gives the refresh date which is the time when the initial loading of the service completes and the API is enabled in merchapi_config table. This field can be used to identify if a bulk process (api enablement or refresh with the option truncate and load) was done for the api. A change of refresh date indicates that the entire dataset is available for subscribe for the publish API. Note: XOCS heavily relies on this this field during every 30 min polling request to identify if the fetch for an API will be delta increment or a full download for an API and accordingly handle the call differently. |
|
latestupdatetime |
No |
dateTime |
This field provides the most recent update timestamp for the dataset applicable for the API. The purpose of this field is to provide additional visibility of the data changes across all the API in a single place to have the client calling the differnet publish API at regular frequency to optimize the number of service calls. |
Table 5-31 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"entity": "ItemImage",
"refreshdate": "2001-12-31T23:59:59.000Z",
"latestupdatetime": "2001-12-31T23:59:59.000Z"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"entity": "COFutureAvail",
"refreshdate": "2020-12-17T10:03:12.324664000-06:00",
"latestupdatetime": "2022-04-25T11:26:01.714875000+00:00"
}
],
"hasMore": false,
"limit": 10000,
"count": 15,
"links": [
{
"href": "http://<hostname> /MerchIntegrations/services/omnichannel/refreshdate?before=2021-05-06T21%3A00%3A34.238393%2B08%3A00&limit=10000&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
}
]
}REST Endpoint for Omni channel/Warehouse details
Business Overview
This service publishes warehouse details to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes warehouse records with the primary warehouse address maintained in Merchandising and derives the published warehouse type as physical or virtual from the warehouse relationship data.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: WH, ADDR
Additional business tables: CHANNELS, ADD_TYPE_MODULE, V_ADD_TYPE_TL, STATE, COUNTRY
JSON cache table: MERCHAPI_WH
JSON generation view: V_MERCHAPI_WH_JSON
The JSON view is built from WH, CHANNELS, ADDR, ADD_TYPE_MODULE, STATE, COUNTRY, and V_ADD_TYPE_TL.
Functionally, it publishes warehouse records with their primary warehouse address (ADDR_TYPE = 1 and PRIMARY_ADDR_IND = 'Y') and derives the published warehouse type as physical or virtual from the PHYSICAL_WH relationship.
The warehouse cache shares its loader with the omnichannel organization hierarchy and retail-store caches through the shared API_OMNI_ORG_HIER_STR_WH process.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_WH_JSON and publish warehouse records with the primary warehouse address where ADDR_TYPE = 1 and PRIMARY_ADDR_IND = 'Y'.
ICL (Integration Change Log) table: ICL_RMS_WH, ICL_RMS_ADDR (ICL consumer name = MERCHAPI)
Warehouse changes come from ICL_RMS_WH, and address-only changes come from ICL_RMS_ADDR for module WH.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ORG_HIER_STR_WH
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ORG_HIER_STR_WH_ADHOC_PROCESS -> MERCHAPI_OMNI_ORG_HIER_STR_WH_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/location/warehouse
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-32 PageResultsItemsVMerchApiWarehouse - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-33 VMerchApiWarehouse - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for warehouse details. |
|
warehouseid |
No |
Number(10,0) |
This field uniquely identifies the warehouse. |
|
type |
No |
String (8) |
This field determines which warehouses are physical and which are virtual. |
|
warehousename |
No |
String (150) |
This field specifies the name of the warehouse which, along with the warehouse number, identifies the warehouse. |
|
whnamesecondary |
No |
String (150) |
This field specifies the secondary name of the warehouse. |
|
contactname |
No |
String (120) |
This field specifies the name of the contact at this location. |
|
phonenumber |
No |
String (20) |
This field specifies the phone number of the contact person at this location. |
|
faxnumber |
No |
String (20) |
This field specifies the fax number of the contact person at this location. |
|
|
No |
String (100) |
This field specifies the email of the contact person at this location. |
|
currencycode |
No |
String (3) |
This field specifies the currency code under which the warehouse operates. |
|
physicalwh |
No |
Number(10,0) |
This field specifies the number of the physical warehouse that is assigned to the virtual warehouse. |
|
vatregion |
No |
Number(4,0) |
This field specifies the unique identifying number for the VAT region where this warehouse is located. |
|
orghiertype |
No |
Number(4,0) |
This field specifies the organization type that will be used for reporting purposes for the warehouse. The type comes from the organizational hierarchy. |
|
orghiervalue |
No |
Number(10,0) |
This field specifies the code associated with the specific organizational hierarchy type. |
|
orgentitytype |
No |
String (1) |
This field specifies if the warehouse is a legal entity (importer, exporter) or a regular warehouse. |
|
channelid |
No |
Number(4,0) |
This field specifies the channel for which the virtual warehouse will be assigned. |
|
channelname |
No |
String (120) |
This field specifies the name of the channel for which the virtual warehouse will be assigned. |
|
address1 |
No |
String (240) |
This field specifies the first line of the address. |
|
address2 |
No |
String (240) |
This field specifies the second line of the address. |
|
address3 |
No |
String (240) |
This field specifies the third line of the address. |
|
city |
No |
String (120) |
This field specifies the name of the city that is associated with the address. |
|
state |
No |
String (3) |
This field specifies the state abbreviation for the address. |
|
country |
No |
String (3) |
This field specifies the country where the address exists. |
|
postalcode |
No |
String (30) |
This field specifies the zip code for the address. |
Table 5-34 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": null,
"warehouseid": 6000,
"type": "physical",
"warehousename": null,
"whnamesecondary": null,
"contactname": "Laura Johnson",
"phonenumber": "1800800800",
"faxnumber": "617-897-0902",
"email": "someone@email.com",
"currencycode": "USD",
"physicalwh": 6000,
"vatregion": 1000,
"orghiertype": 50,
"orghiervalue": 1,
"orgentitytype": "R",
"channelid": 1,
"channelname": null,
"address1": "101 First Street",
"address2": "201 Second Street",
"address3": null,
"city": "Minneapolis",
"state": "MN",
"country": "US",
"postalcode": "55555-1234"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "INSERT",
"warehouseid": 2,
"type": "virtual",
"warehousename": "N. America Central",
"whnamesecondary": null,
"contactname": "Sue Glass",
"phonenumber": "3122222473",
"faxnumber": null,
"email": null,
"currencycode": "USD",
"physicalwh": 2,
"vatregion": 1000,
"orghiertype": null,
"orghiervalue": null,
"orgentitytype": "R",
"channelid": null,
"channelname": null,
"address1": "123 Street",
"address2": "Anytown",
"address3": null,
"city": "Anycity",
"state": "MN",
"country": "US",
"postalcode": "50250" }
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/location/warehouse?before=2021-05-12T20%3A15%3A13.253929%2B05%3A30&limit=1&since=1970-01-01T00%3A00%3A00.001Z ",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/merchhier?before=2021-05-12T21%3A00%3A13.036021%2B05%3A30&limit=1&offsetkey=10%2C1&since=1970-01-01T00%3A00%3A00.001Z ",
"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_WH | Yes | No | Yes | Yes |
| ICL_RMS_ADDR | Yes | No | Yes | Yes |
| ADDR | Yes | No | No | No |
| MERCHAPI_WH | Yes | Yes | Yes | Yes |
| MERCHAPI_ORG_HIER | No | No | Yes | No |
| V_MERCHAPI_WH | Yes | No | No | No |
| V_MERCHAPI_WH_JSON | Yes | No | No | No |
| SYSTEM_OPTIONS | Yes | No | No | No |
REST Endpoint for Omnichannel/related Item
Business Overview
This service publishes related-item relationships to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes relationships between a primary item and related items only while both item records remain approved in Merchandising, so relationships tied to non-approved primary or related items are not returned.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: RELATED_ITEM_HEAD, RELATED_ITEM_DETAIL, ITEM_MASTER
Additional business tables: none
JSON cache table: MERCHAPI_RELATED_ITEM
JSON generation view: V_MERCHAPI_RELATED_ITEM_JSON
The JSON view joins RELATED_ITEM_HEAD, RELATED_ITEM_DETAIL, and ITEM_MASTER for both the primary and related items.
Functionally, the main item and the related item must both still be approved (ITEM_MASTER.STATUS = 'A'), so the service publishes only active relationships between approved items.
The cache is refreshed from the approved relationship set in V_MERCHAPI_RELATED_ITEM_JSON and is republished when qualifying relationship or item approval changes occur.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_RELATED_ITEM_JSON and apply the rule that both item rows must have STATUS = 'A'.
ICL (Integration Change Log) table: ICL_RMS_RELATED_ITEM (ICL consumer name = MERCHAPI)
ICL entries are created using triggers on RELATED_ITEM_HEAD, RELATED_ITEM_DETAIL, ITEM_MASTER.
Item Approval Handling
On item approval, the main item publish flow writes related-item head and detail rows where the approved item is the primary item to ICL_RMS_RELATED_ITEM so qualifying relationships can publish when the item becomes approved.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_RELATED_ITEM
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_RELATED_ITEM_ADHOC_PROCESS -> MERCHAPI_OMNI_RELATED_ITEM_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/item/relateditem
Special handling
Additional GET query parameters: nodelevel, nodeid.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-35 PageResultsItemsVMerchApiRelatedItem - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-36 VMerchApiRelatedItem - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for related item. |
|
relationshipid |
No |
Number(20,0) |
This column contains the Relationship ID. |
|
item |
No |
String (25) |
This column contains the item. |
|
relationshiptype |
No |
String (6) |
This column contains the relationship type. |
|
mandatoryind |
No |
String (1) |
This column contains the mandatory indicator. |
|
relateditem |
No |
String (25) |
This column contains the related item. |
|
relateditemaction |
No |
String (6) |
Action for related item detail. |
|
startdate |
No |
date |
This column contains the start date. |
|
enddate |
No |
date |
This column contains the end date. |
|
priority |
No |
Number(4,0) |
This column contains the priority. |
Table 5-37 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"relationshipid": 1,
"item": null,
"relationshiptype": null,
"mandatoryind": null,
"relateditem": null,
"relateditemaction": null,
"startdate": "2001-12-31",
"enddate": "2001-12-31",
"priority": 1
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "INSERT",
"relationshipid": 120001,
"item": "111150001",
"relationshiptype": "CRSL",
"mandatoryind": "N",
"relateditem": "111051290",
"relateditemaction": "INSERT",
"startdate": null,
"enddate": null,
"priority": null
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/relateditem?before=2021-05-06T18%3A17%3A30.285106%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://localhost:8080/MerchIntegrations/services/foundation/omnichannel/item/relateditem?before=2021-05-06T18%3A17%3A30.285106%2B08%3A00&limit=1&offsetkey=120001%2C111051290&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST |
Yes
|
No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| ICL_RMS_RELATED_ITEM | Yes | Yes | Yes | Yes |
| MERCHAPI_RELATED_ITEM | Yes | Yes | Yes | Yes |
| V_MERCHAPI_RELATED_ITEM_JSON | Yes | No | No | No |
| V_MERCHAPI_RELATED_ITEM | Yes | Yes | Yes | Yes |
REST Endpoint for Omnichannel/Retail Store details
Business Overview
This service publishes retail store details to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes each store together with its company-through-district hierarchy placement and the primary address maintained for the store or workforce-store address modules in Merchandising.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: STORE, ADDR
Additional business tables: STORE_HIERARCHY, ADD_TYPE_MODULE
JSON cache table: MERCHAPI_RETAIL_STORE
JSON generation view: V_MERCHAPI_RETAIL_STORE_JSON
The JSON view joins STORE, STORE_HIERARCHY, ADDR, and ADD_TYPE_MODULE, so each published row carries the store's company-through-district placement together with the primary address maintained for store modules ST and WFST.
The store cache shares its loader with the omnichannel organization hierarchy and warehouse caches through the shared API_OMNI_ORG_HIER_STR_WH process.
Address publication is limited to the primary address rows for store modules ST and WFST.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_RETAIL_STORE_JSON and publish store hierarchy placement together with the primary address rows for modules ST and WFST.
Rebuild deletes or marks rows when the store no longer exists in the source view.
ICL (Integration Change Log) table: ICL_RMS_STORE, ICL_RMS_ADDR (ICL consumer name = MERCHAPI)
Store changes come from ICL_RMS_STORE, and address-only changes come from ICL_RMS_ADDR for ST and WFST addresses when no store ICL row exists.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ORG_HIER_STR_WH
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ORG_HIER_STR_WH_ADHOC_PROCESS -> MERCHAPI_OMNI_ORG_HIER_STR_WH_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/location/retailstore
Special handling
Additional GET query parameters: nodelevel, nodeid.
Supported nodelevel values for this service are COMPANY, CHAIN, AREA, REGION, DISTRICT, STORE.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-38 PageResultsItemsVMerchapiRetailStore - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-39 VMerchapiRetailStore - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for the store. |
|
storeid |
No |
Number(10,0) |
This column contains the number which uniquely identifies the store. |
|
storename |
No |
String (150) |
This column contains the name of the store which, along with the store number, identifies the store. |
|
storename10 |
No |
String (10) |
This column contains a ten-character abbreviation of the store name. |
|
manager |
No |
String (120) |
This column contains the name of the store manager. |
|
phonenumber |
No |
String (20) |
This column contains the phone number for the store. |
|
faxnumber |
No |
String (20) |
This column contains the fax number for the store. |
|
|
No |
String (100) |
This column contains the email address for the location. |
|
totalsqfeet |
No |
Number(8,0) |
This column contains the total square footage of the store. |
|
sellingsqfeet |
No |
Number(8,0) |
This column contains the total square footage of the store's selling area. |
|
currencycode |
No |
String (3) |
This column contains the currency code under which the store operates. |
|
vatregion |
No |
Number(4,0) |
This column contains the number of the Value Added Tax region in which this store is contained. |
|
stockholding |
No |
String (1) |
This column indicates whether the store can hold stock. In a non-multichannel environment this will always be Y. |
|
integratedpos |
No |
String (1) |
This column indicates whether or not the POS system at the store is integrated. |
|
contactname |
No |
String (120) |
This column contains the name of the contact for the store at this address. |
|
address1 |
No |
String (240) |
This column contains the first line of the store address. |
|
address2 |
No |
String (240) |
This column contains the second line of the store address. |
|
address3 |
No |
String (240) |
This column contains the third line of the store address. |
|
city |
No |
String (120) |
This column contains the name of the city that is associated with the store address. |
|
state |
No |
String (3) |
This column contains the state abbreviation for the store address. |
|
country |
No |
String (3) |
This column contains the country where the store address exists. |
|
postalcode |
No |
String (30) |
This column contains the zip code for the store address. |
Table 5-40 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"storeid": 1521,
"storename": "Albuquerque",
"storename10": "Albuquerqu",
"manager": "Paul Petros",
"phonenumber": "505-388-5577",
"faxnumber": "458121212",
"email": "someone@oracle.com",
"totalsqfeet": 4500,
"sellingsqfeet": 4000,
"currencycode": "USD",
"vatregion": 1000,
"stockholding": "Y",
"integratedpos": "Y",
"contactname": "Sue Glass",
"address1": "123 Street",
"address2": "Anaheim",
"address3": "California",
"city": "Anaheim",
"state": "MN",
"country": "US",
"postalcode": "50250"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "INSERT",
"storeid": 1111,
"storename": "Rebuild with refresh N NO ICL Charlotte *",
"storename10": "Charlotte",
"manager": "Don Wright",
"phonenumber": "704-555-2121",
"faxnumber": null,
"email": null,
"totalsqfeet": 64400,
"sellingsqfeet": 59500,
"currencycode": "USD",
"vatregion": 1000,
"stockholding": "Y",
"integratedpos": "Y",
"contactname": "Sue Glass",
"address1": "123 Street",
"address2": "Anytown",
"address3": null,
"city": "Anycity",
"state": "MN",
"country": "US",
"postalcode": "50250"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/location/retailstore?before=2021-05-12T17%3A30%3A45.385517%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>:<portnumber>/MerchIntegrations/services/foundation/omnichannel/location/retailstore?before=2021-05-12T17%3A30%3A45.385517%2B05%3A30&nodelevel=COMPANY&limit=1&nodeid=1&offsetkey=1111&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| ICL_RMS_STORE | Yes | Yes | Yes | Yes |
| ICL_RMS_ADDR | Yes | No | Yes | Yes |
| ADDR | Yes | No | No | No |
| STORE | Yes | No | No | No |
| MERCHAPI_RETAIL_STORE | Yes | Yes | Yes | Yes |
| MERCHAPI_ORG_HIER | No | No | Yes | No |
| V_MERCHAPI_RETAIL_STORE_JSON | Yes | No | No | No |
| SYSTEM_OPTIONS | Yes | No | No | No |
REST Endpoint for Omnichannel/Dimension Type details
Business Overview
This service publishes dimension-type rows to the Omnichannel application and can also be consumed by downstream consuming systems. Functionally, the published dimensionSystem is resolved as the item itself, the item parent, or the item grandparent depending on item level, and the service publishes dimension-type rows for differentiator group-level data or for ID-level data when the item resolves to a style dimension system.
This service retrieves the item differentiator types 1, 2 and 3 (referred to as dimension types in XStore). For example, it might return that an item is differentiated by 'color' (diff 1 type), 'waist size' (diff 2 type) and 'inseam' (diff 3 type). While items can be defined with up to four differentiators, this service only returns up to 3 because the Omnichannel cloud services only support up to 3 dimensions. In order to fetch new updates pass the parameter of since/before timestamp.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
The data processing for this service is controlled by the main 'foundation/omnichannel/item' service. Refer to API documentation for additional batch configuration details.
Core business tables: ITEM_MASTER, DIFF_GROUP_HEAD, DIFF_GROUP_DETAIL, DIFF_IDS
Additional business tables: none
JSON cache table: MERCHAPI_ITEM_DIFF_TYPE
JSON generation view: not applicable; cache rows are derived from the shared V_MERCHAPI_ITEM_JSON item source
The shared item source already resolves item level, transaction level, item parent, item grandparent, differentiator level, differentiator type, and differentiator description for DIFF_1 through DIFF_3.
The dimension-type cache unpivots those DIFF_1 through DIFF_3 columns, resolves dimensionSystem as item, item parent, or item grandparent based on item level, and publishes GROUP differentiator rows plus ID differentiator rows only when the derived item type resolves to STYLE.
Qualifying diff-group and diff-ID update flows can also republish affected dimension-type rows after resolving the impacted items from the shared item source.
Webhook configuration api name: foundation/omnichannel/item/dimensiontype
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 10000. |
|
offsetkey |
No |
String |
Offset key |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-41 PageResultsItemsVMerchapiDimType - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-42 VMerchapiDimType - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for the Dimension Type group. |
|
itemaction |
No |
String (6) |
Action for the Item changes related to Dimension Type Group. |
|
dimensionsystem |
No |
String (25) |
This column contains the dimension system. This contains the item, item parent or the item grandparent depending on the item level. |
|
dimension |
No |
String (6) |
This column contains the dimension. This is the differentiator type of the item. |
|
description |
No |
String (120) |
This field contains the description of the dimension. |
|
seq |
No |
Number(1,0) |
This column contains the sequence number of the dimension. Valid values are 1 for Diff 1, 2 for Diff 2 and 3 for Diff 3. |
Table 5-43 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"itemaction": null,
"dimensionsystem": "1000000010",
"dimension": "MT",
"description": "Mens TShirt Small",
"seq": 1
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| Items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| Limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| Links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"itemaction": null,
"dimensionsystem": "1000023212",
"dimension": "C_3815",
"description": "Smoke Diff Group Clr",
"seq": 1
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/dimensiontype?before=2021-05-11T17%3A41%3A38.052402%2B00%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/dimensiontype?before=2021-05-11T17%3A41%3A38.052402%2B00%3A00&limit=1&offsetkey=0430.PD.1%2C1%2CC_3815&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| MERCHAPI_ITEM_DIFF_TYPE | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_JSON | Yes | No | No | No |
| V_MERCHAPI_DIM_TYPE | Yes | No | No | No |
REST Endpoint for Omnichannel/Dimension Value details
Business Overview
This service publishes dimension-value rows to the Omnichannel application and can also be consumed by downstream consuming systems. Functionally, the published dimensionSystem is resolved as the item itself, the item parent, or the item grandparent depending on item level, and the cache publishes differentiator values only for rows where DIFF_LEVEL = 'ID'. The display sequence is derived from the matching differentiator-group detail.
This service retrieves item differentiators (referred to as 'dimensions' in XStore). Only differentiators that are associated with approved items are returned.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
The data processing for this service is controlled by the main 'foundation/omnichannel/item' service. Refer to API documentation for additional batch configuration details.
Core business tables: ITEM_MASTER, DIFF_IDS
Additional business tables: DIFF_GROUP_DETAIL
JSON cache table: MERCHAPI_ITEM_DIFF_VALUE
JSON generation view: not applicable; cache rows are derived from the shared V_MERCHAPI_ITEM_JSON item source
The shared item source already resolves item level, transaction level, item parent, item grandparent, differentiator level, differentiator type, and differentiator description for DIFF_1 through DIFF_3.
The dimension-value cache unpivots those DIFF_1 through DIFF_3 columns, resolves dimensionSystem as item, item parent, or item grandparent based on item level, keeps only ID differentiator rows, and derives displayseq from DIFF_GROUP_DETAIL for the matching differentiator group and differentiator value combination.
Qualifying diff-ID update flows can also republish affected dimension-value rows after resolving the impacted items from the shared item source.
Webhook configuration api name: foundation/omnichannel/item/dimensionvalue
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 10000. |
|
offsetkey |
No |
String |
Offset key |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-44 PageResultsItemsVMerchapiDimValue - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-45 VMerchapiDimValue - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for the Dimension Value group. |
|
itemaction |
No |
String (9) |
Action for the item changes related to the Dimension Value group. |
|
dimensionsystem |
No |
String (25) |
This column contains the dimension system. This contains the item, item parent or the item grandparent depending on the item level. |
|
dimension |
No |
String (6) |
This column contains the dimension. This is the differentiator type of the item. |
|
value |
No |
String (10) |
This column contains the value of the dimension. |
|
description |
No |
String (120) |
This field contains the description of the dimension. |
|
displayseq |
No |
Number(4,0) |
This column contains the display sequence number of the dimension. |
Table 5-46 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"itemaction": null,
"dimensionsystem": "1000000010",
"dimension": "MT",
"value": "MT-Small",
"description": "Mens TShirt Small",
"displayseq": 1
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| Items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| Limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| Links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"itemaction": "NO_CHANGE",
"dimensionsystem": "1000012345",
"dimension": "C_3815",
"value": "BLACK_8742",
"description": "Auto Black BLACK_8742",
"displayseq": 1
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/dimensionvalue?before=2021-05-11T17%3A51%3A17.671921%2B00%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/dimensionvalue?before=2021-05-11T17%3A51%3A17.671921%2B00%3A00&limit=1&offsetkey=0430.PD.1%2CC_3815%2CBLACK_8742&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| MERCHAPI_ITEM_DIFF_VALUE | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_JSON | Yes | No | No | No |
| V_MERCHAPI_DIM_VALUE | Yes | No | No | No |
REST Endpoint for Omnichannel/future Inventory
Business Overview
This service publishes future inventory to the Omnichannel application and can also be consumed by downstream consuming systems. It includes only the future inventory that is relevant to customer-order fulfillment for active, transaction-level, orderable items that are backorder-enabled at stockholding customer-order locations, together with the backorder, open-order, and received quantities that still contribute to fulfillment. The calculation excludes non-customer-order allocation branches from open order quantity and applies the source pack rules so warehouse sellable packs publish at pack level while store sellable packs and non-sellable packs publish through component items.
This service retrieves future inventory information aggregated at an item level. The service returns on-order, received, and back-ordered quantity against an item.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: STORE, WH, ITEM_LOC_SOH, ITEM_MASTER, ITEM_LOC_TRAITS, ALLOC_HEADER
Additional business tables: ALLOC_DETAIL, ORDHEAD, ORDLOC, PERIOD, V_PACKSKU_QTY
JSON cache table: MERCHAPI_FUTURE_AVAIL_CO_INV
JSON generation view: V_BDI_CO_FUTURE_AVAIL
The source view pulls future availability from STORE, WH, ITEM_LOC_SOH, ITEM_MASTER, ITEM_LOC_TRAITS, ALLOC_HEADER, ALLOC_DETAIL, ORDHEAD, ORDLOC, PERIOD, and V_PACKSKU_QTY.
Functionally, it publishes only the future inventory that is relevant to customer-order fulfillment: active transaction-level orderable items that are backorder-enabled at stockholding customer-order locations, together with the backorder, open-order, and received quantities that still contribute to fulfillment.
The calculation excludes non-customer-order allocation branches from open order quantity and applies pack rules so sellable warehouse packs publish at pack level while store sellable packs and non-sellable packs publish through their component items.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild pull published rows from V_BDI_CO_FUTURE_AVAIL. No additional filter criteria were identified beyond the cache-build logic.
Mark rows deleted when the item is no longer backorderable in ITEM_LOC_TRAITS.
ICL (Integration Change Log) table: none; delta processing compares V_BDI_CO_FUTURE_AVAIL directly to MERCHAPI_FUTURE_AVAIL_CO_INV
No ICL table is used; both delta and refresh compare V_BDI_CO_FUTURE_AVAIL directly to MERCHAPI_FUTURE_AVAIL_CO_INV.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
This service does bulk heavy data processing for the entire dataset and hence this job should be run once or twice per day. This should not be configured to run hourly or multiple times in an hour.
Process configuration name: API_OMNI_FUTURE_AVL_CO_INV
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_FUT_AVL_CO_INV_ADHOC_PROCESS -> MERCHAPI_OMNI_FUTURE_AVL_CO_INV_ADHOC_JOB
Webhook configuration api name: inventory/omnichannel/inventory/futureinventory
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-47 PageResultsItemsVMerchapiFutureAvailCoInv - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-48 VMerchapiFutureAvailCoInv - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Item Future Available Inventory. |
|
item |
No |
String (25) |
This column contains the item. |
|
onorderquantity |
No |
Number(12,4) |
This column contains the on order quantity of the item. |
|
receivedquantity |
No |
Number(12,4) |
This column contains the received quantity of the item. |
|
backorderquantity |
No |
Number(12,4) |
This column contains the backorder quantity of the item. |
Table 5-49 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"item": "100001000",
"onorderquantity": 10,
"receivedquantity": 10,
"backorderquantity": 10
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "UPDATE",
"item": "105700020",
"onorderquantity": "0",
"receivedquantity": "0",
"backorderquantity": "30"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/inventory/omnichannel/inventory/futureinventory?before=2021-05-06T20%3A56%3A51.316158%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http:// <hostname>/MerchIntegrations/services/inventory/omnichannel/inventory/futureinventory?before=2021-05-06T20%3A56%3A51.316158%2B08%3A00&limit=1&offsetkey=105700020&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST |
Yes
|
No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| MERCHAPI_BOOKMARK | Yes | Yes | Yes | Yes |
| V_BDI_CO_FUTURE_AVAIL | Yes | No | No | No |
| MERCHAPI_FUTURE_AVAIL_CO_INV | Yes | Yes | Yes | Yes |
| V_MERCHAPI_FUTURE_AVAIL_CO_INV | Yes | No | No | No |
REST Endpoint for Omnichannel/item Image
Business Overview
This service publishes item images to the Omnichannel application and can also be consumed by downstream consuming systems. The source view publishes images only for currently approved items, and when callers supply nodelevel and nodeid the service returns images only for items that also have a matching MERCHAPI_ITEM_LOC row at the requested store or warehouse.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: ITEM_IMAGE
Additional business tables: ITEM_MASTER
JSON cache table: MERCHAPI_ITEM_IMAGE
JSON generation view: V_MERCHAPI_ITEM_IMAGE_JSON
The JSON view is built from ITEM_IMAGE and ITEM_MASTER, and it explicitly filters to ITEM_MASTER.STATUS = 'A', so only images for currently approved items are published from the source view.
When callers supply nodelevel and nodeid, the REST query further requires a matching MERCHAPI_ITEM_LOC row for the item at the requested store or warehouse, which scopes the published images to items active at that node.
When nodelevel and nodeid are supplied, the service requires a matching MERCHAPI_ITEM_LOC row for the item at the requested node.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_ITEM_IMAGE_JSON and apply ITEM_MASTER.STATUS = 'A'.
ICL (Integration Change Log) table: ICL_RMS_ITEM_IMAGE (ICL consumer name = MERCHAPI)
ICL entries are created using item-image changes, while ITEM_MASTER.STATUS = 'A' is enforced through the source view when rows are rebuilt or merged.
Item Approval Handling
On item approval, the main item publish flow writes existing ITEM_IMAGE rows for the item to ICL_RMS_ITEM_IMAGE so image data is also queued when the item becomes approved.
Batch Configuration. Asynchronous delta processing is supported using Background engine and also via POM scheduling. Choose one.
Process configuration name: API_OMNI_ITEM_IMAGE
To enable via Background engine set BACKGROUND_RUN_FLAG to Y and review the BACKGROUND_RUN_INTERVAL_SECOND parameter.
POM Batch schedule process and job: MERCHAPI_DELTA_OMNI_ITEM_IMAGE_ADHOC_PROCESS -> MERCHAPI_OMNI_ITEM_IMAGE_ADHOC_JOB
Webhook configuration api name: foundation/omnichannel/item/image
Special handling
Additional GET query parameters: nodelevel, nodeid.
Performance Considerations
For customers expecting high to very high publish volume from this API, sizing and operational tuning should be addressed early in the implementation lifecycle. Initial cache seeding, ongoing delta processing, full extracts, and incremental downloads or webhook-driven delivery have different runtime characteristics and should be evaluated separately.
Multi-threading and commit control
This service batch processing for delta and initial seeding is single threaded.
The delivered setting for API_COMMIT_MAX_COUNTER is currently 1000 and it can be extend to 10,000.
REST fetch considerations
REST page size should be selected based on average payload size so the average response remains below about 10 MB per call. Common page-limit values are 1,000 or 10,000 rows.
For full downloads, do not provide the since query parameter so the database can favor the primary-key access path. For delta downloads, use a small time window, typically a few minutes and at most a few hours, so the eligible row set on the LAST_UPDATE_DATETIME index remains small.
Wider delta windows, especially multi-day windows that can arise during outages or data recovery, generally do not perform well. For such scenarios, keeping BUILD_HISTOGRAM enabled allows the service to support recovery through smaller, more selective polling windows using the optimalBefore query parameter.
In this catch-up pattern, for requests up to 30 days in the past, the client provides optimalBefore and leaves before empty. The client then uses the returned before timestamp to continue polling incrementally until the backlog is cleared, and then resumes the normal short-window delta pattern. Hourly histogram processing groups LAST_UPDATE_DATETIME values into buckets of 10,000 rows in MERCHAPI_TIMESTAMP_HISTOGRAM using the shared HISTOGRAM_ROW_COUNT configuration.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
offsetkey |
No |
String |
Offset key |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-50 PageResultsItemsVMerchapiItemImage - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-51 VMerchapiItemImage - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for the Item Image. |
|
item |
No |
String (25) |
This column contains the unique alphanumeric identifier for the item. |
|
imagename |
No |
String (120) |
This column contains the name of the image of the item. |
|
imageaddr |
No |
String (255) |
This field contains the actual path where the file of the image of the item is stored. |
|
imageuri |
No |
String (375) |
This column contains the URI of the image of the item. |
|
imagedesc |
No |
String (40) |
This field contains the description associated with the image of the item. |
|
imagetype |
No |
String (6) |
This field contains the type of the image of the item. Valid values are defined as members of IITD code type. |
|
primaryind |
No |
String (1) |
This field indicates whether this record is the primary image of the item or not. Valid values are Y and N. It defaults to N if left blank or set to null. |
|
displaypriority |
No |
Number(4,0) |
This field specifies the display sequence order of images associated with the item by priority. |
Table 5-52 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"item": "1000000010",
"imagename": "imageName1",
"imageaddr": "http://www.oracle.com/",
"imageuri": "http://www.oracle.com/imageName1",
"imagedesc": "imageDesc1",
"imagetype": "T",
"primaryind": "Y",
"displaypriority": 1
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"item": "100200042",
"imagename": "image1",
"imageaddr": "http://www.oracle.com/",
"imageuri": "http://www.oracle.com/image1",
"imagedesc": "image1Desc",
"imagetype": "T",
"primaryind": "Y",
"displaypriority": 1
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/image?before=2021-05-06T17%3A32%3A13.265046%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http:// <hostname>/MerchIntegrations/services/foundation/omnichannel/item/image?before=2021-05-06T17%3A32%3A13.265046%2B08%3A00&limit=1&offsetkey=100200042%2Cimage1&since=1970-01-01T00%3A00%3A00.001Z",
"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 |
|
MERCHAPI_BOOKMARK ICL_RMS_ITEM_IMAGE |
Yes Yes |
Yes Yes |
Yes Yes |
Yes Yes |
| ITEM_MASTER | Yes | No | No | No |
| ITEM_IMAGE | Yes | No | No | No |
| MERCHAPI_ITEM_IMAGE | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_IMAGE_JSON | Yes | No | No | No |
| V_MERCHAPI_ITEM_IMAGE | Yes | No | No | No |
REST Endpoint for Omnichannel/Item Initial Price details
Business Overview
This service should not be used for external consumption. This service is very specific for XStore consumption and the roadmap plan is to deprecated this service in future once XStore dependency is removed. The information provided by this service is same as 'foundation/omnichannel/item/itemlocation'. The term 'initial price' for this service is misleading for external consumption because this service provides the current price for the item/location combination.
If Xstore is part of the implementation, refer to the technical details for API documentation for 'foundation/omnichannel/item/itemlocation' because the underlying components are the same.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 10000. |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-53 PageResultsItemsVMerchApiInitialItemPrice - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-54 VMerchApiInitialItemPrice - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for Item details. |
|
loctype |
No |
String (1) |
This field specifies the type of location in the location field. Valid values are S (store) and W (warehouse). |
|
location |
No |
Number(10,0) |
This field contains the numeric identifier of the location in which the item is to be found. This field may contain a store or warehouse. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
pricetype |
No |
String (7) |
This field specifies the price type. Valid value is INITIAL. |
|
price |
No |
Number(20,4) |
This field specifies the initial unit retail price in the standard unit of measure for the item/location combination. This field is stored in the local currency. |
|
effective |
No |
date |
This field specifies the date on which the unit retail price became or will become active. This field is always null in the current implementation. |
|
source |
No |
String (6) |
This field contains the source of the initial unit retail price of each item. This field is always direct in the current implementation. |
|
eventid |
No |
String |
This field specifies the event ID. This field is always null in the current implementation. |
|
resetind |
No |
String |
This field specifies the reset indicator. This field is always null in the current implementation. |
|
clearanceind |
No |
Number(1,0) |
This field specifies if the item is on clearance at the store. A value of 1 indicates clearance. |
Table 5-55 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"loctype": "S",
"location": 1521,
"item": "100012012",
"pricetype": "INITIAL",
"price": 19.5,
"effective": "2001-12-31",
"source": "direct",
"eventid": null,
"resetind": null,
"clearanceind": 1
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
Example JSON input:
" {
"items": [
{
"action": "INSERT",
"loctype": "S",
"location": 121,
"item": "100000104",
"pricetype": "INITIAL",
"price": 12.1,
"effective": null,
"source": "direct",
"eventid": null,
"resetind": null,
"clearanceind": 0
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/initialprice?before=2021-05-11T17%3A23%3A22.208547%2B00%3A00&nodelevel=COMPANY&limit=1&nodeid=9118&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/initialprice?before=2021-05-11T17%3A23%3A22.208547%2B00%3A00&nodelevel=COMPANY&limit=1&nodeid=9118&offsetkey=S%2C121%2C100000104&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "next"
}
]
}"Table Impact
| TABLE | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| MERCHAPI_CONFIG | Yes | No | No | No |
| MERCHAPI_CONSUMER_CONFIG | Yes | No | No | No |
| MERCHAPI_ASYNC_REQUEST | Yes | No | No | No |
| MERCH_BATCH_PARAM | Yes | No | No | No |
| ICL_RMS_ITEM_LOC | Yes | Yes | Yes | Yes |
| ITEM_MASTER | Yes | No | No | No |
| ITEM_LOC | Yes | No | No | No |
| MERCHAPI_ITEM_LOC | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_LOC_JSON | Yes | No | No | No |
| V_MERCHAPI_INITIAL_ITEM_PRICE | Yes | No | No | No |
REST Endpoint for Omnichannel/Item Location details
Business Overview
This service publishes the item/location payload to the Omnichannel application and can also be consumed by downstream consuming systems. It serves the store and warehouse projection of the shared item/location cache with 'foundation/item/location' service and returns the location-specific selling, sourcing, VAT-code, and tax-group details used by omnichannel selling flows. Although the shared cache also supports broader location coverage for other services, this omnichannel projection does not return external-finisher rows.
The shared source view behind the cache is limited to items whose current ITEM_MASTER.STATUS is A or D. This service then applies its own store or warehouse query scope and enriches matching rows with tax-group data when corresponding GTS cache data exists in the requested window.
Refer to the api documentation for 'foundation/item/location' for technical and performance consideration for this service as these two share the same underlying component.
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
nodelevel |
No |
String |
Node Level |
|
nodeid |
No |
String (10) |
Node Id |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 10000. |
|
changeType |
No |
String |
Filter records that were created or deleted within since/before time range. Valid values create or delete |
|
optimalBefore |
No |
String |
Enables histogram-based calculation of the before timestamp when before is not provided. Valid values are Y or N. Default value is N. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-56 PageResultsItemsVMerchApiItemLoc - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-57 VMerchApiItemLoc - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for item details. |
|
loctype |
No |
String (1) |
This field specifies the type of location in the location field. Valid values are S (store) and W (warehouse). |
|
location |
No |
Number(10,0) |
This field contains the numeric identifier of the location in which the item is to be found. This field may contain a store or warehouse. |
|
item |
No |
String (25) |
This field specifies the unique alphanumeric value that identifies the item. |
|
sellingunitretail |
No |
Number(20,4) |
This field specifies the unit retail price in the selling unit of measure for the item/location combination. This field is stored in the local currency. |
|
sellinguom |
No |
String (4) |
This field specifies the selling unit of measure for an item's single-unit retail. |
|
sellingUomDecimalPrecision |
No |
Number(1,0) |
This field defines the number of decimal places to be considered for the specific selling UOM in XOCS. |
|
taxableind |
No |
String (1) |
This field indicates if the item is taxable at the store. |
|
localitemdesc |
No |
String (250) |
This field specifies the local description of the item. This field will default to the item's description but will be overridable. This value will be downloaded to the POS. |
|
status |
No |
String (1) |
This field specifies the current status of the item at the store. |
|
qtykeyoptions |
No |
String (6) |
This field specifies whether the qty key on a POS should be used for this item at the location. Valid values are in the code_type RPO. Current values include R - required, P - prohibited, and O - optional. Additional values can be added to the code type as needed. This value will be downloaded to the POS as needed. |
|
manualpriceentry |
No |
String (6) |
This field specifies whether the price can or should be entered manually on a POS for this item at the location. |
|
foodstampind |
No |
String (1) |
This field specifies whether the item is approved for food stamps at the location. This value will be downloaded to the POS. |
|
fixedtarevalue |
No |
Number(12,4) |
This field holds the value associated with the packaging in items sold by weight at the location. Fixed tare is the tare of the packaging used. The only processing RMS does involving the fixed tare value is downloading it to the POS. Fixed tare is not subtracted from items sold by weight when sales are uploaded to RMS. This kind of processing is the responsibility of the client and should occur before sales are sent to any Oracle Retail application. |
|
fixedtareuom |
No |
String (4) |
This field holds the unit of measure value associated with the tare value. The only processing RMS does involving the fixed tare value and UOM is downloading it to the POS. Fixed tare is not subtracted from items sold by weight when sales are uploaded to RMS. This kind of processing is the responsibility of the client and should occur before sales are sent to any Oracle Retail application. |
|
stopsaleind |
No |
String (1) |
This field specifies whether sale of the item should be stopped immediately at the location (for example, in case of recall). This value will be downloaded to the POS. |
|
returnableind |
No |
String (1) |
This field contains a value of Yes when the item can be returned to the location. |
|
backorderind |
No |
String (1) |
This field contains a value of Yes when the item can be back ordered to the location. |
|
merchandiseind |
No |
String (1) |
This field indicates if the item is a merchandise item. |
|
clearanceind |
No |
String (1) |
This field indicates if the item is on clearance at the store. |
|
crosssell |
No |
String (1) |
This field indicates if a substitute item exists for the main item. |
|
attacheditem |
No |
String (1) |
This field indicates if cross-sell or up-sell items are attached to the main item. |
|
vatcodes |
No |
String (4000) |
This field specifies VAT code information for the item. |
|
localshortdescription |
No |
String (120) |
This field contains the local short description of the item. This field will default to the item's short description but will be overridable. This value will be downloaded to the POS. |
|
sourcemethod |
No |
String (1) |
This value will be used to specify how the ad-hoc PO or TSF creation process should source the item/location request. If the value is Warehouse, the process will attempt to fill the request by creating a transfer from the warehouse mentioned in the source_wh field. If this warehouse does not have enough inventory to fill the request, a purchase order will be created for the item/location's primary supplier. For warehouses, it is used by Oracle Retail Allocation to determine the valid sources and destinations for warehouse-to-warehouse allocations. |
|
sourcewarehouse |
No |
Number(10,0) |
This value will be used by the ad-hoc PO or transfer creation process to determine which warehouse to fill the store's request from. It will also be used by the Allocation process to support warehouse-to-warehouse allocations. A value will be required in this field if the sourcing method is Warehouse. |
|
taxGroupId |
No |
String (60) |
Tax group ID. |
Table 5-58 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": "INSERT",
"loctype": "S",
"location": 1521,
"item": "100100076",
"sellingunitretail": 19.5,
"sellinguom": "EA",
"sellingUomDecimalPrecision": 1,
"taxableind": "Y",
"localitemdesc": "localItemDesc",
"status": null,
"qtykeyoptions": null,
"manualpriceentry": null,
"foodstampind": null,
"fixedtarevalue": 1.0,
"fixedtareuom": null,
"stopsaleind": null,
"returnableind": null,
"backorderind": null,
"merchandiseind": "Y",
"clearanceind": null,
"crosssell": null,
"attacheditem": null,
"vatcodes": null,
"localshortdescription": "localShortDesc",
"sourcemethod": null,
"sourcewarehouse": 1,
"taxGroupId": null
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
vatcodes JSON Output
| Name | Data Type | Description |
|---|---|---|
| code | String | This field contains vat code which is used to uniquely identify a VAT rate. |
| date | Date | This filed contains date on which VAT rate become active. Format: YYYY-MM-DD |
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",
"loctype": "S",
"location": 1111,
"item": "100750001",
"sellingunitretail": "132.13",
"sellinguom": "EA",
"taxableind": "Y",
"localitemdesc": "100750001",
"status": "A",
"qtykeyoptions": null,
"manualpriceentry": null,
"foodstampind": null,
"fixedtarevalue": null,
"fixedtareuom": null,
"stopsaleind": null,
"returnableind": null,
"backorderind": null,
"merchandiseind": "Y",
"clearanceind": "N",
"crosssell": "N",
"attacheditem": "N",
"vatcodes": "[{\"code\":\"S\",\"date\":\"2020-07-25\"}]",
"localshortdescription": "New Component Item",
"sourcemethod": "W",
"sourcewarehouse": 10001,
"taxGroupId":null
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/itemlocation?before=2021-05-03T15%3A50%3A19.189562000%2B00%3A00&nodelevel=COMPANY&limit=2&nodeid=1&offsetkey=S%2C1111%2C100550000%26since%3D1970-01-01T00%3A00%3A00.001Z&since=1970-01-01T00%3A00%3A00.001000000%2B00%3A00",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/item/itemlocation?before=2021-05-03T15%3A50%3A19.189562000%2B00%3A00&nodelevel=COMPANY&limit=2&nodeid=1&offsetkey=S%2C1151%2C100000067%26since%3D1970-01-01T00%3A00%3A00.001Z&since=1970-01-01T00%3A00%3A00.001000000%2B00%3A00",
"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_ITEM_LOC | Yes | Yes | Yes | Yes |
| ITEM_MASTER | Yes | No | No | No |
| ITEM_LOC | Yes | No | No | No |
| MERCHAPI_ITEM_LOC | Yes | Yes | Yes | Yes |
| V_MERCHAPI_ITEM_LOC_JSON | Yes | No | No | No |
| V_MERCHAPI_ITEM_LOC | Yes | No | No | No |
| MERCHAPI_GTS_TAX_LOC_ITEM | Yes | No | No | No |
| MERCHAPI_GTS_TAX_LOC | Yes | No | No | No |
REST Endpoint for Omnichannel/vat
Business Overview
This service publishes VAT definitions to the Omnichannel application and can also be consumed by downstream consuming systems. It publishes VAT region and VAT code rate definitions for non-exempt tax regions only, and it derives the published end date from the next more recent effective row for the same VAT region and VAT code combination.
This includes data such as VAT code, active date, and VAT rate, and is applicable for VAT implmentations only (Default Tax Type system option is 'Simple VAT'). This service does not support incremental date updates, it always returns all VAT related information, even if only one VAT definition was modified.
Technical Details
This service follows the Publish API cache architecture in which the REST service serves pre-generated JSON from an integration cache table that is initially seeded and then maintained through asynchronous delta processing. For overall enablement, scheduling, and guidance on how publish api works and how webhook for this api can be implemented to stream the data out, refer to the white paper Publish APIs - Customer Enablement Overview.
Core business tables: VAT_CODES
Additional business tables: VAT_CODE_RATES, VAT_REGION
JSON cache table: MERCHAPI_VAT
JSON generation view: V_MERCHAPI_VAT_JSON
The JSON view is built from VAT_CODES, VAT_CODE_RATES, and VAT_REGION.
Functionally, it publishes VAT-region and VAT-code combinations for non-exempt tax regions only (VAT_REGION.VAT_CALC_TYPE <> 'E'), ranks ACTIVE_DATE descending within each (vat_region, vat_code) pair, and derives endDate from the next newer effective row for that same region/code combination.
This API is unusual compared with the rest of the omnichannel caches because delta maintenance compares the current VAT source directly to the cache table rather than using row-level ICL driven change capture.
Initial Seeding and post enablement rebuild/repair
Initial seeding and rebuild use V_MERCHAPI_VAT_JSON and apply VAT_REGION.VAT_CALC_TYPE <> 'E'.
ICL (Integration Change Log) table: none; refresh and delta processing compare V_MERCHAPI_VAT_JSON directly to MERCHAPI_VAT
No ICL table is used; fine-grained delete and update publishing is intentionally not implemented because omnichannel VAT uses kill-and-fill behavior.
Related bulk publish handling for item/location cache
Tomorrow-effective VAT rate activation through VAT code-rate maintenance using batch job VATDLXPL and its prepost (post) can insert a record into MERCHAPI_ASYNC_REQUEST for foundation/omnichannel/item/itemlocation with REQUEST_TYPE = DATA_REFRESH and REFRESH_TYPE = REBUILD when the VAT change can affect a broad item/location population. This bulk publish handling is driven through the Vat Rate Change Explode (VATDLXPL) flow as part of prepost.pc.
If the future-effective change is narrower and item-specific, targeted item/location delta rows are staged instead of the broader rebuild request.
Refer to foundation/item/location for the detailed item/location operational and performance implications of this bulk publish handling.
Batch Configuration. This API does not have a dedicated delivered asynchronous schedule configuration.
Process configuration name: API_OMNI_VAT
No POM batch schedule entry was identified for this API.
No API-specific BACKGROUND_RUN_FLAG or BACKGROUND_RUN_INTERVAL_SECOND rows were found for this API.
Webhook configuration api name: foundation/omnichannel/vat
Input Parameters
| Parameter Name | Required | Data Type | Description |
|---|---|---|---|
|
since |
No |
String |
Since Date (Example: 2010-12-31T23:59:59.999Z) |
|
before |
No |
String |
Before Date (Example: 2040-12-31T23:59:59.999Z) |
|
offsetkey |
No |
String |
Offset key |
|
limit |
No |
String (6) |
Pagination limit. Default value is 1000. |
|
include |
No |
String |
Fields to include - comma separated (Example items.name,items.address.city) |
|
exclude |
No |
String |
Fields to exclude - comma separated (Example items.address.contactFax,items.customFlexAttribute) |
Output
Table 5-59 PageResultsItemsVMerchApiVat - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
items |
No |
Collection of Object |
Collection of records |
|
hasMore |
No |
Boolean |
Boolean to signify if there are additional pages of data. This is true if limit = count for pagination supported request |
|
limit |
No |
Number |
Requested page size. If the page size was not defined in the input request, a default page size is used to limit the number of records to fetch |
|
count |
No |
Number |
Number of record in the response object |
|
links |
No |
Collection of Object |
List of Self and/or Next URL |
Table 5-60 VMerchApiVat - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
action |
No |
String (6) |
Action for VAT details. |
|
vatregion |
No |
Number(4,0) |
This field gives the VAT region. |
|
vatregionname |
No |
String (120) |
This field gives the VAT region name. |
|
vatcode |
No |
String (6) |
This field gives the VAT code. |
|
vatcodedesc |
No |
String (120) |
This field gives the VAT code description. |
|
activedate |
No |
date |
This field gives the active date. |
|
vatrate |
No |
Number(20,10) |
This field gives the VAT rate. |
|
enddate |
No |
date |
This field gives the end date. |
Table 5-61 LinkItems - Object. See list of elements for detail
| Element Name | Required | Data Type | Description |
|---|---|---|---|
|
href |
No |
String |
Service URL |
|
rel |
No |
String |
This can be either 'self' or 'next'. The 'next' link is present if there are more pages to fetch and contains the offsetkey which uniquely identifies the last record of this response. |
Sample Response Message
{
"items": [
{
"action": null,
"vatregion": 1000,
"vatregionname": null,
"vatcode": "S",
"vatcodedesc": null,
"activedate": "2001-12-31",
"vatrate": 1.0,
"enddate": "2001-12-31"
}
],
"hasMore": true,
"limit": 1000,
"count": 1000,
"links": [
{
"href": "https://<server>:<port>/Application/services/resources?limit=1000&since=1970-01-01T00:00:00.001Z&before=2024-01-01T00:00:00.001Z&offsetkey=1234,XYZ",
"rel": "next"
}
]
}
Elements in JSON Output
| Elements | Description |
|---|---|
| items | The first element is named as items and contains a number of child elements. Each child element corresponds to a row in the result set generated by the query. |
| hasMore | This is dependent on limit value. If the total rows are more than then limit defined then hasMore will be set to true else false. |
| limit |
This is used to limit the rows to control the paging of result data. Based on the limit, next and previous links are displayed. For example: If the limit is set to 25, internal it tries to fetch 26 rows. If 26th row exists then 25 rows are returned along with a "next" link else no links would be added to the JSON response. |
| links |
“self” : This contains URI pointing to current page. “next”: This contains URI pointing to the next page of results. |
" {
"items": [
{
"action": "INSERT",
"vatregion": 1000,
"vatregionname": "Vat Region 1000",
"vatcode": "E",
"vatcodedesc": "Exempt",
"activedate": "2019-02-10T00:00:00",
"vatrate": null,
"enddate": "2019-02-18T00:00:00"
}
],
"hasMore": true,
"limit": 1,
"count": 1,
"links": [
{
"href": "http:// <hostname> /MerchIntegrations/services/foundation/omnichannel/vat?before=2021-05-06T19%3A34%3A38.158110%2B08%3A00&limit=1&since=1970-01-01T00%3A00%3A00.001Z",
"rel": "self"
},
{
"href": "http://<hostname>/MerchIntegrations/services/foundation/omnichannel/vat?before=2021-05-06T19%3A34%3A38.158110%2B08%3A00&limit=1&offsetkey=1000%2CE%2C2019-02-10T00%3A00%3A00&since=1970-01-01T00%3A00%3A00.001Z",
"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 |
| VAT_CODES | Yes | No | No | No |
| VAT_CODE_RATES | Yes | No | No | No |
| VAT_ITEM | Yes | No | No | No |
| MERCHAPI_VAT | Yes | Yes | Yes | Yes |
| V_MERCHAPI_VAT_JSON | Yes | No | No | No |
| V_MERCHAPI_VAT | Yes | No | No | No |