pixiGetItemLogisticsEAN
Returns the EANs of enabled non-bundle items page by page, plus the EANs of single-item bundles that act as packaging units (VPE).
Provides item EAN data for a fulfillment provider, including EANs of packaging units that are modelled as bundles.
Paging
- Selects the first
@RowCountitems withItemKeygreater than@StartKey, ordered byItemKeyascending. - Only items with
Enabled = 1andIsBundle = 0are included in the page.
Result rows
- For every item in the page there is one row with the item's own
EANUPCandVPE = 1. - In addition, the call looks for packaging-unit bundles: bundles that have exactly one bundle line, where the line quantity equals the component item's
OrderUnit(cast toint). For each such bundle whose component item is in the current page, a row is returned with:ItemKey= the component item,EANUPC= the EAN of the bundle,VPE= theOrderUnitof the component item.
The two parts are combined with UNION (exact duplicates removed) and sorted by ItemKey.
Paging through all items
Start with StartKey = 0 and pass the highest ItemKey of the last response as the next StartKey. Stop when a call returns no rows.
Notes
- The same
ItemKeycan appear in several rows (own EAN plus one row per packaging-unit bundle). The number of rows can therefore exceed@RowCount;@RowCountlimits the number of distinct items, not rows. - The bundle itself is not filtered by
Enabled; disabled bundles that meet the packaging-unit criteria are also returned. - Bundles with more than one bundle line, or whose quantity does not match the component's
OrderUnit, are ignored. - Reads use
NOLOCKfor most joins (dirty reads possible); the join for the item's own EAN does not use a locking hint. EANUPCmay be empty orNULLif no EAN is maintained.- The exact data type of
VPEdepends on the column type ofItems.OrderUnit, which is not visible in the code.
Tables used
| Parameter | Type | Default | Description |
|---|---|---|---|
StartKey
|
int | 0 |
Only items with an Example: |
RowCount
|
int | 1000 |
Maximum number of items (enabled, non-bundle) per page. The number of returned rows can be higher because of additional packaging-unit rows. Example: |
Result set 1 · Always (empty if no items exist after @StartKey)
EANs per item: the item's own EAN with VPE 1 and EANs of packaging-unit bundles with their unit size, sorted by ItemKey.
| Column | Type | Description |
|---|---|---|
ItemKey
|
int |
Key of the (single) item. For packaging-unit rows this is the component item contained in the bundle. |
EANUPC
Nullable |
string |
EAN/UPC: the item's own EAN, or for packaging-unit rows the EAN of the bundle. |
VPE
Nullable |
decimal |
Packaging unit: |
Response example
<SqlRowSet1>
<row>
<ItemKey>1001</ItemKey>
<EANUPC>4006381333931</EANUPC>
<VPE>1</VPE>
</row>
<row>
<ItemKey>1001</ItemKey>
<EANUPC>4006381333948</EANUPC>
<VPE>12</VPE>
</row>
</SqlRowSet1>
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:pixiGetItemLogisticsEAN>
<!-- <StartKey>0</StartKey> -->
<!-- <RowCount>1000</RowCount> -->
</ns1:pixiGetItemLogisticsEAN>
</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:pixiGetItemLogisticsEAN>
<!-- <StartKey>0</StartKey> -->
<!-- <RowCount>1000</RowCount> -->
</ns1:pixiGetItemLogisticsEAN>
</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 = [
// 'StartKey' => '0',
// 'RowCount' => '1000',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemLogisticsEAN', $soapArguments);
- SQL object:
- dbo.pipiGetItemLogisticsEAN