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>'
Request body
<?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>
Response body
<?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>'
Request body
<?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>
Response bodies
<?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>