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

Description
Parameters
Return Type
Content Type
  • application/xml

Responses
Table 1. http response codes
Code Message Datatype

200

classes found

[String]

401

Not authorized

<<>>

404

Not found

<<>>

500

Server error

<<>>

Samples

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.

Table 2. Details

Resource path

/api/core/v1/pim/classes/retrieve

HTTP method

POST

Request content type

application/json

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

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.

  • By default withNodes parameter value is false.

  • If withNodes parameter value is true nodes are returned with all attributes.

  • To gel all classifications ids and tids parameters should be absent or empty.

Return Type
Responses
Table 3. Http response codes
Code Message Datatype

200

PimType with filled ClassificationsType

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. 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"]
}'
Request body
{
    "tids":["Standard", "Standart"]
}
Response body XML
<?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>
Response body JSON
{
  "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]
}'
Request body
{
    "ids":[15360, 1]
}
Response body XML
<?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>
Response body JSON
{
  "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
}'
Request body
{
    "tids":["Standard"],
    "withNodes":true
}
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-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
}'
Request body
{
    "tids":["Standard"],
    "withNodes":true,
    "flatNodes": false
}
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-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
Absent tids and ids lists
curl --location --request POST 'http://<OMN_SERVER>/api/core/v1/pim/classes/retrieve' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{

}'
Absent ids and empty tids lists
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": []
}'
Absent tids and empty ids list
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": []
}'
Request bodies
{
}
{
  "tids": []
}
{
  "ids": []
}
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-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

  1. Create classification

  2. Update classification

  3. Create classification nodes and nodes attributes

  4. Update classification nodes and nodes attributes

Table 4. 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 5. 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>

Perform classifications

/pim/classes/perform Deletes classifications and classification nodes with attributes.
Table 6. Details

Resource path

/api/core/v1/pim/classes/perform

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

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
Table 7. 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. 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>'
Request body
<?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>
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-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>'
Request body
<?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>
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-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.
Table 8. Details

Resource path

/api/core/v1/pim/attribute-definitions

HTTP method

GET

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Body parameters

No parameters required

Return Type
Responses
Table 9. Http response codes
Code Message Datatype

200

PimType with filled AttributeDefinitionsType

PimType

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.
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 ''
Response body
<?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:

  1. By type

Table 10. Details

Resource path

/api/core/v1/pim/attribute-definitions/query

HTTP method

POST

Request content type

application/json;

Response content type

application/json;

Body parameters
Return Type

Filled with attribute definitions ids AttributeDefinitionsRequest

Responses
Table 11. Http response codes
Code Message Datatype

200

Found attribute definitions ids

AttributeDefinitionsRequest

400

Invalid input error ResponseType

ResponseType

401

Not authorized

ResponseType

500

Error in ResponseType

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"]
} '
Request body
{
    "types": ["text", "date", "number", "boolean", "ref", "table"]
}
Response body
{
    "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": []
} '
Request body
{
    "types": []
}
Response body
{
    "all": false
}

Retrieve attribute definitions

/pim/attribute-definitions/retrieve Retrieves information about attribute definitions.
Table 12. Details

Resource path

/api/core/v1/pim/attribute-definitions/retrieve

HTTP method

POST

Request content type

application/json

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Body parameters
  • 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
Responses
Table 13. Http response codes
Code Message Datatype

200

PimType with filled AttributeDefinitionsType

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. 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"]
}'
Request body
{
    "tids": ["product_id", "product_title"]
}
Response body
<?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]
}'
Request body
{
    "ids": [15210,15211]
}
Response body
<?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
}'
Request body
{
    "all": true
}
Response body
<?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

  1. Delete attribute definition by id

  2. Delete attribute definition by identifier

Table 14. Details

Resource path

