pixiGetItemInfo
Liefert Stammdaten, Bestand, Lieferanten-, MwSt.-, Tag- und Zollinformationen zu einem oder mehreren Artikeln, gesucht über Artikelschlüssel, EAN, Artikelnummern oder eine XML-Liste.
Sucht Artikel und liefert pro gefundenem Artikel eine Zeile mit dessen Stammdaten.
Normalisierung der Eingaben
ItemKey= 0 und leere Zeichenketten werden alsNULLbehandelt.- Ist keiner der Parameter
ItemKey,ItemNrInt,EANUPC,ItemNrSuppl,ItemXMLoderInternalItemNumbergesetzt, wird statt Artikeldaten eine einzelne Fehlerzeile geliefert.LocIDallein reicht nicht aus.
Suchkriterien
Die Einzelparameter und jeder Eintrag /ITEMS/ITEM aus ItemXML bilden eine Liste von Suchkriterien. Jedes Kriterium wird gegen pixi.ItemCode geprüft:
ItemKey/ITEMKEY: Artikel-IDEANUPC/EAN: Codetyp 1 (EAN)ItemNrInt/ITEMNRINT: Codetyp 2 (interne Artikelnummer)InternalItemNumber/INTERNALITEMNUMBER: Codetyp 3ItemNrSuppl/ITEMNRSUPPL: Codetyp 4 (Lieferanten-Artikelnummer)
Alle Treffer werden mit ODER-Logik (Vereinigungsmenge) kombiniert: Ein Artikel wird geliefert, wenn er zu einem der angegebenen Werte passt. Doppelte Treffer werden entfernt.
Ausgabewerte
LocIDwählt lagerspezifische Werte ausItemLocationSpecific:MinStockQty,Quantity,SafetyStock,TargetStock. Ohne Lager (oder ohne lagerspezifischen Datensatz) werden die globalen Artikelwerte verwendet,SafetyStock/TargetStocksind dann 0.ConsiderFavouriteSupplier= 1 verwendet den aktiven bevorzugten Lieferanten (AddItems.PreferredSupplier= 1, Lieferant nicht deaktiviert) fürSupplPrice,SupplNr,ItemNrSuppl,EANUPCundMinOrderQty. Mit dem Standardwert 0 werden die Werte des Artikels und derAddItems-Datensatz des Hauptlieferanten verwendet.VATLevelergibt sich aus dem MwSt.-Satz: 2 =MwSt_Low, 3 =MwSt_Null, alle anderen Werte =MwSt_High.ItemTAGsenthält alle Tags des Artikels, getrennt durch|.ABCenthält nur die System-TagsA,BoderC.
Die Zeilen werden ohne definierte Sortierung geliefert.
Hinweise
- Alle Tabellen werden
WITH (NOLOCK)gelesen; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Laut Code-Kommentar wird
ConsiderFavouriteSupplier"nicht mehr verwendet", der Code wertet den Parameter aber weiterhin aus: Bei 1 werden die Werte des bevorzugten Lieferanten verwendet, undMinOrderQtyist 0, wenn kein aktiver bevorzugter Lieferant existiert. - Auch die Suche über
ItemKeyläuft überpixi.ItemCode. Ein Artikel ohne Eintrag inpixi.ItemCodewird trotz gültigem Schlüssel nicht gefunden. - Mehrere Parameter erweitern das Ergebnis (ODER), sie schränken es nicht ein.
- In
ItemXMLheißt das EAN-ElementEAN, nichtEANUPC. Tabulatoren werden ausITEMKEYentfernt. Ein nicht numerischerITEMKEYoder fehlerhaftes XML führt zu einem SQL-Fehler. EANUPCist auf 13 Zeichen begrenzt.- Durch die Outer Joins (z. B. mehrere Codetyp-3-Einträge oder mehrere aktive bevorzugte Lieferanten) kann ein Artikel mehrfach im Ergebnis erscheinen.
- Es werden keine Daten geändert; nur temporäre Tabellen werden verwendet.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Gesuchter Artikelschlüssel (Artikel-ID). 0 gilt als nicht gesetzt. Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer (Codetyp 2 in Beispiel: |
EANUPC
|
varchar(13) string |
NULL |
EAN/UPC-Code (Codetyp 1 in Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer (Codetyp 4 in Beispiel: |
LocID
|
varchar(3) string |
NULL |
Lager-ID für lagerspezifische Werte ( Beispiel: |
ItemXML
|
varchar(max) xml |
NULL |
XML-Liste der gesuchten Artikel: ein Beispiel:
|
InternalItemNumber
|
varchar(50) string |
NULL |
Zusätzliche interne Artikelnummer (Codetyp 3 in Beispiel: |
ConsiderFavouriteSupplier
|
bit boolean |
0 |
Bei 1 werden die Lieferantenwerte vom aktiven bevorzugten Lieferanten übernommen. Laut Code-Kommentar "nicht mehr verwendet", wird aber weiterhin ausgewertet. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn mindestens ein Suchparameter gesetzt ist
Eine Zeile pro gefundenem Artikel (leer, wenn nichts gefunden wird).
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemKey
|
int |
Artikelschlüssel. |
SupplPrice
Kann leer sein |
money decimal |
Einkaufspreis beim Lieferanten (bevorzugter Lieferant bei |
ItemName
Kann leer sein |
string |
Artikelbezeichnung. |
VPE
|
int |
Verpackungseinheit; 0, wenn nicht gesetzt. |
OrderUnit
|
int |
Bestelleinheit; 0, wenn nicht gesetzt. |
MinStockQty
Kann leer sein |
int |
Mindestbestand, lagerspezifisch falls für |
MinOrderQty
|
int |
Mindestbestellmenge vom bevorzugten Lieferanten (bei |
SupplNr
Kann leer sein |
varchar(4) string |
Lieferantennummer. |
Category
Kann leer sein |
string |
Kategorietext aus |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrSuppl
|
varchar(50) string |
Lieferanten-Artikelnummer; leere Zeichenkette, wenn nicht gesetzt. |
Quantity
Kann leer sein |
int |
Bestand, lagerspezifisch falls für |
PriceVK
Kann leer sein |
decimal |
Verkaufspreis des Artikels. |
VATLevel
Kann leer sein |
varchar(10) string |
MwSt.-Stufe: |
Enabled
Kann leer sein |
boolean |
Gibt an, ob der Artikel aktiv ist. |
ItemTAGs
|
varchar(1000) string |
Alle Tags des Artikels, getrennt durch |
EANUPC
Kann leer sein |
varchar(13) string |
EAN/UPC vom bevorzugten Lieferanten, aus dem |
ABC
|
varchar(1000) string |
ABC-Klassifizierung aus den System-Tags |
ExportEstimatedDelivery
Kann leer sein |
string |
Voraussichtliche Lieferzeit aus |
PicLinkLarge
Kann leer sein |
string |
Link zum großen Artikelbild. |
PicLinkSmall
Kann leer sein |
string |
Link zum kleinen Artikelbild. |
InternalItemNumber
Kann leer sein |
string |
Code vom Typ 3 aus |
SafetyStock
|
int |
Sicherheitsbestand für |
TargetStock
|
int |
Zielbestand für |
ItemDescription
Kann leer sein |
string |
Artikelbeschreibung. |
ImputedSupplierPrice
Kann leer sein |
decimal |
Kalkulatorischer Einkaufspreis des Artikels. |
Weight
Kann leer sein |
decimal |
Gewicht des Artikels. |
Heigth
Kann leer sein |
decimal |
Höhe des Artikels (Spaltenname wird |
Width
Kann leer sein |
decimal |
Breite des Artikels. |
Length
Kann leer sein |
decimal |
Länge des Artikels. |
CustomsTariffNumber
Kann leer sein |
string |
Zolltarifnummer. |
CustomsCountryOfOrigin
Kann leer sein |
string |
Ursprungsland für den Zoll. |
CustomsTariffText
Kann leer sein |
string |
Zolltariftext. |
Manufacturer
Kann leer sein |
string |
Hersteller (Artikelfeld |
Result-Set 2 · Wenn kein Suchparameter gesetzt ist (nur LocID oder nichts)
Einzelne Fehlerzeile.
| Spalte | Typ | Beschreibung |
|---|---|---|
Error
|
varchar(5) string |
Immer |
ErrorMsg
|
varchar(37) string |
Fehlertext. |
Beispielantwort
<SqlRowSet1>
<row>
<ItemKey>1234</ItemKey>
<SupplPrice>4.2000</SupplPrice>
<ItemName>USB-C Cable 1m</ItemName>
<VPE>1</VPE>
<OrderUnit>10</OrderUnit>
<MinStockQty>20</MinStockQty>
<MinOrderQty>50</MinOrderQty>
<SupplNr>L001</SupplNr>
<Category>Accessories</Category>
<ItemNrInt>ART-10001</ItemNrInt>
<ItemNrSuppl>SUP-778-B</ItemNrSuppl>
<Quantity>148</Quantity>
<PriceVK>9.9900</PriceVK>
<VATLevel>MwSt_High</VATLevel>
<Enabled>true</Enabled>
<ItemTAGs>A|Bestseller</ItemTAGs>
<EANUPC>4006381333931</EANUPC>
<ABC>A</ABC>
<ExportEstimatedDelivery>2</ExportEstimatedDelivery>
<PicLinkLarge>https://shop.example.com/img/1234_l.jpg</PicLinkLarge>
<PicLinkSmall>https://shop.example.com/img/1234_s.jpg</PicLinkSmall>
<InternalItemNumber>INT-5501</InternalItemNumber>
<SafetyStock>10</SafetyStock>
<TargetStock>200</TargetStock>
<ItemDescription>USB-C to USB-C cable, 1 m, black</ItemDescription>
<ImputedSupplierPrice>4.5000</ImputedSupplierPrice>
<Weight>0.05</Weight>
<Heigth>2</Heigth>
<Width>10</Width>
<Length>15</Length>
<CustomsTariffNumber>85444290</CustomsTariffNumber>
<CustomsCountryOfOrigin>CN</CustomsCountryOfOrigin>
<CustomsTariffText>Electric conductors</CustomsTariffText>
<Manufacturer>CableCorp</Manufacturer>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | Please specify at least one parameter | Keiner der Parameter `ItemKey`, `ItemNrInt`, `EANUPC`, `ItemNrSuppl`, `ItemXML`, `InternalItemNumber` wurde übergeben (oder alle waren 0/leer). Mindestens einen Suchwert angeben. |
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetItemInfo>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <ItemNrInt>ART-10001</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-778-B</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT></ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL>SUP-778-B</ITEMNRSUPPL><ITEMNRINT>ART-10002</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-5501</INTERNALITEMNUMBER></ITEM></ITEMS>]]></ItemXML> -->
<!-- <InternalItemNumber>INT-5501</InternalItemNumber> -->
<!-- <ConsiderFavouriteSupplier>0</ConsiderFavouriteSupplier> -->
</ns1:pixiGetItemInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetItemInfo>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <ItemNrInt>ART-10001</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-778-B</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT></ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL>SUP-778-B</ITEMNRSUPPL><ITEMNRINT>ART-10002</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-5501</INTERNALITEMNUMBER></ITEM></ITEMS>]]></ItemXML> -->
<!-- <InternalItemNumber>INT-5501</InternalItemNumber> -->
<!-- <ConsiderFavouriteSupplier>0</ConsiderFavouriteSupplier> -->
</ns1:pixiGetItemInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'ItemKey' => '1234',
// 'ItemNrInt' => 'ART-10001',
// 'EANUPC' => '4006381333931',
// 'ItemNrSuppl' => 'SUP-778-B',
// 'LocID' => '001',
// 'ItemXML' => '<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT></ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL>SUP-778-B</ITEMNRSUPPL><ITEMNRINT>ART-10002</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-5501</INTERNALITEMNUMBER></ITEM></ITEMS>',
// 'InternalItemNumber' => 'INT-5501',
// 'ConsiderFavouriteSupplier' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemInfo', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemInfo