Postman collection
Items Write

pixiSetItemInfo

Updates master data of one or more items (name, description, category, price, VAT level, dimensions, customs data, manufacturer, internal item number).

Changes item master data in items and the internal item number in ItemCode. Two input channels can be used, alone or together:

  • ItemKey + ItemDescription: sets the description of a single item. An omitted or empty ItemDescription removes the description.
  • ItemInfoXML: any number of Item elements below /ItemInfo (element-centric). Each entry identifies the item by ItemKey; if ItemKey is missing or 0, the item is looked up by ItemNrInt (item code of type 2).

Processing

  1. Empty elements are treated as not supplied.
  2. Entries whose Enabled is not an integer or whose PriceVK is not numeric are discarded and reported with a status row.
  3. Field mapping (fields that are not supplied keep their current value, except ItemDescription):
    • ItemName → ItemName, PicLinkSmall/PicLinkLarge, CustomsTariffNumber, CustomsCountryOfOrigin, CustomsTariffText → same columns, Manufacturer → Artist.
    • ItemDescription → ItemDescription, always written; NULL if the entry has none.
    • Enabled → bit (0 = disabled, any other number = enabled).
    • PriceVK → Price (money, decimal point).
    • VATLevel: HIGH, LOW, ZERO → MwStSatz 1, 2, 3; other values are ignored.
    • Weight → whole number decimal(10,0); Heigth, Width, Length → whole numbers decimal(4,0); values that cannot be converted are ignored.
    • Category: looked up by text in TontrArten. Unknown categories are created with the next free hexadecimal code. The item gets CategoryId and ConfigType of that category.
    • InternalItemNumber: item code of type 3 in ItemCode; inserted if the item has none, updated if it differs.
  4. An item is updated only if it exists in items and the entry contains at least one field other than ItemDescription/InternalItemNumber, or it is the item given in the ItemKey parameter.
  5. If the same item appears in several entries with different data, it is not updated at all.
  6. Updated items get UpdateDate = current time and UpdateEmp = API user SetItemInfo.

Result

If at least one item qualified for the update and no SQL error occurred, one row per entry is returned with Status = Updated or a reason why the entry was skipped. Otherwise a single row with Status (404 or 500) and ErrorMsg is returned. The rows are not sorted.

Notes

  • Description is overwritten: every updated item gets ItemDescription from its entry. An XML entry without ItemDescription therefore clears the existing description. Always send the description if it must be kept.
  • Sending the same item via the ItemKey parameter and in the XML usually produces two different entries and the item is reported as Duplicated entries found in input parameters without any change.
  • An entry that only contains InternalItemNumber (and/or ItemDescription) is not processed and reported as No item/s found or have no data for update, unless it is the item of the ItemKey parameter.
  • New categories in TontrArten are created before the item update and independently of it, even if the item does not exist, the entry is a duplicate or the update later fails.
  • There is no explicit transaction: the ItemCode changes and the items update are separate statements inside one TRY block. If a later statement fails, earlier changes remain and the call returns 500 instead of the per-item rows.
  • During the items update CONTEXT_INFO is set to 0x11199 to suppress the item triggers; the previous value is restored afterwards.
  • The element for height is spelled Heigth in the XML.
  • Weight and the dimensions are rounded to whole numbers; dimensions above 9999 are ignored.
  • Malformed XML or a conversion problem before the TRY block raises a SQL error (SqlMessage) instead of a status row. The code does not check explicitly whether ItemInfoXML is empty.
  • If no entry qualifies for an update, only 404 is returned, even when entries were discarded because of non-numeric Enabled/PriceVK.
  • Reads from items, ItemCode, TontrArten and Numbers use NOLOCK.

Tables used

items · Write ItemCode · Write TontrArten · Write Numbers · Read
SQL object:
dbo.pipiSetItemInfo
Updated at 2026-10-30