/api/core/v1/pim/attribute-definitions/perform

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

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
Table 15. 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. 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>'
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-06-04T10:10:16.774Z</itm>
        <itm key="sourceEnv">web</itm>
    </meta>
    <actions>
        <action dataType="attrDefinition" tid="product_tid" type="delete"/>
    </actions>
 </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">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>'
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-06-04T10:10:16.774Z</itm>
        <itm key="sourceEnv">web</itm>
    </meta>
    <actions>
        <action dataType="attrDefinition" id="45260" type="delete"/>
    </actions>
</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">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

  1. Create an attribute definition

  2. Update the attribute definition

Table 16. Details

Resource path

/api/core/v1/pim/attribute-definitions/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

Accepts PimType with filled AttributeDefinitionsType.

Table 17. 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 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>'
Request body
<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>
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">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>'
Request body
<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>
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">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:

  1. Product tid

  2. Product id

  3. Node id

  4. 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.
Table 18. Details

Resource path

/api/core/v1/pim/attributes/query

HTTP method

POST

Request content type

application/json;

Response content type

application/json;

Body parameters
Return Type

AttributesRequest with attributes ids.

Responses
Table 19. Http response codes
Code Message Datatype

200

Found attributes ids.

AttributesRequest

400

Invalid input provided

ResponseType

401

Not authorized

ResponseType

404

Not found

ResponseType

500

An unknown internal error occurred

ResponseType

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]
}'
Request body
{
     "productId": [65874]
}
Response body
{
    "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]
}'
Request body
{
     "productTid": [150185]
}
Response body
{
    "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]
}'
Request body
{
     "nodeId": [96648]
}
Response body
{
    "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
}'
Request body
{
     "nodePath": [96648],
     "includeParentAttributes": true
}
Response body
{
    "ids": [75662, 34345, 43213, 96884, 55478]
}

Retrieve attributes

/pim/attributes/retrieve Retrieves attributes information.

Allow to retrieve attributes by:

  1. list of ids

  2. list of product ids

  3. list of product tids

  4. list of node ids

  5. list of node paths

  • withDomainValues parameter indicates whether to query attributes with domain values. By default, withDomainValues parameter is false.

  • withDefaultValues parameter indicates whether to query attributes with default values. By default, withDomainValues parameter is false.

  • includeParentAttributes parameter indicates whether to query inherited attributes.

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.
Table 20. Details

Resource path

/api/core/v1/pim/attributes/retrieve

HTTP method

POST

Request content type

application/json

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Body parameters
Only one of input parameters ids, productIds, productTids, nodeIds or nodePaths should be specified in request.
Return Type

PimType with filled AttributesType.

Responses
Table 21. Http response codes
Code Message Datatype

200

PimType with filled AttributesType

PimType

400

Invalid input provided

ResponseType

401

Not authorized

ResponseType

404

Not found

ResponseType

500

An unknown internal error occurred

ResponseType

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
}'
Request body
{
     "ids": [46190],
     "withDomainValues": true,
     "withDefaultValues": true
}
Response body
<?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
}'
Request body
{
     "productTids": ["ec98dde6-4064-465d-a1fb-237e2f10a336"],
     "withDomainValues": true,
     "withDefaultValues": true
}
Response body
<?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]
}'
Request body
{
     "productIds": [44812]
}
Response body
<?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
}'
Request body
{
     "nodeIds": [34812],
     "includeParentAttributes": true
}
Response body
<?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"]
}'
Request body
{
     "nodePaths": ["RootNode/ChildNode"]
}
Response body
<?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

  1. Create the attribute

  2. Update attribute values (AttributeType.vals)

Table 22. Details

Resource path

/api/core/v1/pim/attributes/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

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
Table 23. 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
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>'
Request body
<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>
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-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>'
Request body
<?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>
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-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>'
Request body
<?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>
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-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>'
Request body
<?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>
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-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>'
Request body
<?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>
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-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

  1. Delete attribute definition by id

Table 24. Details

Resource path

/api/core/v1/pim/attributes/perform

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

Accepts PimType with ActionsType.

Return Type

PimType with statuses ResponsesType about each performed attribute.

