Hallo zusammen,
weiß evtl. jemand wie ich alle Items für eine Pickliste per API bekomme?!
Über die Route: „/rest/fulfillment/picklist/picking_order_item“ mit dem Parameter „pickingOrderId“ hängt sich meine APP auf, da anscheinend zu viele Daten geliefert werden bzw. Parameter wird nicht angewendet.
Ich will einfach die offenen Picklisten mit Artikel+Menge aus Plenty ziehen. Also das, was man über Fulfillment->Pickliste als CSV herunterladen kann.
Oder geht es bei Plenty gar nicht?
<?php
// ---------- Konfiguration ----------
$itemsPerPage = 10; // pro Seite
$maxPages = 2; // Sicherheitskappe
$maxCollect = 1000; // max. Anzahl, die wir ins RAM sammeln
$maxEcho = 500; // max. Anzahl, die wir im JSON ausgeben
// -----------------------------------
echo "<h2>/rest/fulfillment/picklist/picking_order_item – Dump</h2>";
// Optionaler Filter via GET: ?pickingOrderId=38332
$pickingOrderId = isset($_GET['pickingOrderId']) ? trim($_GET['pickingOrderId']) : 'eq:38332';
$page = 1;
$pagesFetched = 0;
$totalsCount = null;
$collected = [];
while (true) {
$params = [
'page' => $page,
'itemsPerPage' => $itemsPerPage,
// Optionaler Filter (hier aktiv gesetzt; nimm ihn raus, wenn du wirklich alle willst):
'pickingOrderId' => $pickingOrderId,
// 'sortBy' => 'id',
// 'sortOrder' => 'asc',
];
$res = $api->get('/rest/fulfillment/picklist/picking_order_item', $params);
$pagesFetched++;
if (isset($res['totalsCount'])) {
$totalsCount = (int)$res['totalsCount'];
}
$entries = normalize_entries($res);
if (!$entries) break;
// Sammeln (ohne processState-Filter)
foreach ($entries as $row) {
$collected[] = $row;
if (count($collected) >= $maxCollect) break 2;
}
// Paginierung beenden?
$isLast = isset($res['isLastPage']) ? (bool)$res['isLastPage'] : false;
$lastPageNumber = isset($res['lastPageNumber']) ? (int)$res['lastPageNumber'] : null;
if ($isLast) break;
if ($lastPageNumber !== null && $page >= $lastPageNumber) break;
if ($pagesFetched >= $maxPages) break;
$page++;
}
?>



