Persist classifications

/pim/classes/persist Saves classifications and classification nodes with attributes.

Allow to

  1. Create classification

  2. Update classification

  3. Create classification nodes and nodes attributes

  4. Update classification nodes and nodes attributes

Table 1. Details

Resource path

/api/core/v1/pim/classes/persist

HTTP method

POST

Request content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Body parameters
Return Type

PimType with statuses ResponsesType about each persisted classification.

Responses
Table 2. Http response codes
Code Message Datatype

200

PimType with filled ResponsesType

PimType

400

Invalid input provided

ResponseType

401

Not authorized

ResponseType

404

Not found

ResponseType

500

An unknown internal error occurred

ResponseType

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>

Welcome to the AI Chat!

Write a prompt to get started...