Responses
Table 25. 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
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>'
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-06-04T10:10:16.774Z</itm>
        <itm key="sourceEnv">web</itm>
    </meta>
    <actions>
        <action dataType="attribute" id="98756" type="delete"/>
    </actions>
 </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">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:

  1. product tid

  2. product id

  3. attribute definition id

  4. attribute definition tid

  5. attribute id

Table 26. Details

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
Table 27. Http response codes
Code Message Datatype

200

Found classification nodes ids.

NodesRequest

400

Invalid input provided

ResponseType

401

Not authorized

ResponseType

500

An unknown internal error occurred

ResponseType

Samples
Query classification nodes
curl
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
}'
Request body. By product id
{
    "productId": 18765
}
Request body. By product tid
{
    "productTid": "A239A197-5287-494A-B5EE-36F3EB0E95AB"
}
Request body. By attribute id
{
    "attributeId": "986655"
}
Request body. By attribute definition id
{
    "attributeDefinitionId": "778554"
}
Request body. By attribute definition tid
{
    "attributeDefinitionTid": "7D534991-B623-418C-A7CB-A273C877A37D"
}
Response body
{
    "ids": [756362, 34345, 43213],
    "level": 1
}

Retrieve classification nodes

/pim/nodes/retrieve Returns nodes structure with attributes.
Table 28. Details

Resource path

/api/core/v1/pim/nodes/retrieve

HTTP method

POST

Request content type

application/json

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

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
Table 29. Http response codes
Code Message Datatype

200

PimType with list of nodes

PimType

500

Error in ResponseType

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
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
}'
Request body. By id
{
    "classificationId": 18765
}
Request body. By tid
{
    "classificationTid": "Standard"
}
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-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
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
}'
Request body
{
    "path": "/Standard",
    "level": 1
}
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-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
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]
}'
Request body
{
    "ids": [114740]
}
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-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
No path or id or classificationId in the request
<?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>
Level should not be 0
<?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.
Table 30. Details

Resource path

/api/core/v1/pim/nodes/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

API restriction for users without admin role - endpoint is not available.
Body parameters
Return Type

PimType with statuses ResponsesType about each persisted node.

Responses
Table 31. Http response codes
Code Message Datatype

200

PimType with responses

PimType

500

Error in ResponseType

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>'
Request body. By parent id
<?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>
Request body. By parent path
<?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>
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-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>'
Request body
<?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>
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-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.

Request body. By path
<?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>
Request body. By id
<?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>
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-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
Creation. No parent node 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-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>
Creation. No parent node by path
<?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>
Update. No node 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-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>
Update. No node by path
<?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>
No access to the endpoint
<?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>
No classification by identifier
<?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:

  1. Delete

Table 32. Details

Resource path

/api/core/v1/pim/nodes/perform

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

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:

  1. 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)

Table 33. Delete action parameters
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.
Table 34. Http response codes
Code Message Datatype

200

PimType with filled ResponsesType.

PimType

400

Invalid input provided

ResponseType

500

An unknown internal error occurred

ResponseType

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>'
Request body. By id
<?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>
Request body. By path
<?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>
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-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
No node by identifier
<?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>
Exception during removing
<?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>
No access to the endpoint action
<?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

  1. Create a Product / Article / Variation

  2. Rename Product / Article / Variation

  3. Change attribute values (ProductType.vals)

Table 35. Details

Resource path

/api/core/v1/pim/products/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

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
Table 36. Http response codes
Code Message Datatype

200

PimType with list of responses

PimType

500

Error in ResponseType

ResponseType

Samples
Please use transform endpoint to get the JSON/compact-JSON samples from the XML one.
curl
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
Request body

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>
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-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
Request body

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>
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-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
Request body

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>
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-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
Request body

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>
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-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
Request body

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>
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-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
Request body

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>
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-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
Request body
<?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>
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-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
Duplicate name
<?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>
Non-existing classification 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-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
Duplicate name
<?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
Duplicate name
<?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
Duplicate name
<?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
Duplicate name
<?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
Duplicate name
<?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
Duplicate name
<?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:

  1. Delete

  2. Copy

