PIM API
PIM API provides access to product management resources of OMN and operations on them.
PIM API provides access to resources of the PIM module. PIM is an abbreviation for Product Information Management. It refers to the management of all product-defining information and its provision for use in output channels. In addition to the classic product master data (item price, technical specifications, etc.), this information also includes advertising texts and associated image material. The supporting technology is called PIM system.
Main resources:
| Resource | Description |
|---|---|
Product |
General form of an item. A product comprises the subset of articles. Products are usually not order-able without further specification by the customer. E.g. T-shirt "Model A". |
Attribute |
Product property that is maintained in a separate (database) field (e.g. length, weight, price). A text field containing marketing information is also an attribute of an item or product in OMN. |
Attribute Definition |
Define attributes, their localized name, type (e.g. text), domain values and the value cardinality. |
Classification Node |
Represents a node in the classification tree which can be used to classify product types. |
Classifications API
Provides operations on OMN classifications.
GET /pim/classes
| /pim/classes Get classifications. Operation Id:: getClasses |
get classes
Retrieve classifications
| /pim/classes/retrieve Retrieve classifications information without or with nodes and nodes attributes. |
The endpoint could provide information about classifications, nodes and nodes attributes.
Resource path |
/api/core/v1/pim/classes/retrieve |
HTTP method |
POST |
Request content type |
application/json |
Response content type |
|
Body parameters
Specified by ClassificationRequest
-
ids: it might be used to get classifications by id's
-
tids: it might be used to get classifications by tid's
-
withNodes: it might be used to get classifications with nodes
-
flatNodes: it might be used to get classification nodes in flat structure. By default parameter value is true.
|
Return Type
PimType with filled ClassificationsType. More info ClassificationType
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ClassificationsType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. To get a list of classifications by tids without nodes
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/xml (or application/json)' \
--data-raw '{
"tids":["Standard", "Standart"]
}'
{
"tids":["Standard", "Standart"]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-21T08:44:09.377Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Standard">
<name/>
</class>
<class tid="Standart">
<name/>
</class>
</classes>
</pim>
{
"meta": {
"messageType": "request",
"messageTime": "2022-12-21T08:44:09.377Z",
"sourceEnv": "web",
"itemInformationType": "classification"
},
"classes": {
"entries": [
{
"name": {},
"tid": "Standard"
},
{
"name": {},
"tid": "Standart"
}
]
},
"schemaVersion": "5.6.0"
}
2. To get a list of classifications by ids without nodes
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/xml (or application/json)' \
--data-raw '{
"ids":[15360, 1]
}'
{
"ids":[15360, 1]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-21T08:48:01.469Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Standard">
<name/>
</class>
<class tid="Standart">
<name/>
</class>
</classes>
</pim>
{
"meta": {
"messageType": "request",
"messageTime": "2022-12-21T08:44:09.377Z",
"sourceEnv": "web",
"itemInformationType": "classification"
},
"classes": {
"entries": [
{
"name": {},
"tid": "Standard"
},
{
"name": {},
"tid": "Standart"
}
]
},
"schemaVersion": "5.6.0"
}
3. To get a list of classifications by tids with nodes and attributes in flat structure
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tids":["Standard"],
"withNodes":true
}'
{
"tids":["Standard"],
"withNodes":true
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-21T09:06:52.939Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Standard">
<name/>
</class>
</classes>
<nodes>
<node class="Standard" id="15370" path="/Standard">
<name/>
<attr inheritance="visible"
key="gender"
level="p"
localized="true"
restriction="optional">
<domainVals allowNewValue="false" sortDirection="MANUAL">
<domainVal tid="female">
<itm loc="en_EN">female</itm>
<itm loc="de_DE">weiblich</itm>
</domainVal>
</domainVals>
</attr>
</node>
<node class="Standard"
id="15371"
parentId="15370"
parentPath="/Standard"
path="/Standard/Bekleidung">
<name/>
</node>
</nodes>
</pim>
4. To get a list of classifications by tids with nodes and attributes in tree structure
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tids":["Standard"],
"withNodes":true,
"flatNodes": false
}'
{
"tids":["Standard"],
"withNodes":true,
"flatNodes": false
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-21T09:15:21.161Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Standard">
<name/>
<node class="Standard" id="15370" path="/Standard">
<name/>
<attr inheritance="visible"
key="gender"
level="p"
localized="true"
restriction="optional">
<domainVals allowNewValue="false" sortDirection="MANUAL">
<domainVal tid="female">
<itm loc="en_EN">female</itm>
<itm loc="de_DE">weiblich</itm>
</domainVal>
</domainVals>
</attr>
<node class="Standard"
id="15371"
parentId="15370"
parentPath="/Standard"
path="/Standard/Bekleidung">
<name/>
</node>
</node>
</class>
</classes>
</pim>
5. To get a list of all classifications
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
}'
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tids": []
}'
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"ids": []
}'
{
}
{
"tids": []
}
{
"ids": []
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-21T09:24:29.058Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Standart">
<name/>
</class>
<class tid="Standard">
<name/>
</class>
</classes>
</pim>
Persist classifications
| /pim/classes/persist Saves classifications and classification nodes with attributes. |
Allow to
-
Create classification
-
Update classification
-
Create classification nodes and nodes attributes
-
Update classification nodes and nodes attributes
Resource path |
/api/core/v1/pim/classes/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with ClassificationsType and ClassificationNodesType.
Return Type
PimType with statuses ResponsesType about each persisted classification.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. Create a classification without nodes and attributes
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-05T11:38:06.882Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="NewClassification">
</class>
</classes>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-05T11:38:06.882Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="NewClassification">
</class>
</classes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-05T11:38:06.882Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create" tid="NewClassification">
<status>SUCCESS</status>
<description>The classification has been created successfully</description>
</response>
</responses>
</pim>
2. Create or update a classification with localizations, nodes and attributes
| A Classification must have a root node which name equals classification name. At First a root node must be created. After that the remaining nodes must be created. |
| Nodes are created/updated strictly in turn, as specified in the request. |
| A Root node does not have a parent node. |
| Be precise with classification tid values. A Classification will be created if it is not found by tid. |
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-17T03:22:30.207Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Classification">
<name>
<itm loc="en_GB">Class_en</itm>
<itm loc="de_DE">Class_de</itm>
</name>
<meta>
...
</meta>
</class>
</classes>
<nodes>
<node class="Classification" id="00000" path="/Classification">
<attr key="product_id"
level="p"
inheritance="visible"
restriction="optional"
localized="false"/>
</node>
<node class="Classification" id="00001" parentId="00000" path="/Classification/node" parentPath="/Classification">
<attr key="product_title"
level="p"
inheritance="visible"
restriction="optional"
localized="true"/>
</node>
<node class="Classification" id="00002" parentId="00001" path="/Classification/node/node1" parentPath="/Classification/node">
<attr key="description_long"
level="p"
inheritance="visible"
restriction="optional"
localized="true"/>
</node>
</nodes>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-17T03:22:30.207Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<classes>
<class tid="Classification">
<name>
<itm loc="en_GB">Class_en</itm>
<itm loc="de_DE">Class_de</itm>
</name>
<meta>
...
</meta>
</class>
</classes>
<nodes>
<node class="Classification" id="00000" path="/Classification">
<attr key="product_id"
level="p"
inheritance="visible"
restriction="optional"
localized="false"/>
</node>
<node class="Classification" id="00001" parentId="00000" path="/Classification/node" parentPath="/Classification">
<attr key="product_title"
level="p"
inheritance="visible"
restriction="optional"
localized="true"/>
</node>
<node class="Classification" id="00002" parentId="00001" path="/Classification/node/node1" parentPath="/Classification/node">
<attr key="description_long"
level="p"
inheritance="visible"
restriction="optional"
localized="true"/>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-17T03:22:30.207Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create" tid="NewClassification">
<status>SUCCESS</status>
<description>The classification has been created successfully</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-17T03:22:30.207Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="update" tid="NewClassification">
<status>SUCCESS</status>
<description>The classification has been saved successfully</description>
</response>
</responses>
</pim>
Error response examples
Classification not found when updating by id
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create">
<status>ERROR</status>
<description>There is no classification with the given identity '15342'</description>
</response>
</responses>
</pim>
Unable to create root node
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create">
<status>ERROR</status>
<description>Unable to create the root node, identifier should match the classification name, classification: NewClassification, root node: NewClassification1</description>
</response>
</responses>
</pim>
Language code not found
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create">
<status>WARNING</status>
<description>The classification has been saved successfully|Cannot find language id with code 'e_DE'.</description>
</response>
</responses>
</pim>
Classification localization already exists
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">classification</itm>
</meta>
<responses>
<response dataType="classification" action="create">
<status>WARNING</status>
<description>The classification has been saved successfully|Unable to create new classification. Classification with name NewClassification-en already exist.</description>
</response>
</responses>
</pim>
Perform classifications
| /pim/classes/perform Deletes classifications and classification nodes with attributes. |
Resource path |
/api/core/v1/pim/classes/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with ActionsType.
| The API consumer should provide one of the classification identifiers tid or id to perform action/s on the classification. |
| Actions are performed by tid if both tid and id parameters are present in the request. |
Return Type
PimType with statuses ResponsesType about each persisted classification.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. Delete classification by tid
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classification"
tid="Classification"
type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classification"
tid="Classification"
type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:19:45.983Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification" tid="Classification">
<description>The classification has been deleted successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
2. Delete classification by id
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classification"
id="24101"
type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classification"
id="24101"
type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:25:07.523Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification" id="24101">
<description>The classification has been deleted successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
Error response examples
Classification not found by id
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:27:01.713Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification" id="241001">
<description>The classification not found by given id: '241001'</description>
<status>ERROR</status>
</response>
</responses>
</pim>
Classification not found by tid
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:28:25.751Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification" tid="ClassificationNotExists">
<description>The classification not found by given tid: 'ClassificationNotExists'</description>
<status>ERROR</status>
</response>
</responses>
</pim>
Wrong data type
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:31:16.094Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification" tid="Classification">
<description>The data type of the passed item is wrong. It must be 'classification'</description>
<status>ERROR</status>
</response>
</responses>
</pim>
Missing tid and id request attributes
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-22T03:31:57.779Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="classification">
<description>Classification attributes missing: 'tid' or 'id' attribute must be</description>
<status>ERROR</status>
</response>
</responses>
</pim>
Attribute definitions API
Provides operations on OMN Attribute definitions.
Get attribute definitions
| /pim/attribute-definitions Gets information about all attribute definitions. |
Resource path |
/api/core/v1/pim/attribute-definitions |
HTTP method |
GET |
Response content type |
|
Return Type
PimType with filled AttributeDefinitionsType. More info AttrDefinitionType
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled AttributeDefinitionsType |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
To get a list of all attribute definitions
curl
curl --location --request GET 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions' \
--header 'Authorization: Bearer <TOKEN>' \
--data-raw ''
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef id="15210" tid="product_id" type="text">
<name>
<itm loc="en_EN">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
<attrDef id="15219" tid="care_note" type="text">
<domainVals allowNewValue="false" mode="FULL" sortDirection="MANUAL">
<domainVal tid="Chlorine bleaching possible">
<itm loc="en_EN">Chlorine bleaching possible</itm>
<itm loc="de_DE">Chlorbleiche möglich</itm>
</domainVal>
...
</domainVals>
<multiValued>true</multiValued>
<name>
<itm loc="en_EN">Care note</itm>
<itm loc="de_DE">Pflegehinweis</itm>
</name>
</attrDef>
...
</attrDefs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-23T07:20:36.916Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
</pim>
Query attribute definitions ids
| /pim/attribute-definitions/query Gets attribute definition ids by allowed criteria. |
Allows to get attribute definitions ids by:
-
By type
Resource path |
/api/core/v1/pim/attribute-definitions/query |
HTTP method |
POST |
Request content type |
application/json; |
Response content type |
application/json; |
Body parameters
Accepts AttributeDefinitionsQueryRequest
Return Type
Filled with attribute definitions ids AttributeDefinitionsRequest
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
Found attribute definitions ids |
|
400 |
Invalid input error ResponseType |
|
401 |
Not authorized |
|
500 |
Error in ResponseType |
Samples
To get a list of attribute definitions ids by types
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"types": ["text", "date", "number", "boolean", "ref", "table"]
} '
{
"types": ["text", "date", "number", "boolean", "ref", "table"]
}
{
"ids": [
15210,
15211,
15212,
15213,
15214,
15215,
15216,
15217,
15218,
15219,
15310,
15311,
15313,
15314,
15315,
15316,
15317,
15318,
30160,
30161
],
"all": false
}
List of types is empty
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"types": []
} '
{
"types": []
}
{
"all": false
}
Retrieve attribute definitions
| /pim/attribute-definitions/retrieve Retrieves information about attribute definitions. |
Resource path |
/api/core/v1/pim/attribute-definitions/retrieve |
HTTP method |
POST |
Request content type |
application/json |
Response content type |
|
Body parameters
Specified by AttributeDefinitionsRequest
-
ids: it might be used to get attribute definitions by id's
-
tids: it might be used to get attribute definitions by tid's
-
all: it might be used to get all attribute definitions. Default parameter value is false.
| If all parameter value is true, tids and ids values are ignored. |
| Attribute definitions are retrieved by tids OR ids. ids are ignored if the request contains tids and ids. |
Return Type
PimType with filled AttributeDefinitionsType. More info AttrDefinitionType
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled AttributeDefinitionsType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. To get a list of attribute definitions by tids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/retrieve' \
--header 'Authorization: Bearer <OMN_SERVER>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tids": ["product_id", "product_title"]
}'
{
"tids": ["product_id", "product_title"]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef id="15210" tid="product_id" type="text">
<name>
<itm loc="en_EN">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
<attrDef id="15211" tid="product_title" type="text">
<name>
<itm loc="en_EN">Title</itm>
<itm loc="de_DE">Titel</itm>
</name>
</attrDef>
</attrDefs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-23T08:28:03.722Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
</pim>
2. To get a list of attribute definitions by ids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/retrieve' \
--header 'Authorization: Bearer <OMN_SERVER>' \
--header 'Content-Type: application/json' \
--data-raw '{
"ids": [15210,15211]
}'
{
"ids": [15210,15211]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef id="15210" tid="product_id" type="text">
<name>
<itm loc="en_EN">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
<attrDef id="15211" tid="product_title" type="text">
<name>
<itm loc="en_EN">Title</itm>
<itm loc="de_DE">Titel</itm>
</name>
</attrDef>
</attrDefs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-23T08:33:00.633Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
</pim>
3. To get a list of all attribute definitions
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/retrieve' \
--header 'Authorization: Bearer <OMN_SERVER>' \
--header 'Content-Type: application/json' \
--data-raw '{
"all": true
}'
{
"all": true
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef id="15210" tid="product_id" type="text">
<name>
<itm loc="en_EN">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
<attrDef id="15219" tid="care_note" type="text">
<domainVals allowNewValue="false" mode="FULL" sortDirection="MANUAL">
<domainVal tid="Chlorine bleaching possible">
<itm loc="en_EN">Chlorine bleaching possible</itm>
<itm loc="de_DE">Chlorbleiche möglich</itm>
</domainVal>
...
</domainVals>
<multiValued>true</multiValued>
<name>
<itm loc="en_EN">Care note</itm>
<itm loc="de_DE">Pflegehinweis</itm>
</name>
</attrDef>
...
</attrDefs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-23T07:20:36.916Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
</pim>
Perform attribute definitions
| /pim/attribute-definitions/perform Deletes attribute definitions. |
Allow to
-
Delete attribute definition by id
-
Delete attribute definition by identifier
Resource path |
/api/core/v1/pim/attribute-definitions/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with ActionsType.
| The API consumer should provide only one of the attribute definitions identifiers: identifiers or ids in all actions. |
Return Type
PimType with statuses ResponsesType about each performed attribute definition.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. Delete attribute definition by identifier
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attrDefinition" tid="product_tid" type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attrDefinition" tid="product_tid" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:29:11.613Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="attrDefinition" tid="product_tid">
<description>The attribute definition has been deleted successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
2. Delete attribute definition by id
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attrDefinition" id="45260" type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attrDefinition" id="45260" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:35:08.230Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="attrDefinition" id="45260">
<description>The attribute definition has been deleted successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
Error response examples
The attribute definition does not exist
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:37:25.990Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="attrDefinition" id="45260">
<description>There is no attribute definition with the given tid or id</description>
<status>ERROR</status>
</response>
</responses>
</pim>
The attribute definition could not be deleted
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:37:25.990Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="attrDefinition"
tid="product_tid"
action="delete">
<status>ERROR</status>
<description>The attribute definition could not be deleted. Reason: {errormessage}</description>
</response>
</responses>
</pim>
Persist attribute definitions
| /pim/attribute-definitions/persist Creates or updates attribute definitions. |
Allow to
-
Create an attribute definition
-
Update the attribute definition
Resource path |
/api/core/v1/pim/attribute-definitions/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with filled AttributeDefinitionsType.
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. Create an attribute definition
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef tid="product_tid" type="text">
<name>
<itm loc="en_GB">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
</attrDefs>
</pim>'
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef tid="product_tid" type="text">
<name>
<itm loc="en_GB">SKU product</itm>
<itm loc="de_DE">SKU Produkt</itm>
</name>
</attrDef>
</attrDefs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T08:39:54.996Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create" dataType="attrDefinition" tid="product_tid">
<description>The attribute definition has been saved successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
2. Update the attribute definition
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attribute-definitions/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef tid="product_tid" type="text">
<name>
<itm loc="en_GB">New value</itm>
<itm loc="de_DE">New value</itm>
</name>
</attrDef>
</attrDefs>
</pim>'
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrDefs>
<attrDef tid="product_tid" type="text">
<name>
<itm loc="en_GB">New value</itm>
<itm loc="de_DE">New value</itm>
</name>
</attrDef>
</attrDefs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T08:39:54.996Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
<responses>
<response action="update" dataType="attrDefinition" tid="product_tid">
<description>The attribute definition has been saved successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
Error response examples
The attribute definition could not be saved
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:38:16.444Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
<responses>
<response dataType="attrDefinition"
id="12345"
tid="attrDefinitionIdentifier"
action="update">
<status>ERROR</status>
<description>The attribute definition could not be saved. Reason: {errormessage}</description>
</response>
</responses>
</pim>
The attribute definition not found
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:38:16.444Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attrDefinition</itm>
</meta>
<responses>
<response dataType="attrDefinition"
id="54321"
action="update">
<status>ERROR</status>
<description>No attribute definition by id: 54321</description>
</response>
</responses>
</pim>
Attributes API
Provides operations on OMN node attributes.
Query attributes
| /pim/attributes/query Gets list of attribute IDs. |
Allow to query attributes ids by:
-
Product tid
-
Product id
-
Node id
-
Node path
| includeParentAttributes parameter indicates whether to query inherited attributes. |
| includeParentAttributes parameters default value is false for querying by nodeId or nodePath. Querying by productTid or productId is always with inherited attributes and this parameter is ignored. |
Resource path |
/api/core/v1/pim/attributes/query |
HTTP method |
POST |
Request content type |
application/json; |
Response content type |
application/json; |
Body parameters
Accepts AttributesQueryRequest
Return Type
AttributesRequest with attributes ids.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
Found attributes ids. |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
1.Query attributes by product id
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"productId": [65874]
}'
{
"productId": [65874]
}
{
"ids": [75662, 34345, 43213]
}
2.Query attributes by product tid
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"productTid": [150185]
}'
{
"productTid": [150185]
}
{
"ids": [75662, 34345, 43213]
}
3.Query attributes by node id
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"nodeId": [96648]
}'
{
"nodeId": [96648]
}
{
"ids": [75662, 34345, 43213]
}
4.Query attributes by node path with inherited attributes
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"nodePath": [96648],
"includeParentAttributes": true
}'
{
"nodePath": [96648],
"includeParentAttributes": true
}
{
"ids": [75662, 34345, 43213, 96884, 55478]
}
Retrieve attributes
| /pim/attributes/retrieve Retrieves attributes information. |
Allow to retrieve attributes by:
-
list of ids
-
list of product ids
-
list of product tids
-
list of node ids
-
list of node paths
|
| includeParentAttributes parameters default value is false for querying by nodeIds or nodePaths. Querying by productTids or productIds is always with inherited attributes and this parameter is ignored. |
Resource path |
/api/core/v1/pim/attributes/retrieve |
HTTP method |
POST |
Request content type |
application/json |
Response content type |
|
Body parameters
Accepts AttributesRetrieveRequest
| Only one of input parameters ids, productIds, productTids, nodeIds or nodePaths should be specified in request. |
Return Type
PimType with filled AttributesType.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled AttributesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
1.Retrieve attributes by ids parameter with Domain Values and Default Values
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"ids": [46190],
"withDomainValues": true,
"withDefaultValues": true
}'
{
"ids": [46190],
"withDomainValues": true,
"withDefaultValues": true
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="46190" inheritance="not_visible" key="new1" level="p" localized="false" restriction="optional">
<defaultVal tid="domain1"/>
<domainVals allowNewValue="false" mode="FULL" sortDirection="MANUAL">
<domainVal tid="domain1">
<itm loc="en_GB">domain1-en</itm>
<itm loc="de_DE">domain1-de</itm>
</domainVal>
</domainVals>
</attr>
</attrs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-20T08:13:06.210Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
</pim>
2.Retrieve attributes by productTids parameter with parent attributes, Domain Values and Default Values
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"productTids": ["ec98dde6-4064-465d-a1fb-237e2f10a336"],
"withDomainValues": true,
"withDefaultValues": true
}'
{
"productTids": ["ec98dde6-4064-465d-a1fb-237e2f10a336"],
"withDomainValues": true,
"withDefaultValues": true
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="44793" inheritance="not_visible" key="new2" level="p" localized="false" restriction="optional"/>
<attr id="46190" inheritance="not_visible" key="new1" level="p" localized="false" restriction="optional">
<defaultVal tid="domain1"/>
<domainVals allowNewValue="false" mode="FULL" sortDirection="MANUAL">
<domainVal tid="domain1">
<itm loc="en_GB">domain1-en</itm>
<itm loc="de_DE">domain1-dee</itm>
</domainVal>
</domainVals>
</attr>
</attrs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-20T08:22:32.516Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
</pim>
3.Retrieve attributes by productIds parameter with parent attributes and without Domain Values and Default Values
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"productIds": [44812]
}'
{
"productIds": [44812]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="44793" inheritance="not_visible" key="new2" level="p" localized="false" restriction="optional"/>
<attr id="46190" inheritance="not_visible" key="new1" level="p" localized="false" restriction="optional">
</attr>
</attrs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-20T08:22:32.516Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
</pim>
4.Retrieve attributes by nodeIds parameter with parent attributes, without Domain Values and Default Values
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"nodeIds": [34812],
"includeParentAttributes": true
}'
{
"nodeIds": [34812],
"includeParentAttributes": true
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="44793" inheritance="not_visible" key="new2" level="p" localized="false" restriction="optional"/>
<attr id="46190" inheritance="not_visible" key="new1" level="p" localized="false" restriction="optional">
</attr>
</attrs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-20T08:22:32.516Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
</pim>
5.Retrieve attributes by nodePaths parameter without parent attributes, Domain Values and Default Values
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"nodePaths": ["RootNode/ChildNode"]
}'
{
"nodePaths": ["RootNode/ChildNode"]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="46190" inheritance="not_visible" key="new1" level="p" localized="false" restriction="optional">
</attr>
</attrs>
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-20T08:22:32.516Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
</pim>
Persist attributes
| /pim/attributes/persist Saves node attributes information. |
Allow to
-
Create the attribute
-
Update attribute values (AttributeType.vals)
Resource path |
/api/core/v1/pim/attributes/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with AttributesType
| When creating attribute nodePath or nodeId parameters must be specified. |
When updating attributes one of parameters combination below must be used:
-
attribute id
-
nodeId and attribute key
-
nodePath and attribute key
| Attribute parameter key is attribute definition value. |
Return Type
PimType with statuses ResponsesType about each persisted attribute.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
1.Create attribute by node id
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attributes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodeId="23456"
key="gender"
level="p"
inheritance="visible"
restriction="optional"
localized="true">
<domainVals allowNewValue="false" sortDirection="MANUAL">
<domainVal tid="female">
<itm loc="en_EN">female</itm>
<itm loc="de_DE">weiblich</itm>
</domainVal>
</domainVals>
</attr>
</attrs>
</pim>'
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodeId="23456"
key="gender"
level="p"
inheritance="visible"
restriction="optional"
localized="true">
<domainVals allowNewValue="false" sortDirection="MANUAL">
<domainVal tid="female">
<itm loc="en_EN">female</itm>
<itm loc="de_DE">weiblich</itm>
</domainVal>
</domainVals>
</attr>
</attrs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response dataType="attribute" action="create" id="95547" nodeId="23456">
<status>SUCCESS</status>
<description>The attribute has been created successfully</description>
</response>
</responses>
</pim>
2.Create attribute by node path
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attributes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodePath="/RootNode/someNode"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodePath="/RootNode/someNode"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response dataType="attribute" action="create" id="95547" nodePath="/RootNode/someNode">
<status>SUCCESS</status>
<description>The attribute has been created successfully</description>
</response>
</responses>
</pim>
3.Update attribute by attribute id
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attributes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="95547"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr id="95547"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response dataType="attribute" action="update" id="95547">
<status>SUCCESS</status>
<description>The attribute has been saved successfully</description>
</response>
</responses>
</pim>
4.Update attribute by nodePath and attribute key
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attributes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodePath="/RootNode/someNode"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodePath="/RootNode/someNode"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response dataType="attribute" action="update" nodePath="/RootNode/someNode" key="product_id">
<status>SUCCESS</status>
<description>The attribute has been saved successfully</description>
</response>
</responses>
</pim>
5.Update attribute by nodeId and attribute key
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/attributes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodeId="65425"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<attrs>
<attr nodeId="65425"
inheritance="visible"
key="product_id"
level="p"
localized="false"
restriction="optional"/>
</attrs>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response dataType="attribute" action="update" nodeId="65425" key="product_id">
<status>SUCCESS</status>
<description>The attribute has been saved successfully</description>
</response>
</responses>
</pim>
Error responses
Attribute not found by attribute id
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-27T08:49:34.889Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response action="update" dataType="attribute" key="product_id">
<status>ERROR</status>
<description>Attribute with id 23456 was not found.</description>
</response>
</responses>
</pim>
Node not found by node id
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-27T08:52:40.287Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response action="create"
dataType="attribute"
key="product_id"
nodeId="23456">
<status>ERROR</status>
<description>Node with id 23456 not found</description>
</response>
</responses>
</pim>
Node not found by nodePath
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-27T08:53:36.908Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response action="create"
dataType="attribute"
key="product_id"
nodePath="RootNode/someNode">
<status>ERROR</status>
<description>Node with path RootNode/someNode not found</description>
</response>
</responses>
</pim>
Attribute definition not found
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-27T08:55:28.589Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">attribute</itm>
</meta>
<responses>
<response action="create"
dataType="attribute"
key="not_exists"
nodePath="RootNode/someNod">
<status>ERROR</status>
<description>Attribute definition: 'not_exists' cannot be found</description>
</response>
</responses>
</pim>
Perform attributes
| /pim/attributes/perform Deletes attributes. |
Allow to
-
Delete attribute definition by id
Resource path |
/api/core/v1/pim/attributes/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
Accepts PimType with ActionsType.
Return Type
PimType with statuses ResponsesType about each performed attribute.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
404 |
Not found |
|
500 |
An unknown internal error occurred |
Samples
1. Delete attribute by id
curl
curl --location 'http://<OMN_SERVER>/api/core/v1/pim/attributes/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attribute" id="98756" type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T10:10:16.774Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="attribute" id="98756" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:29:11.613Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="attribute" id="98756">
<description>Attribute definition has been deleted successfully</description>
<status>SUCCESS</status>
</response>
</responses>
</pim>
Error response examples
The attribute does not exist
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:37:25.990Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="delete" dataType="attribute" id="45260">
<description>Attribute not found with given id</description>
<status>ERROR</status>
</response>
</responses>
</pim>
The attribute id is missing in request
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-14T11:37:25.990Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="attribute" action="delete">
<status>ERROR</status>
<description>"Attribute 'id' is required to process attribute deletion"</description>
</response>
</responses>
</pim>
Classification Nodes API
Provides operations on OMN Classification nodes.
Query classification nodes
| /pim/nodes/query Gets node ids. |
Allow to query classification nodes ids by:
-
product tid
-
product id
-
attribute definition id
-
attribute definition tid
-
attribute id
Resource path |
/api/core/v1/pim/nodes/query |
HTTP method |
POST |
Request content type |
application/json; |
Response content type |
application/json; |
| API restriction for users without admin role - endpoint is not available. |
Body parameters
Specified by NodesQueryRequest
Return Type
Specified by NodesRequest
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
Found classification nodes ids. |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
500 |
An unknown internal error occurred |
Samples
Query classification nodes
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"productId": 123
}'
{
"productId": 18765
}
{
"productTid": "A239A197-5287-494A-B5EE-36F3EB0E95AB"
}
{
"attributeId": "986655"
}
{
"attributeDefinitionId": "778554"
}
{
"attributeDefinitionTid": "7D534991-B623-418C-A7CB-A273C877A37D"
}
{
"ids": [756362, 34345, 43213],
"level": 1
}
Retrieve classification nodes
| /pim/nodes/retrieve Returns nodes structure with attributes. |
Resource path |
/api/core/v1/pim/nodes/retrieve |
HTTP method |
POST |
Request content type |
application/json |
Response content type |
|
| API restriction for users without admin role - endpoint is not available. |
Body parameters
Specified by NodesRequest
Return Type
PimType with filled ClassificationNodesType. Represents flatten tree structure
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with list of nodes |
|
500 |
Error in ResponseType |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
Get a root node of the classification by tid/id
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"classificationId": 18765
}'
{
"classificationId": 18765
}
{
"classificationTid": "Standard"
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">node</itm>
</meta>
<nodes>
<node id="15270"
path="/"
tid="Standard">
<name/>
</node>
</nodes>
</pim>
Get children of node by path
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"path": "/Root",
"level": 1
}'
{
"path": "/Standard",
"level": 1
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">node</itm>
</meta>
<nodes>
<node id="15271" parentId="15270" path="/Standard/Bekleidung" tid="Bekleidung">
<name/>
</node>
<node id="114740" parentId="15270" path="/Standard/Test" tid="Test">
<name/>
</node>
</nodes>
</pim>
Get nodes by ids
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"ids": [114740]
}'
{
"ids": [114740]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-09-27T12:41:38.795Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">node</itm>
</meta>
<nodes>
<node id="114740" parentId="15270" path="/Standard/Test" tid="Test">
<name/>
</node>
</nodes>
</pim>
Error responses
<?xml version="1.0" encoding="UTF-8"?>
<response xmlns="http://www.apollon.de/omn">
<details>
<itm key="supportId">3de17988-a17c-4341-bf57-024753d636c8</itm>
</details>
<issues>
<itm key="code">1001</itm>
<itm key="description">Invalid input provided</itm>
<itms type="details">
<itm key="errorMessage">Path or ids array or classificationId should be provided to get nodes</itm>
</itms>
</issues>
<status>ERROR</status>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response xmlns="http://www.apollon.de/omn">
<details>
<itm key="supportId">1737617c-3718-411a-b113-5121d8b679bb</itm>
</details>
<issues>
<itm key="code">1001</itm>
<itm key="description">Invalid input provided</itm>
<itms type="details">
<itm key="errorMessage">The level should not be 0</itm>
</itms>
</issues>
<status>ERROR</status>
</response>
Persist classification nodes
| /pim/nodes/persist Saves nodes structure. Several nodes could be persisted. |
Resource path |
/api/core/v1/pim/nodes/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
| API restriction for users without admin role - endpoint is not available. |
Body parameters
Accepts PimType with ClassificationNodesType
Return Type
PimType with statuses ResponsesType about each persisted node.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with responses |
|
500 |
Error in ResponseType |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
Create a node
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml; charset=UTF-8;' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node
parentId="123"
tid="Accessories">
<name>
<itm loc="en_EN">Accessories EN</itm>
<itm loc="de_DE">Accessories DE</itm>
<itm loc="fr_FR">Accessories FR</itm>
</name>
</node>
</nodes>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node
parentId="123"
tid="Accessories">
<name>
<itm loc="en_EN">Accessories EN</itm>
<itm loc="de_DE">Accessories DE</itm>
<itm loc="fr_FR">Accessories FR</itm>
</name>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node
parentPath="/Standard/Bekleidung"
tid="Accessories">
<name>
<itm loc="en_EN">Accessories EN</itm>
<itm loc="de_DE">Accessories DE</itm>
<itm loc="fr_FR">Accessories FR</itm>
</name>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-10-21T08:22:23.363Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create"
dataType="classNode"
id="110140"
path="/Standard/Bekleidung/Accessories"
tid="Accessories">
<status>SUCCESS</status>
<description>Node has been saved</description>
</response>
</responses>
</pim>
Create a root node
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml; charset=UTF-8;' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node
classificationTid="Standart"
tid="Standart">
<name>
<itm loc="en_EN">Standart EN</itm>
<itm loc="de_DE">Standart DE</itm>
</name>
</node>
</nodes>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node
classificationTid="Standart"
tid="Standart">
<name>
<itm loc="en_EN">Standart EN</itm>
<itm loc="de_DE">Standart DE</itm>
</name>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-10-21T08:22:23.363Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create"
dataType="classNode"
id="11040"
path="/Standard"
tid="Standart">
<status>SUCCESS</status>
<description>Node has been saved</description>
</response>
</responses>
</pim>
Update a node
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml; charset=UTF-8;' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node path="/Standard" tid="Standard">
<name>
<itm loc="en_EN">Standard EN 1</itm>
<itm loc="fr_FR">Standard FR 1</itm>
</name>
</node>
</nodes>
</pim>'
Several nodes could be persisted.
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node path="/Standard" tid="Standard">
<name>
<itm loc="en_EN">Standard EN 1</itm>
<itm loc="fr_FR">Standard FR 1</itm>
</name>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<nodes>
<node id="654332" tid="Standard">
<name>
<itm loc="en_EN">Standard EN 1</itm>
<itm loc="fr_FR">Standard FR 1</itm>
</name>
</node>
</nodes>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-10-21T08:22:23.363Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="update"
dataType="classNode"
id="654332"
path="/Standard"
tid="Standart">
<status>SUCCESS</status>
<description>Node has been saved</description>
</response>
</responses>
</pim>
Error responses
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-04T13:56:20.501Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create" dataType="classNode" tid="AAAA12">
<status>ERROR</status>
<description>An error occurred while node creation. Parent node path: null, or id: 1147412, node: AAAA12, the reason: Node with id 1147412 does not exist.</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-04T13:56:20.501Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create" dataType="classNode" tid="AAAA11">
<status>ERROR</status>
<description>An error occurred while node creation. Parent node path: /Root/node1, or id: null, node: AAAA11, the reason: Node with path '[Root, node1]' does not exist.</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-04T13:57:20.483Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="update"
dataType="classNode"
id="1147423"
path="/Standard/AAAA1/AAAA12"
tid="AAAA12">
<status>ERROR</status>
<description>Node with id 1147423 does not exist.</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-04T13:57:20.483Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="update"
dataType="classNode"
path="/Standard/AAAA1/AAAA12/Gürtel"
tid="Gürtel">
<status>ERROR</status>
<description>Node with path '[Standard, AAAA1, AAAA12, Gürtel]' does not exist.</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<response xmlns="http://www.apollon.de/omn">
<details>
<itm key="supportId">bb58d0b5-231a-4097-bd05-9c447615899c</itm>
</details>
<issues>
<itm key="code">1010</itm>
<itm key="description">Access to the requested resource endpoint is forbidden</itm>
<itms type="details">
<itm key="errorMessage">Nodes persist API is restricted for users</itm>
</itms>
</issues>
<status>ERROR</status>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-11-04T13:48:55.442Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response action="create" dataType="classNode" tid="AAAA111">
<status>ERROR</status>
<description>An error occurred while node creation. Parent node path: null, or id: null, node: AAAA111, the reason: No classification by name: Standard1</description>
</response>
</responses>
</pim>
Perform actions on classification nodes
| /pim/nodes/perform Deletes nodes. |
Available action types:
-
Delete
Resource path |
/api/core/v1/pim/nodes/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
PimType with ActionTypes
Some actions require additional info that should be provided in MetaType in key/value way.
ActionType's type is required and be provided.
Possible values:
-
delete
ActionType's dataType is - classNode
|
Tables legend
"As <action> attribute" describes, that parameter is in the xml attribute of <action> tag. Otherwise, parameter should be in ItemType. "Required groups" - one of parameter in the one group is required e.g. entity identifier (e.g. tid or id or path) |
| Parameter Name | As <action> attribute | Required | Type | Description | Format |
|---|---|---|---|---|---|
id |
X |
X G1 |
Long |
id of the node that should be deleted |
|
path |
X |
X G1 |
string |
path of the node that should be deleted |
Return Type
PimType with filled ResponsesType
Response types contains status information about each action passed to perform.
Responses
| Actions are processed separately. Exceptions thrown during the execution of actions will be reported in ResponseType. |
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType. |
|
400 |
Invalid input provided |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
Delete
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/nodes/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classNode" id="759365" type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classNode" id="759365" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="classNode" path="/Root/Node1/Node1.1/" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="classNode"
id="759365"
action="delete">
<status>SUCCESS</status>
<description>The node has been deleted successfully</description>
</response>
</responses>
</pim>
Error responses
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:36:54.983Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="classNode"
id="4444"
action="delete">
<status>ERROR</status>
<description>There is no node with the given path or id</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:38:16.444Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="classNode"
id="4444"
action="delete">
<status>ERROR</status>
<description>The node could not be deleted. Reason: {errormessage}</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-10-11T12:14:28.978Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="classNode">
<status>ERROR</status>
<description>Nodes delete API is restricted for the user</description>
</response>
</responses>
</pim>
Products API
Provides operations on OMN products and related product information.
Persist products
| /pim/products/persist Saves products information and product attributes details. |
Allow to
-
Create a Product / Article / Variation
-
Rename Product / Article / Variation
-
Change attribute values (ProductType.vals)
Resource path |
/api/core/v1/pim/products/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Product attribute persisting
Asset attributes are stored in ProductType .vals. More info about product attributes
| Only provided attribute values are persisted, other values that are not provided in ProductType.vals will be not changed. |
| Only values of attributes registered in OMN could be saved. |
Body parameters
Accepts PimType with ProductsType
Return Type
PimType with statuses ResponsesType about each persisted product.
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with list of responses |
|
500 |
Error in ResponseType |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/products/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '<BODY>'
1. Create a new Product
Without Product tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product>
<name>Product1</name>
<node>/RootNode/Node</node>
</product>
</products>
</pim>
With specified tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<name>Product1</name>
<node>/RootNode/Node</node>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281"
action="create">
<status>SUCCESS</status>
<description>The product has been saved successfully</description>
</response>
</responses>
</pim>
2. Create a new Article
Without Article tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article>
<name>Article1</name>
</article>
</articles>
</product>
</products>
</pim>
With specified tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="e8712bfd-6701-4833-9197-b259ea42dd84">
<name>Article1</name>
</article>
</articles>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="article"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>SUCCESS</status>
<description>The article has been saved successfully</description>
</response>
</responses>
</pim>
3. Create a new Variation
Without Variation tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="e8712bfd-6701-4833-9197-b259ea42dd84">
<variants>
<variant>
<name>Variant1</name>
</variant>
</variants>
</article>
</articles>
</product>
</products>
</pim>
With specified tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="e8712bfd-6701-4833-9197-b259ea42dd84">
<variants>
<variant tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<name>Variant1</name>
</variant>
</variants>
</article>
</articles>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="variant"
tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281"
action="create">
<status>SUCCESS</status>
<description>The variant has been saved successfully</description>
</response>
</responses>
</pim>
4. Rename Product
By id:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product>
<meta>
<itm key="id">26594</itm>
</meta>
<name>Product2</name>
</product>
</products>
</pim>
By tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<name>Product2</name>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281"
action="update">
<status>SUCCESS</status>
<description>The product has been saved successfully</description>
</response>
</responses>
</pim>
5. Rename Article
By id:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article>
<meta>
<itm key="id">21655</itm>
</meta>
<name>Article2</name>
</article>
</articles>
</product>
</products>
</pim>
By tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<name>Article2</name>
</article>
</articles>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="article"
tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281"
action="update">
<status>SUCCESS</status>
<description>The article has been saved successfully</description>
</response>
</responses>
</pim>
6. Rename Variation
By id:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<variants>
<variant>
<meta>
<itm key="id">20444</itm>
</meta>
<name>Variant2</name>
</variant>
</variants>
</article>
</articles>
</product>
</products>
</pim>
By tid:
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<articles>
<article tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<variants>
<variant tid="e8712bfd-6701-4833-9197-b259ea42dd84">
<name>Variant2</name>
</variant>
</variants>
</article>
</articles>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="variant"
tid="e8712bfd-6701-4833-9197-b259ea42dd84"
action="update">
<status>SUCCESS</status>
<description>The variant has been saved successfully</description>
</response>
</responses>
</pim>
7. Save product attributes and new name
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<products>
<product tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281">
<name>Product2</name>
<vals>
<val attr="STRING_SIMPLE">
<itm>string</itm>
</val>
<val attr="NUMBER_SIMPLE">
<itm>6395629</itm>
</val>
<val attr="ENUMERATION_L" type="multi_loc">
<i18n loc="en_EN">
<itm pos="0">Brown</itm>
<itm pos="1">Yellow</itm>
</i18n>
</val>
</vals>
</product>
</products>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="73c7992f-5f66-4d99-9ca7-9efa3f1b8281"
action="create">
<status>SUCCESS</status>
<description>The product has been saved successfully</description>
</response>
</responses>
</pim>
Error responses
Product creation failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>ERROR</status>
<description>An error while doing action 'create' with the product, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>ERROR</status>
<description>An error while product classification, caused by: 'Node with path '[Standard, Bekleidung, Herren, Unterteile, Jeans2]' does not exist.</description>
</response>
</responses>
</pim>
Article creation failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="article"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>ERROR</status>
<description>An error while doing action 'create' with the article, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
Variation creation failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="variant"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>ERROR</status>
<description>An error while doing action 'create' with the variation, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
Product update failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="product"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="update">
<status>ERROR</status>
<description>An error while doing action 'update' with the product, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
Article update failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="article"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="create">
<status>ERROR</status>
<description>An error while doing action 'create' with the article, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
Variation update failed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-08-30T08:05:35.462Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<responses>
<response dataType="variant"
tid="28E09C5F-9F23-4274-8BB5-4E0924D52076"
action="update">
<status>ERROR</status>
<description>An error while doing action 'update' with the variant, tid: '28E09C5F-9F23-4274-8BB5-4E0924D52076', caused by: Unable to create or update product. Product name is duplicated.</description>
</response>
</responses>
</pim>
No access to endpoint
<?xml version="1.0" encoding="UTF-8"?>
<response xmlns="http://www.apollon.de/omn">
<details>
<itm key="supportId">e7f3eeb5-82c3-4928-88cc-cdf6bec08d25</itm>
</details>
<issues>
<itm key="code">1010</itm>
<itm key="description">Access to the requested resource endpoint is forbidden</itm>
<itms type="details">
<itm key="errorMessage">Products persist is restricted for users</itm>
</itms>
</issues>
<status>ERROR</status>
</response>
Perform actions on products
| /pim/products/perform Deletes / copies products. |
Available action types:
-
Delete
-
Copy
|
Copy action
Product copy will be available in the same product parent.
|
Resource path |
/api/core/v1/pim/products/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
PimType with ActionsType
Some actions require additional info that should be provided in MetaType in key/value way.
ActionType's type
is required and must be provided.
Possible values:
-
delete
-
copy
ActionType's dataType is - product
|
Tables legend
"As <action> attribute" describes, that parameter is in the xml attribute of <action> tag. Otherwise, parameter should be in ItemType. "Required groups" - one of parameter in the one group is required e.g. entity identifier (tid or id) |
| Parameter Name | As <action> attribute | Required | Type | Description | Format |
|---|---|---|---|---|---|
id |
X |
X G1 |
Long |
id of the product that should be deleted |
|
tid |
X |
X G1 |
string |
tid of the product that should be deleted |
| Parameter Name | As <action> attribute | Required | Type | Description | Format |
|---|---|---|---|---|---|
id |
X |
X G1 |
Long |
id of the product that should be copied |
|
tid |
X |
X G1 |
string |
tid of the product that should be copied |
|
newProductName |
X |
string |
new name of the product that should be copied |
||
newProductTid |
string |
new tid of the product that should be copied |
Return Type
PimType with filled ResponsesType
Response types contains status information about each action passed to perform.
Responses
| Actions are processed separately. Exceptions thrown during the execution of actions will be reported in ResponseType. |
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType. |
|
400 |
Invalid input provided |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
Delete
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/products/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" tid="37590039-3AEA-4A13-9C3A-C6EC3C94ADCE" type="delete"/>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" tid="37590039-3AEA-4A13-9C3A-C6EC3C94ADCE" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" id="552200" type="delete"/>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-26T15:28:53.286Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3AEA-4A13-9C3A-C6EC3C94ADCE"
action="delete">
<status>SUCCESS</status>
<description>The product has been deleted successfully</description>
</response>
</responses>
</pim>
Error responses
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-26T15:24:32.321Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3AEA-4A13-9C3A-C6EC3C94ADCE2"
action="delete">
<status>ERROR</status>
<description>There is no product with the given tid or id</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-26T15:50:42.328Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3AEA-4A13-9C3A-C6EC3C94ADCE2"
action="delete">
<status>ERROR</status>
<description>The product could not be deleted. Reason: {errormessage}</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-26T15:54:28.638Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product">
<status>ERROR</status>
<description>Products delete API is restricted for user</description>
</response>
</responses>
</pim>
Copy
curl
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/products/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" tid="37590039-3aea-4a13-9c3a-c6ec3c94adce" type="copy">
<meta>
<itm key="newProductName">NewProduct</itm>
<itm key="newProductTid">37590039-aaaa-4a13-9c3a-c6ec3c94adce</itm>
</meta>
</action>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" tid="37590039-3aea-4a13-9c3a-c6ec3c94adce" type="copy">
<meta>
<itm key="newProductName">NewProduct</itm>
<itm key="newProductTid">37590039-aaaa-4a13-9c3a-c6ec3c94adce</itm>
</meta>
</action>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<actions>
<action dataType="product" id="123123" type="copy">
<meta>
<itm key="newProductName">NewProduct</itm>
<itm key="newProductTid">37590039-aaaa-4a13-9c3a-c6ec3c94adce</itm>
</meta>
</action>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3aea-4a13-9c3a-c6ec3c94adce"
action="copy">
<status>SUCCESS</status>
<description>The product has been copied successfully</description>
<details>
<itm key="productId">77833</itm>
</details>
</response>
</responses>
</pim>
Error responses
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:36:54.983Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3aea-4a13-9c3a-c6ec3c94adce2"
action="copy">
<status>ERROR</status>
<description>There is no product with the given tid or id</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:38:16.444Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product"
tid="37590039-3aea-4a13-9c3a-c6ec3c94adce2"
action="copy">
<status>ERROR</status>
<description>The product could not be copied. Reason: {errorMessageFromOMN}</description>
</response>
</responses>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-10-11T12:14:28.978Z</itm>
<itm key="sourceEnv">web</itm>
</meta>
<responses>
<response dataType="product">
<status>ERROR</status>
<description>Products copy API is restricted for user</description>
</response>
</responses>
</pim>
Retrieve products
| /pim/products/retrieve Returns list of product trees by identifiers. |
Resource path |
/api/core/v1/pim/products/retrieve |
HTTP method |
POST |
Request content type |
application/json |
Response content type |
|
Types of products:
-
Product
-
Article
-
Variation
Product attributes values
Product attributes values are stored in related product type (P,A,V) in <vals> element.
Attribute types:
-
simple
-
localized
-
multiple
-
multi_loc
-
domain
-
loc_domain
-
multi_domain
-
multi_loc_domain
Attribute data types:
-
string
-
real
-
date
-
boolean
-
table
Product attributes types and examples
| Attribute type | Response template | Example |
|---|---|---|
Boolean |
|
|
Date |
|
|
Number |
|
|
String |
|
|
Table |
Allows to use as columns listable attributes with domains and/or localization
|
|
Listable attribute (String or Date or Number or Boolean) |
|
|
Localized attribute (String or Date or Number or Boolean) |
|
|
Localized listable attribute (String or Date or Number or Boolean) |
|
|
Domain attribute (String) |
|
|
Domain localized attribute |
|
|
Domain listed attribute |
|
|
Domain listed localized attribute |
|
|
Body parameters
Specified by ProductRequest
Return Type
PimType with filled ProductsType. More info ProductType
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with list of products tree (P,A,V) |
|
403 |
No access to the endpoint |
|
500 |
Error in ResponseType |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
Get product
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/products/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"ids": [
598800
]
}'
{
"ids": [
598800
]
}
{
"tids": [
"78fc9abb-2223-40dc-ac3e-26d42102d050"
]
}
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-12-28T16:27:22.403Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">product</itm>
</meta>
<products>
<product tid="78fc9abb-2223-40dc-ac3e-26d42102d050">
<articles>
<article tid="e9e74b50-0a64-4bf5-995e-41940cac29ea">
<meta>
<itm key="id">599790</itm>
<itm key="creationDate">2022-12-28T16:25:10.451Z</itm>
<itm key="modificationDate">2022-12-28T16:25:10.451Z</itm>
<itm key="valueModificationDate">2022-12-28T16:25:38.389Z</itm>
<itm key="status">READY</itm>
</meta>
<name>Article</name>
<vals>
<val attr="color" dataType="text" node="/Standard" type="localized">
<itm loc="en_EN">Black</itm>
</val>
</vals>
<variants>
<variant tid="ab96e6b1-d874-4cea-9ab9-141fcf6804bc">
<meta>
<itm key="id">599791</itm>
<itm key="creationDate">2022-12-28T16:25:15.553Z</itm>
<itm key="modificationDate">2022-12-28T16:25:15.553Z</itm>
<itm key="valueModificationDate">2022-12-28T16:25:46.481Z</itm>
<itm key="status">READY</itm>
</meta>
<name>Variation</name>
<vals>
<val attr="currency" dataType="text" node="/Standard" type="loc_domain">
<itm key="EUR" loc="en_EN">EUR</itm>
</val>
</vals>
</variant>
</variants>
</article>
</articles>
<links>
<itms mode="delta" type="channels"/>
<itms mode="delta" type="assets">
<itms attr="REFERENCE_TABLE" mode="delta">
<itm key="BBF33C7E-E412-4C9E-B313-735C8C681D71">/100192517000_97f.jpg</itm>
</itms>
</itms>
<itms mode="delta" type="products"/>
</links>
<meta>
<itm key="id">598800</itm>
<itm key="creationDate">2022-12-27T06:24:56.610Z</itm>
<itm key="modificationDate">2022-12-27T06:24:56.610Z</itm>
<itm key="valueModificationDate">2022-12-28T16:24:54.488Z</itm>
<itm key="status">READY</itm>
</meta>
<name>Product</name>
<node>/Standard/Demo</node>
<vals>
<val attr="STRING_LISTED_LOC" dataType="text" inheritance="false" node="/Standard/Demo" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">en</itm>
</i18N>
<i18N loc="de_DE">
<itm pos="0">text</itm>
</i18N>
</val>
<val attr="BOOLEAN_LISTED" dataType="boolean" inheritance="false" node="/Standard/Demo" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">true</itm>
<itm pos="1">false</itm>
</i18N>
<i18N loc="de_DE">
<itm pos="0">true</itm>
<itm pos="1">false</itm>
</i18N>
</val>
<val attr="DATE_LISTED" dataType="date" inheritance="false" node="/Standard/Demo" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">2022-12-15T14:55:00.000Z</itm>
<itm pos="1">2022-12-04T14:55:00.000Z</itm>
</i18N>
<i18N loc="de_DE">
<itm pos="0">2022-12-22T14:55:00.000Z</itm>
<itm pos="1">2022-12-31T14:55:00.000Z</itm>
</i18N>
</val>
<val attr="DATE_LISTED_2" dataType="date" inheritance="false" node="/Standard/Demo" type="multiple">
<itm pos="0">2022-12-14T06:26:00.000Z</itm>
<itm pos="1">2022-12-16T06:26:00.000Z</itm>
</val>
<val attr="BOOLEAN" dataType="boolean" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">true</itm>
</val>
<val attr="REAL_LISTED_2" dataType="number" inheritance="false" node="/Standard/Demo" type="multiple">
<itm pos="0">3</itm>
<itm pos="1">1</itm>
</val>
<val attr="NUBMER_LISTED" dataType="number" inheritance="false" node="/Standard/Demo" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">1</itm>
<itm pos="1">2</itm>
</i18N>
<i18N loc="de_DE">
<itm pos="0">3</itm>
<itm pos="1">4</itm>
</i18N>
</val>
<val attr="STRING_LISTED_DOMAIN" dataType="text" inheritance="false" node="/Standard/Demo" type="multi_loc_domain">
<i18N loc="en_EN">
<itm key="Value 1" pos="0">Value 1 EN</itm>
</i18N>
<i18N loc="fr_FR">
<itm key="Value 2" pos="0"></itm>
</i18N>
</val>
<val attr="STRING_DOMAIN" dataType="text" inheritance="false" node="/Standard/Demo" type="loc_domain">
<itm key="Domain value 1" loc="en_EN"></itm>
<itm key="Domain value 2" loc="de_DE"></itm>
</val>
<val attr="STRING" dataType="text" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">3343</itm>
<itm loc="fr_FR">French</itm>
</val>
<val attr="NUMBER_LISTABLE_TABLE" dataType="number" inheritance="false" node="/Standard/Demo" parent="TABLE" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">54</itm>
<itm pos="1">45</itm>
</i18N>
</val>
<val attr="STRING_LISTABLE_DOMAIN_TABLE" dataType="text" inheritance="false" node="/Standard/Demo" parent="TABLE" type="multi_loc">
<i18N loc="en_EN">
<itm pos="0">1</itm>
<itm pos="1">2</itm>
</i18N>
</val>
<val attr="DATE" dataType="date" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">2022-12-20T11:06:18.000Z</itm>
</val>
<val attr="DATE_2" dataType="date" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">2022-12-20T06:26:00.000Z</itm>
<itm loc="de_DE">2022-12-19T06:26:00.000Z</itm>
</val>
<val attr="NUMBER" dataType="number" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">5.432</itm>
</val>
<val attr="NUMBER_2" dataType="number" inheritance="false" node="/Standard/Demo" type="localized">
<itm loc="en_EN">1</itm>
<itm loc="de_DE">3</itm>
</val>
</vals>
</product>
</products>
</pim>
Query products
| /pim/products/query Get tids of products by allowed criteria |
Allows to get products tids by:
-
By modification date (from/until)
-
By classification node paths
-
By search strategy
| Criteria combined with AND operator. |
Resource path |
/api/core/v1/pim/products/query |
HTTP method |
POST |
Request content type |
application/json; |
Response content type |
application/json; |
Body parameters
Accepts ProductQuery
Return Type
Filled with asset tids ProductRequest
Responses
| Code | Message | Datatype |
|---|---|---|
200 |
Found products tids |
|
400 |
Invalid input error ResponseType |
|
500 |
Error in ResponseType |
Samples
Query product by modified dates, classification node paths and search strategy
curl --location --request POST 'https://<OMN_SERVER>/api/core/v1/pim/products/query' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"modifiedFrom": "2018-02-25T01:00:00.000",
"modifiedUntil": "2020-12-25T01:00:00.000",
"nodePaths": [
"/seasons/2021/clothes",
"/seasons/2022/clothes"
],
"searchStrategy": "defaultSearchStrategy"
}
'
Request body examples:
{
"modifiedFrom": "2018-02-25T01:00:00.000",
"modifiedUntil": "2020-12-25T01:00:00.000",
"nodePaths": [
"/seasons/2021/clothes"
],
"searchStrategy": "defaultSearchStrategy"
}
{
"tids": [
"8E93BA7A-0521-4FB2-A7B7-40941C7A5AFA",
"218BCAED-A63B-4CE4-B23F-42B479E4E9FB",
"C3617CA4-0869-4A60-9CDC-32DCA0322F63",
"2BA8E460-964E-4197-9292-1E4365B29386",
"5BD22A27-7C2E-49B9-B90F-00F209900480",
"D1019EE5-F1E0-49FA-8C2B-AD7FE3F8402C",
"6BD4B93B-2F35-4B9F-909E-974443B7C96B",
"DA32F94E-98B8-4F62-B588-EE804D97717B",
"08E3AF9C-1D28-4962-9C82-4E54633A9A4B",
"F008FE89-7372-4C17-83AB-670A664B57D9",
"95E7D312-1C4B-43BF-93C9-2219248ABF33",
"A905D075-8312-49EA-AB09-65D6FDBEE573",
"19F2C143-68D0-410C-BC24-53B33B70D270"
]
}
Perform actions on products links
| /pim/products/links/perform Unlink products from products. |
-
unlink
Allow to unlink products by:
-
product tid
-
product id
Resource path |
/api/core/v1/pim/products/links/perform |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Body parameters
PimType with ActionTypes
Actions require additional info that should be provided in MetaType in key/value way.
ActionType's type
is required and must be provided.
Possible values:
-
unlink
ActionType's dataType is -
productToProductLink
Return Type
PimType with filled ResponsesType
Response types contains status information about each action passed to perform.
Responses
| Actions are processed separately. Exceptions thrown during the execution of actions will be reported in ResponseType. |
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType. |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1.Unlink products by product tid
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="productToProductLink" type="unlink">
<meta>
<itm key="productTid">product_tid</itm>
<itm key="targetProductTid">targetProduct_tid</itm>
<itm key="type">PRODUCT_REF</itm>
</meta>
</action>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="productToProductLink" type="unlink">
<meta>
<itm key="productTid">product_tid</itm>
<itm key="targetProductTid">targetProduct_tid</itm>
<itm key="type">PRODUCT_REF</itm>
</meta>
</action>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink" action="unlink">
<status>SUCCESS</status>
<description>The product has been unlinked successfully</description>
</response>
</responses>
</pim>
2.Unlink products by product id
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/perform' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="productToProductLink" type="unlink">
<meta>
<itm key="productId">985547</itm>
<itm key="targetProductId">554785</itm>
<itm key="type">PRODUCT_REF</itm>
</meta>
</action>
</actions>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="sourceEnv">web</itm>
</meta>
<actions>
<action dataType="productToProductLink" type="unlink">
<meta>
<itm key="productId">985547</itm>
<itm key="targetProductId">554785</itm>
<itm key="type">PRODUCT_REF</itm>
</meta>
</action>
</actions>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-21T14:54:28.781Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink" action="unlink">
<status>SUCCESS</status>
<description>The product has been unlinked successfully</description>
</response>
</responses>
</pim>
Error responses
A product does not exist
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-21T14:54:28.781Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="unlink">
<status>ERROR</status>
<description>There is no target products with the given tid or id to perform unlink: {details}</description>
</response>
</responses>
</pim>
An attribute definition does not exist
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-21T14:54:28.781Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="unlink">
<status>ERROR</status>
<description>There is no target attribute definition with the given identifier: {tid}</description>
</response>
</responses>
</pim>
Unlink could not be performed
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-21T14:54:28.781Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="unlink">
<status>ERROR</status>
<description>Unlink could not be performed. Reason: {errormessage}</description>
</response>
</responses>
</pim>
No access to the endpoint
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2023-02-21T14:54:28.781Z</itm>s
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink">
<status>ERROR</status>
<description>Unlink API is restricted for user</description>
</response>
</responses>
</pim>
Link products
| /pim/products/links/persist Link products to another products. |
Allow to link products by:
-
product tid
-
product id
Resource path |
/pim/products/links/persist |
HTTP method |
POST |
Request content type |
|
Response content type |
|
Return Type
PimType with statuses ResponsesType about each linked product.
| Code | Message | Datatype |
|---|---|---|
200 |
PimType with filled ResponsesType |
|
400 |
Invalid input provided |
|
401 |
Not authorized |
|
500 |
An unknown internal error occurred |
Samples
| Please use transform endpoint to get the JSON/compact-JSON samples from the XML one. |
1. Link single product to single product by tids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="targetProductTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm key="productTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</links>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="targetProductTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm key="productTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</links>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="link">
<status>SUCCESS</status>
<description>The products has been linked successfully</description>
<details>
<itms type="PRODUCT_REF">
<itm key="targetProductTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm key="productTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</details>
</response>
</responses>
</pim>
2. Link single product to single product by ids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="targetProductId">12345</itm>
<itm key="productId">54321</itm>
</itms>
</itms>
</links>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="targetProductId">12345</itm>
<itm key="productId">54321</itm>
</itms>
</itms>
</links>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="link">
<status>SUCCESS</status>
<description>The products has been linked successfully</description>
<details>
<itms type="PRODUCT_REF">
<itm key="targetProductId">12345</itm>
<itm key="productId">54321</itm>
</itms>
</details>
</response>
</responses>
</pim>
3. Link several products to single product by tids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
</itms>
<itm key="targetProductTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</links>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
</itms>
<itm key="targetProductTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</links>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="link">
<status>SUCCESS</status>
<description>The products has been linked successfully</description>
<details>
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
</itms>
<itm key="targetProductTid">e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</details>
</response>
</responses>
</pim>
4. Link single products to several products by tids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="productTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</itms>
</links>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itm key="productTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</itms>
</links>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="link">
<status>SUCCESS</status>
<description>The products has been linked successfully</description>
<details>
<itms type="PRODUCT_REF">
<itm key="productTid">73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</details>
</response>
</responses>
</pim>
5. Link several products to several products by tids
curl
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/products/links/persist' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>28e09c5f-9f23-4274-8bb5-4e0924d52076</itm>
</itms>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</itms>
</links>
</pim>'
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<links>
<itms type="productToProduct">
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>28e09c5f-9f23-4274-8bb5-4e0924d52076</itm>
</itms>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</itms>
</links>
</pim>
<?xml version="1.0" encoding="UTF-8"?>
<pim xmlns="http://www.apollon.de/omn" schemaVersion="5.6.0">
<meta>
<itm key="messageType">request</itm>
<itm key="messageTime">2022-06-04T13:24:53.286Z</itm>
<itm key="sourceEnv">web</itm>
<itm key="itemInformationType">link</itm>
</meta>
<responses>
<response dataType="productToProductLink"
action="link">
<status>SUCCESS</status>
<description>The products has been linked successfully</description>
<details>
<itms type="PRODUCT_REF">
<itms type="productTid">
<itm>73c7992f-5f66-4d99-9ca7-9efa3f1b8281</itm>
<itm>28e09c5f-9f23-4274-8bb5-4e0924d52076</itm>
</itms>
<itms type="targetProductTid">
<itm>ab96e6b1-d874-4cea-9ab9-141fcf6804bc</itm>
<itm>e8712bfd-6701-4833-9197-b259ea42dd84</itm>
</itms>
</itms>
</details>
</response>
</responses>
</pim>