Description
The API call updates the item information. One single item or multiple items can be updated.
Request Parameters
# |
Name |
Type |
Required |
Example |
Description |
1 |
ItemKey |
integer |
0 |
123 |
Item ID. |
2 |
ItemDescription |
string |
0 |
abcdefg |
Item description text. If the value is not provided, it will update/remove the whole item description. |
3 |
ItemInfoXML |
string |
0 |
Check additional information |
XML with multiple defined filters. See additional information for XML structure. |
Request body
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dem="https://api.pixi.eu/soap/demosandbox/">
<soapenv:Header/>
<soapenv:Body>
<dem:pixiSetItemInfo>
<dem:ItemKey>123</dem:ItemKey>
<dem:ItemDescription>abcdefg</dem:ItemDescription>
<dem:ItemInfoXML>Check additional information</dem:ItemInfoXML>
</dem:pixiSetItemInfo>
</soapenv:Body>
</soapenv:Envelope>Response
Body 1: Successful response
# |
Name |
Type |
Description |
1 |
ItemKey |
integer |
Item ID or ItemNrInt when ItemKey is empty. |
2 |
Status |
string |
Description of the item status. Possible values: Updated, Value for Enable or Price is not numeric, No item/s found or have no data for update, Duplicated entries found in input parameters. |
3 |
ItemNrInt |
string |
When something is wrong with data, we also return ItemNrInt if it is not empty. |
Body 2: Error response
# |
Name |
Type |
Description |
1 |
Status |
string |
Execution status (Info/Error). |
2 |
Message |
string |
Description of the status. |
Additional Notes
Using parameter @ItemKey and @ItemDescription we allow to update or remove the whole ItemDescription.
ItemDescription will get updated when parameter @ItemKey is present.
To remove ItemDescription, we send value for @ItemKey and empty value for @ItemDescription.
**Important**
When you send XMLs via API it can happen that some information gets lost or the call cannot be executed because some characters in the XML itself.
Please wrap your XML into CDATA to cover everything which is in the XML tag.
<![CDATA[ /** ... */ ]]>
Example:
<ItemDescription><![CDATA[START your text <& and END]]></ItemDescription>
**XML parts**
To update values in fields you can send a new value, on empty value we do not UPDATE this field:
- ItemName
- InternalItemNumber
- Category (if the category does not exist, it will be automatically created)
- Enabled
- PriceVK
- PicLinkSmall
- PicLinkLarge
- VATLevel
- Weight
- Heigth
- Width
- Length
- CustomsTariffNumber
- CustomsCountryOfOrigin
- CustomsTariffText
- Manufacturer
Specialties:
When all parameters are empty (except ItemKey and ItemNrInt), item will not be updated.
When item exists more times in XML, parameters for item are checked:
- when they are equal, item will get updated
Example (equal VATLevel):
<Item> <ItemKey>123</ItemKey> <VATLevel>ZERO</VATLevel> </Item>
<Item> <ItemKey>123</ItemKey> <VATLevel>ZERO</VATLevel> </Item>
- when have different parameters, item will not get updated
Example (different VATLevel):
<Item> <ItemKey>123</ItemKey> <VATLevel>HIGH</VATLevel> </Item>
<Item> <ItemKey>123</ItemKey> <VATLevel>LOW</VATLevel> </Item>
Parameters **ItemKey** and **ItemNrInt** cannot be changed as it influences business logic and can break order.
To update **ItemDescription** you can send an empty value to remove the whole item description or a new value to update it. In case all XML parameters are NULL we will not update/remove **ItemDescription**.
**InternalItemNumber** will be updated only when item will be updated.
For parameter **Enabled** send numeric value:
- 0 for Disabled
- 1 for Enabled
For parameter **PriceVK** send numeric value, dot (.) is delimiter (Example: 13.13).
When **Enabled** or **PriceVK** is not numeric, item will not get updated.
To properly update **VATLevel** send one of the values:
- HIGH
- LOW
- ZERO
**XML example (1 item):**
<ItemInfo>
<Item>
<ItemKey>123</ItemKey>
<ItemNrInt>2021SetItem333</ItemNrInt>
<ItemName>Test item Nr.5</ItemName>
<ItemDescription><![CDATA[Some nice description & Süß]]></ItemDescription>
<InternalItemNumber>12345</InternalItemNumber>
<Category>Cat555</Category>
<Enabled>1</Enabled>
<PriceVK>13.13</PriceVK>
<PicLinkSmall>http://www.example.com/133_0.jpg</PicLinkSmall>
<PicLinkLarge></PicLinkLarge>
<VATLevel>HIGH</VATLevel>
<Weight>500</Weight>
<Heigth>10</Heigth>
<Width>20</Width>
<Length>30</Length>
<CustomsTariffNumber>63061900</CustomsTariffNumber>
<CustomsCountryOfOrigin>DE</CustomsCountryOfOrigin>
<CustomsTariffText>Textile product</CustomsTariffText>
<Manufacturer>ACME Corp</Manufacturer>
</Item>
</ItemInfo>
**XML example (more items):**
<ItemInfo>
<Item>
...use parameters for item 1
</Item>
<Item>
...use parameters for item 2
</Item>
</ItemInfo>
**Return result**
On success, we return a list of what was updated and what was wrong with the data.
We add an additional column ItemNrInt so in case there is no ItemKey we return ItemNrInt so the customer can know which item was send wrong.
We return data in ItemNrInt only in case for Value for Enable or Price is not numeric or No item/s found or have no data for an update.
We do not check if ItemNrInt really belongs to the item (if both values are entered), we only seek for an ItemKey when it is NULL and ItemNrInt exists.