Copy action
Product copy will be available in the same product parent.
Table 37. Details

Resource path

/api/core/v1/pim/products/perform

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

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:

  1. delete

  2. 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)

Table 38. Delete action parameters
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

Table 39. Copy action parameters
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.
Table 40. Http response codes
Code Message Datatype

200

PimType with filled ResponsesType.

PimType

400

Invalid input provided

ResponseType

500

An unknown internal error occurred

ResponseType

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>'
Request body. By tid
<?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>
Request body. By id
<?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>
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-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
No product by identifier
<?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>
Exception during removing
<?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>
No access to the endpoint action
<?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>'
Request body. By tid
<?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>
Request body. By id
<?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>
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-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
No product by identifier
<?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>
Exception during removing
<?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>
No access to the endpoint action
<?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.
Table 41. Details

Resource path

/api/core/v1/pim/products/retrieve

HTTP method

POST

Request content type

application/json

Response content type

  • application/xml; charset=UTF-8;

  • application/json

  • application/json+compact

Types of products:

  1. Product

  2. Article

  3. Variation

Product attributes values

Product attributes values are stored in related product type (P,A,V) in <vals> element.

Attribute types:

  1. simple

  2. localized

  3. multiple

  4. multi_loc

  5. domain

  6. loc_domain

  7. multi_domain

  8. multi_loc_domain

Attribute data types:

  1. string

  2. real

  3. date

  4. boolean

  5. table

Product attributes types and examples
Attribute type Response template Example

Boolean

<val attr="{attribute_name}" dataType="boolean" inheritance="{is_inherited}" node="{path_to_node}">
    <itm>{attribute_value}</itm>
</val>
 <val attr="BOOLEAN" dataType="boolean" inheritance="false" node="/Standard/Demo">
    <itm>true</itm>
</val>

Date

<val attr="{attribute_name}" dataType="date" inheritance="{is_inherited}" node="{path_to_node}">
    <itm>{iso8601_date}</itm>
</val>
 <val attr="DATE" dataType="date" inheritance="false" node="/Standard/Demo">
    <itm>2022-12-13T06:17:30.000Z</itm>
</val>

Number

<val attr="{attribute_name}" dataType="number" inheritance="{is_inherited}" node="{path_to_node}">
    <itm>{attribute_value}</itm>
</val>
<val attr="NUMBER" dataType="number" inheritance="false" node="/Standard/Demo">
    <itm>8.472</itm>
</val>

String

<val attr="{attribute_name}" dataType="text" inheritance="{is_inherited}" node="{path_to_node}">
    <itm>Text</itm>
</val>
<val attr="STRING" dataType="text" inheritance="false" node="/Standard/Demo">
    <itm>Text</itm>
</val>

Table

Allows to use as columns listable attributes with domains and/or localization

<val attr="{attribute_name}" dataType="{attribute_type}" inheritance="{is_inherited}" node="{path_to_node}" type="multi*">
</val>
<vals>
    <val attr="NUMBER_LISTABLE_TABLE" dataType="number" inheritance="false" node="/Standard/Demo" parent="TABLE" type="multiple">
        <itm pos="0">65</itm>
        <itm pos="1">54</itm>
    </val>
    <val attr="STRING_LISTABLE_DOMAIN_TABLE" dataType="text" inheritance="false" node="/Standard/Demo" parent="TABLE" type="multi_domain">
        <i18N loc="en_EN">
            <itm key="1" pos="0">1 EN</itm>
            <itm key="2" pos="1">2 EN</itm>
        </i18N>
        <i18N loc="fr_FR">
            <itm key="1" pos="0"></itm>
            <itm key="2" pos="1"></itm>
        </i18N>
        <i18N loc="de_DE">
            <itm key="1" pos="0">1 DE</itm>
            <itm key="2" pos="1">1 DE</itm>
        </i18N>
    </val>

     <val attr="NUMBER_LISTABLE_TABLE2" dataType="number" inheritance="false" node="/Standard/Demo" parent="TABLE_LOC" type="multi_loc">
        <i18N loc="en_EN">
        <itm pos="0">54</itm>
        <itm pos="1">45</itm>
        </i18N>
    </val>
    <val attr="STRING_LISTABLE_TABLE2" dataType="text" inheritance="false" node="/Standard/Demo" parent="TABLE_LOC" type="multi_loc">
        <i18N loc="en_EN">
            <itm pos="0">1</itm>
            <itm pos="1">2</itm>
        </i18N>
    </val>
