pixiGetItemInfo2
Liefert Stammdaten, Preise, Bestand, Tags und Lieferanteninformationen zu einem oder mehreren Artikeln, gesucht über ItemKey, EAN, Artikelnummern oder eine XML-Liste.
Sucht Artikel und liefert je gefundenem Artikel eine Zeile mit Stammdaten, Preisen, Bestand und Tags.
Normalisierung der Eingaben
ItemKey= 0 sowie leere Zeichenketten inItemNrInt,EANUPC,ItemNrSuppl,ItemXMLundInternalItemNumbergelten als nicht angegeben. Ein leererLocIDwird als NULL behandelt.- Ist keiner der Parameter
ItemKey,ItemNrInt,EANUPC,ItemNrSuppl,ItemXMLoderInternalItemNumberangegeben, wird eine einzelne Fehlerzeile (Error,ErrorMsg) geliefert.LocIDallein reicht nicht aus.
Artikelsuche
- Die Einzelparameter und jedes
/ITEMS/ITEM-Element ausItemXMLbilden eine Liste von Suchkriterien. AusITEMKEYim XML werden Leerzeichen entfernt. - Die Artikel werden in der Tabelle der Artikelcodes gesucht, alle Treffer werden zusammengeführt (logisches ODER, ohne Duplikate):
ItemKeyentspricht der Artikel-ID,EANUPC/EANentspricht einem Code vom Typ 1 (EAN),ItemNrIntentspricht einem Code vom Typ 2,InternalItemNumberentspricht einem Code vom Typ 3,ItemNrSupplentspricht einem Code vom Typ 4.
Ausgabe
- Eine Zeile je gefundenem Artikel, sortiert nach
ItemKey. - Ist
LocIDangegeben, stammenMinStockQty,Quantity,SafetyStockundTargetStockaus den lagerspezifischen Artikeldaten dieses Lagers; andernfalls (oder wenn keine solchen Daten vorhanden sind) stammenMinStockQtyundQuantityaus dem Artikelstamm,SafetyStock/TargetStocksind 0. - Mit
ConsiderFavouriteSupplier= 1 werden Preis, Lieferantennummer, Lieferanten-Artikelnummer, EAN und Mindestbestellmenge aus dem aktiven Vorzugslieferanten-Eintrag (Lieferant nicht deaktiviert) übernommen, ersatzweise aus dem Artikelstamm. Mit 0 (Standard) stammenMinOrderQtyundEANUPCaus dem Lieferanteneintrag des Hauptlieferanten des Artikels, ersatzweise aus dem Artikelstamm. VATLevelübersetzt den MwSt-Satz-Code 1/2/3 inMwSt_High/MwSt_Low/MwSt_Null.ItemTAGsenthält alle Tags des Artikels getrennt durch|;ABCenthält den System-TagA,BoderCdes Artikels.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK, es können daher nicht festgeschriebene Daten geliefert werden. - Die Suche läuft vollständig über die Tabelle der Artikelcodes: Ein Artikel wird über
ItemKeynur gefunden, wenn mindestens ein Artikelcode-Eintrag vorhanden ist. - Obwohl
ConsiderFavouriteSupplierals "Not used anymore" kommentiert ist, wertet der Code den Parameter weiterhin aus. Mit Wert 1 und ohne aktiven Vorzugslieferanten istMinOrderQty0. - Durch die Verknüpfungen in der Ausgabe können mehrere Zeilen je Artikel entstehen, z. B. bei mehreren internen Artikelnummern (Codetyp 3), mehreren Lieferanteneinträgen zum Hauptlieferanten, mehreren Vorzugslieferanten oder mehreren der System-Tags
A/B/C. ITEMKEY-Werte im XML werden nachintkonvertiert; ein nicht numerischer Wert führt zu einem SQL-Konvertierungsfehler. Ungültiges XML führt ebenfalls zu einem SQL-Fehler.ItemTAGswird aus der Tag-ZuordnungstabelleTagMatchgelesen,ABCdagegen ausItemTagMatching;ItemTAGsist NULL, wenn der Artikel keine Tags hat.VATLevelist NULL für MwSt-Satz-Codes außer 1, 2 und 3.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Artikelschlüssel. 0 gilt als nicht angegeben. Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer (Artikelcode-Typ 2). Leere Zeichenkette gilt als nicht angegeben. Beispiel: |
EANUPC
|
varchar(13) string |
NULL |
EAN/UPC des Artikels (Artikelcode-Typ 1). Leere Zeichenkette gilt als nicht angegeben. Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer (Artikelcode-Typ 4). Leere Zeichenkette gilt als nicht angegeben. Beispiel: |
LocID
|
varchar(3) string |
NULL |
Lager-ID. Wenn angegeben, werden Bestand, Mindestbestand, Sicherheitsbestand und Zielbestand aus den lagerspezifischen Artikeldaten gelesen. Kein Suchkriterium. Beispiel: |
ItemXML
|
varchar(max) xml |
NULL |
XML-Liste der zu suchenden Artikel. Jedes Beispiel:
|
InternalItemNumber
|
varchar(50) string |
NULL |
Interne Artikelnummer (Artikelcode-Typ 3). Leere Zeichenkette gilt als nicht angegeben. Beispiel: |
ConsiderFavouriteSupplier
|
bit boolean |
0 |
Bei 1 werden Lieferantenpreis, Lieferantennummer, Lieferanten-Artikelnummer, EAN und Mindestbestellmenge aus dem aktiven Vorzugslieferanten übernommen. Als nicht mehr verwendet kommentiert, wird vom Code aber weiterhin ausgewertet. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn keiner der Suchparameter angegeben ist
Fehlerzeile.
| Spalte | Typ | Beschreibung |
|---|---|---|
Error
|
varchar(5) string |
Konstante |
ErrorMsg
|
varchar(37) string |
Text der Fehlermeldung. |
Result-Set 2 · Wenn mindestens ein Suchparameter angegeben ist
Eine Zeile je gefundenem Artikel, sortiert nach ItemKey.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemKey
|
int |
Interner Artikelschlüssel. |
SupplPrice
Kann leer sein |
money decimal |
Einkaufspreis (Vorzugslieferant falls angefordert, sonst Artikelstamm). |
ItemName
Kann leer sein |
string |
Artikelbezeichnung. |
VPE
|
decimal |
Verpackungseinheit, 0 wenn nicht gesetzt. |
OrderUnit
|
decimal |
Bestelleinheit, 0 wenn nicht gesetzt. |
MinStockQty
Kann leer sein |
int |
Mindestbestand (lagerspezifisch bei angegebenem |
MinOrderQty
|
int |
Mindestbestellmenge, 0 wenn nicht gesetzt. |
SupplNr
Kann leer sein |
varchar(4) string |
Lieferantennummer. |
Category
Kann leer sein |
string |
Text der Konfigurationsart (Tontr-Art) des Artikels. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrSuppl
|
varchar(50) string |
Lieferanten-Artikelnummer, leer wenn nicht gesetzt. |
Quantity
Kann leer sein |
int |
Bestand (Lagerbestand bei angegebenem |
PriceVK
Kann leer sein |
decimal |
Verkaufspreis. |
VATLevel
Kann leer sein |
nvarchar(9) string |
MwSt-Stufe: |
Enabled
Kann leer sein |
boolean |
Gibt an, ob der Artikel aktiv ist. |
ItemTAGs
Kann leer sein |
nvarchar(1000) string |
Alle Tags des Artikels getrennt durch |
EANUPC
Kann leer sein |
varchar(13) string |
EAN/UPC (Vorzugslieferant, Hauptlieferanteneintrag oder Artikelstamm). |
ABC
|
string |
ABC-Klassifizierung aus System-Tag |
ExportEstimatedDelivery
Kann leer sein |
string |
Voraussichtliche Lieferzeit-Information für den Export. |
PicLinkLarge
Kann leer sein |
string |
Link zum großen Artikelbild. |
PicLinkSmall
Kann leer sein |
string |
Link zum kleinen Artikelbild. |
InternalItemNumber
Kann leer sein |
string |
Artikelcode vom Typ 3 (interne Artikelnummer). |
SafetyStock
|
int |
Lagerspezifischer Sicherheitsbestand, 0 wenn nicht vorhanden. |
TargetStock
|
int |
Lagerspezifischer Zielbestand, 0 wenn nicht vorhanden. |
ItemDescription
Kann leer sein |
string |
Artikelbeschreibung. |
Beispielantwort
<SqlRowSet1>
<row>
<ItemKey>4711</ItemKey>
<SupplPrice>12.5000</SupplPrice>
<ItemName>Trekking Backpack 40L</ItemName>
<VPE>1</VPE>
<OrderUnit>1</OrderUnit>
<MinStockQty>5</MinStockQty>
<MinOrderQty>10</MinOrderQty>
<SupplNr>L001</SupplNr>
<Category>Standard</Category>
<ItemNrInt>ART-10045</ItemNrInt>
<ItemNrSuppl>SUP-998877</ItemNrSuppl>
<Quantity>42</Quantity>
<PriceVK>49.9900</PriceVK>
<VATLevel>MwSt_High</VATLevel>
<Enabled>1</Enabled>
<ItemTAGs>A|Outdoor|Sale</ItemTAGs>
<EANUPC>4006381333931</EANUPC>
<ABC>A</ABC>
<ExportEstimatedDelivery>2-3 days</ExportEstimatedDelivery>
<PicLinkLarge>https://shop.example.com/img/4711_l.jpg</PicLinkLarge>
<PicLinkSmall>https://shop.example.com/img/4711_s.jpg</PicLinkSmall>
<InternalItemNumber>INT-00045</InternalItemNumber>
<SafetyStock>0</SafetyStock>
<TargetStock>0</TargetStock>
<ItemDescription>Lightweight trekking backpack with rain cover.</ItemDescription>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | Please specify at least one parameter | Keiner der Parameter `ItemKey`, `ItemNrInt`, `EANUPC`, `ItemNrSuppl`, `ItemXML` oder `InternalItemNumber` wurde angegeben (oder alle waren 0/leer). Mindestens ein Suchkriterium übergeben. |
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:pixiGetItemInfo2>
<!-- <ItemKey>4711</ItemKey> -->
<!-- <ItemNrInt>ART-10045</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-998877</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>4711</ITEMKEY><ITEMNRSUPPL>SUP-998877</ITEMNRSUPPL><ITEMNRINT>ART-10045</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-00045</INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT>ART-10046</ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM></ITEMS>]]></ItemXML> -->
<!-- <InternalItemNumber>INT-00045</InternalItemNumber> -->
<!-- <ConsiderFavouriteSupplier>0</ConsiderFavouriteSupplier> -->
</ns1:pixiGetItemInfo2>
</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:pixiGetItemInfo2>
<!-- <ItemKey>4711</ItemKey> -->
<!-- <ItemNrInt>ART-10045</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-998877</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>4711</ITEMKEY><ITEMNRSUPPL>SUP-998877</ITEMNRSUPPL><ITEMNRINT>ART-10045</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-00045</INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT>ART-10046</ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM></ITEMS>]]></ItemXML> -->
<!-- <InternalItemNumber>INT-00045</InternalItemNumber> -->
<!-- <ConsiderFavouriteSupplier>0</ConsiderFavouriteSupplier> -->
</ns1:pixiGetItemInfo2>
</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' => '4711',
// 'ItemNrInt' => 'ART-10045',
// 'EANUPC' => '4006381333931',
// 'ItemNrSuppl' => 'SUP-998877',
// 'LocID' => '001',
// 'ItemXML' => '<ITEMS><ITEM><ITEMKEY>4711</ITEMKEY><ITEMNRSUPPL>SUP-998877</ITEMNRSUPPL><ITEMNRINT>ART-10045</ITEMNRINT><EAN>4006381333931</EAN><INTERNALITEMNUMBER>INT-00045</INTERNALITEMNUMBER></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRSUPPL></ITEMNRSUPPL><ITEMNRINT>ART-10046</ITEMNRINT><EAN></EAN><INTERNALITEMNUMBER></INTERNALITEMNUMBER></ITEM></ITEMS>',
// 'InternalItemNumber' => 'INT-00045',
// 'ConsiderFavouriteSupplier' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemInfo2', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemInfo2