Cargo-Planner Docs
Integration
Wenn Sie bereits digitale Werkzeuge haben, um zu verwalten, was in Ihrem Lagerhaus gespeichert ist, oder wie Sie Kundenladelisten handhaben, kann Cargo-Planner darauf aufbauen mit ein wenig Integration.
Cargo-Bibliothek Synchronisierung
Der einfachste Weg, eine Integration mit Ihren aktuellen Werkzeugen zu starten, ist über die Cargo-Bibliothek. Alle Cargo-Planner-Lizenzen beinhalten die Cargo-Bibliothek, die im Wesentlichen ein minimales WMS oder Ressourcenplanungssystem ist.
Das Einrichten erleichtert das Erstellen neuer Ladelisten in unserer Web-App durch reibungslose Importe oder Autovervollständigung.
Diese Methode kann im Wesentlichen als CRON-Job oder tägliche Synchronisierung ausgeführt werden, und Cargo-Planner kümmert sich um alle UI-Aspekte der Erstellung einer Ladeliste.

Aber das manuelle Einrichten der Cargo-Bibliothek kann eine ziemliche Aufgabe sein. Lassen Sie uns also mit einem kleinen Stück Code synchronisieren, was auch immer Sie derzeit verwenden.
// Überprüfen Sie die Seite Erste Schritte, um herauszufinden, wie Sie Ihr Token erstellen
const API_TOKEN = 'Token b123...';
const cargoes: CargoPlannerItem[] = [];
// Nehmen wir an, wir haben eine Quelle von Artikeln/Ladungen, die so aussieht,
// wobei alles in Millimetern und Gramm definiert ist.
const sourceItems = [
{
id: 511732,
title: 'Basket Catcher',
description: '...',
length: 900,
width: 900,
height: 500,
weight: 20000,
inner_quantity: 1,
},
{
id: 512789,
title: 'Putters (10pcs)',
description: '...',
length: 210,
width: 210,
height: 150,
weight: 1700,
inner_quantity: 10,
},
// ... etc
];
// Unsere sourceItems unterscheiden sich ein wenig
// von der Darstellung in cargo-planner
// daher müssen wir einige Anpassungen der Daten vornehmen
for (let i = 0; i < sourceItems.length; i++) {
let s = sourceItems[i];
// wir möchten sowohl unsere ID als auch den Titel als Namen speichern
const title = `${s.id} - ${s.title}`;
let cargo: CargoPlannerItem = {
name: title,
length_dim: 'MM',
// Cargo-Planner akzeptiert keine Gramm, also konvertieren wir in Kilogramm
weight_dim: 'KG',
data: {
label: title,
l: s.length,
w: s.width,
h: s.height,
wt: s.weight / 1000, // die Gewichtskonvertierung
unit_qty: s.inner_quantity,
},
};
cargoes.push(cargo);
}
// Bevor wir alle Artikel erstellen, möchten wir zuerst
// alles entfernen, was in der Cargo-Bibliothek existiert,
// damit wir keine Duplikate haben.
// Verwenden wir dafür den cargo/truncate-Endpunkt
fetch('https://api.cargo-planner.com/api/2/cargo/truncate/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: API_TOKEN,
},
body: JSON.stringify({ confirm: true }),
});
// Und schließlich erstellen wir die Liste der Ladungen in großen Mengen
fetch('https://api.cargo-planner.com/api/2/cargo/bulk_create/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: API_TOKEN,
},
body: JSON.stringify(cargoes),
});
// vereinfachte Typdefinitionen dessen, was Cargo-Planner akzeptiert
interface CargoPlannerItem {
name: string;
data: ItemData;
length_dim: 'M' | 'DM' | 'CM' | 'MM' | 'FT' | 'IN';
weight_dim: 'KG' | 'MT' | 'LB';
}
interface ItemData {
label: string;
l: number;
w: number;
h: number;
wt: number;
not_stackable?: boolean | null;
not_rotatable?: boolean | null;
tiltable?: boolean | null;
bottom_only?: boolean | null;
color?: string | null;
qty?: number | null;
unit_qty?: number | null;
}
Jetzt müssen wir keine Excel-Importe/Exporte mehr durchlaufen, und die Planung der nächsten Sendung wird viel schneller.
Ladelisten direkt erstellen
Wenn Sie Ladelisten direkt aus Ihren anderen Werkzeugen erstellen möchten, unterscheidet sich das nicht wesentlich vom vorherigen Beispiel in Bezug auf API-Aufrufe. Diesmal überspringen wir die Cargo-Bibliothek vollständig und gehen direkt zu einer neuen Ladeliste.
Der Nachteil dieser Methode ist, dass Sie auswählen müssen, was verschickt werden soll und wie viele von jedem, bevor Sie die API aufrufen. Dies erfordert höchstwahrscheinlich ein wenig UI.
// wir verwenden die Konstanten sourceItems und API_TOKEN
// aus dem vorherigen Beispiel erneut
let cargoes: ItemData[] = [];
// Die Umwandlung von sourceItem in die Darstellung von Cargo-Planner
for (let i = 0; i < source.length; i++) {
let s = source[i];
// wir möchten sowohl unsere ID als auch den Titel als Namen speichern
const title = `${s.id} - ${s.title}`;
let cargo: ItemData = {
label: title,
l: s.length,
w: s.width,
h: s.height,
// die Gewichtskonvertierung von Gramm in Kilogramm
wt: s.weight / 1000,
unit_qty: s.inner_quantity,
// wir möchten 10 von jedem Artikel senden
qty: 10,
};
cargoes.push(cargo);
}
// Und schließlich erstellen wir eine Ladeliste
fetch('https://api.cargo-planner.com/api/2/loadlist/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: API_TOKEN,
},
body: JSON.stringify({
name: 'Sendung 123',
data: cargoes,
etd: '2022-12-01',
length_dim: 'MM',
weight_dim: 'KG',
}),
});
Die neue Ladeliste wird in der Web-App sichtbar sein, aber die Antwort enthält eine URL, die direkt zur neuen Ladeliste führt.
Es ist auch möglich, dies mit dem Erstellen und Berechnen Endpunkt noch einen Schritt weiter zu gehen, aber dies erfordert einige weitere Eingabedaten, wie z.B. welche Einstellungen und Ausrüstung verwendet werden sollen.