</vals>

Listable attribute (String or Date or Number or Boolean)

<val attr="{attribute_name}" dataType="{attribute_type}" inheritance="{is_inherited}" node="{path_to_node}" type="multiple">
    <itm pos="0">{attribute_value}</itm>
    <itm pos="1">{attribute_value}</itm>
</val>
<vals>
    <val attr="BOOLEAN_LISTED" dataType="boolean" inheritance="false" node="/Standard/Demo" type="multiple">
        <itm pos="0">true</itm>
        <itm pos="1">false</itm>
    </val>
    <val attr="DATE_LISTED" dataType="date" inheritance="false" node="/Standard/Demo" type="multiple">
        <itm pos="0">2022-12-13T06:17:30.000Z</itm>
        <itm pos="1">2022-12-10T06:17:30.000Z</itm>
    </val>
    <val attr="NUMBER_LISTED" dataType="number" inheritance="false" node="/Standard/Demo" type="multiple">
        <itm pos="0">8.463</itm>
    </val>
    <val attr="STRING_LISTED" dataType="text" inheritance="false" node="/Standard/Demo" type="multiple">
        <itm pos="0">Val</itm>
        <itm pos="1">Val2</itm>
    </val>
</vals>

Localized attribute (String or Date or Number or Boolean)

<val attr="{attribute_name}" dataType="{attribute_type}" inheritance="{is_inherited}" node="{path_to_node}" type="localized">
    <itm loc="{language_code}">{attribute_value}</itm>
</val>
<vals>
    <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="DATE" dataType="date" inheritance="false" node="/Standard/Demo" type="localized">
        <itm loc="en_EN">2022-12-20T11:06:18.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="BOOLEAN" dataType="boolean" inheritance="false" node="/Standard/Demo" type="localized">
        <itm loc="en_EN">true</itm>
    </val>
</vals>

Localized listable attribute (String or Date or Number or Boolean)

<val attr="{attribute_name}" dataType="{attribute_type}" inheritance="{is_inherited}" node="{path_to_node}" type="multi_loc">
    <i18N loc="{lang_code}">
            <itm pos="N">{value}</itm>
            <itm pos="N+1">{value}</itm>
    </i18N>
</val>
<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_LOC" 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_LOC" 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="NUMBER_LISTED_LOC" 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">4</itm>
            <itm pos="1">5</itm>
        </i18N>
    </val>
</vals>

Domain attribute (String)

<val attr="{attribute_name}" dataType="{attribute_type}" inheritance="{is_inherited}" node="{path_to_node}" type="domain">
    <itm>{attribute_value}</itm>
</val>
<vals>
    <val attr="STRING_DOMAIN" dataType="text" inheritance="false" node="/Standard/Demo" type="domain">
        <itm key="Domain value 1" loc="en_EN"></itm>
        <itm key="Domain value 1" loc="fr_FR"></itm>
        <itm key="Domain value 1" loc="de_DE"></itm>
    </val>
</vals>

Domain localized attribute

<val attr="{attribute_name}" dataType="text" inheritance="{is_inherited}" node="{path_to_node}" type="domain">
    <itm>{attribute_value}</itm>
    <itm>{attribute_value}</itm>
</val>
<vals>
    <val attr="STRING_DOMAIN_LOC" 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>
</vals>

Domain listed attribute

<val attr="{attribute_name}" dataType="text" inheritance="{is_inherited}" node="{path_to_node}" type="multi_domain">
    <i18N loc="{lang_code}">
        <itm key="{key}" pos="{position}">{attribute_value}</itm>
        <itm>{attribute_value}</itm>
    </i18N>
</val>
<vals>
    <val attr="STRING_LISTED_DOMAIN" dataType="text" inheritance="false" node="/Standard/Demo" type="multi_domain">
        <i18N loc="en_EN">
            <itm key="Value 1" pos="0">Value 1 EN</itm>
            <itm key="Value 2" pos="1">Value 2 EN</itm>
        </i18N>
        <i18N loc="fr_FR">
            <itm key="Value 1" pos="0"></itm>
            <itm key="Value 2" pos="1"></itm>
        </i18N>
        <i18N loc="de_DE">
            <itm key="Value 1" pos="0">Value 1 DE</itm>
            <itm key="Value 2" pos="1">Value 2 DE</itm>
        </i18N>
    </val>
</vals>

Domain listed localized attribute

<val attr="{attribute_name}" dataType="text" inheritance="{is_inherited}" node="{path_to_node}" type="multi_loc_domain">
    <i18N loc="{lang_code}">
        <itm key="{key}" pos="{position}">{attribute_value}</itm>
        <itm>{attribute_value}</itm>
    </i18N>
</val>
<vals>
    <val attr="STRING_LISTED_DOMAIN_LOC" 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>
</vals>
Body parameters

Specified by ProductRequest

Return Type

PimType with filled ProductsType. More info ProductType

Responses
Table 42. Http response codes
Code Message Datatype

200

PimType with list of products tree (P,A,V)

PimType

403

No access to the endpoint

ResponseType

500

Error in ResponseType

ResponseType

Samples
Please use transform endpoint to get the JSON/compact-JSON samples from the XML one.
Get product
curl
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
    ]
}'
Request body. By id
{
    "ids": [
        598800
    ]
}
Request body. By tid
{
    "tids": [
        "78fc9abb-2223-40dc-ac3e-26d42102d050"
    ]
}
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-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:

  1. By modification date (from/until)

  2. By classification node paths

  3. By search strategy

Criteria combined with AND operator.
Table 43. Details

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
Table 44. Http response codes
Code Message Datatype

200

Found products tids

ProductRequest

400

Invalid input error ResponseType

ResponseType

500

Error in ResponseType

ResponseType

Samples
Query product by modified dates, classification node paths and search strategy
curl
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:

Request products from node "/seasons/2021/clothes", with default search strategy limited by modification dates range
{
  "modifiedFrom": "2018-02-25T01:00:00.000",
  "modifiedUntil": "2020-12-25T01:00:00.000",
  "nodePaths": [
    "/seasons/2021/clothes"
  ],
  "searchStrategy": "defaultSearchStrategy"
}
Response body
{
    "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"
    ]
}

/pim/products/links/perform Unlink products from products.
  • unlink

Allow to unlink products by:

  1. product tid

  2. product id

Table 45. Details

Resource path

/api/core/v1/pim/products/links/perform

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

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.
Table 46. Http response codes
Code Message Datatype

200

PimType with filled ResponsesType.

PimType

400

Invalid input provided

ResponseType

401

Not authorized

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.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>'
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="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>
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-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>'
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="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>
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">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>

/pim/products/links/persist Link products to another products.

Allow to link products by:

  1. product tid

  2. product id

Table 47. Details

Resource path

/pim/products/links/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

Accepts PimType with LinksType

Return Type

PimType with statuses ResponsesType about each linked product.

Table 48. Http response codes
Code Message Datatype

200

PimType with filled ResponsesType

PimType

400

Invalid input provided

ResponseType

401

Not authorized

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

Welcome to the AI Chat!

Write a prompt to get started...