Cargo-Planner Docs
Integration
Wenn Sie bereits digitale Werkzeuge haben, um zu verwalten, was in Ihrem Lager gespeichert ist, oder wie Sie Kundenladelisten handhaben, kann Cargo-Planner darauf aufbauen mit ein wenig Integration.
Cargo-Bibliothekssynchronisation
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.
Wenn sie eingerichtet ist, wird es einfach, neue Ladelisten in unserer Web-App zu erstellen, durch reibungslose Importe oder Autovervollständigung.
Diese Methode kann im Wesentlichen als CRON-Job oder tägliche Synchronisation ausgeführt werden, und Cargo-Planner kümmert sich um alle UI-Aspekte der Erstellung einer Ladeliste.

Aber die manuelle Einrichtung der Cargo-Bibliothek kann eine ziemliche Aufgabe sein. Also lassen Sie uns sie mit dem Werkzeug, das Sie derzeit verwenden, synchronisieren, mit ein wenig Code.
// Ü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 sind ein wenig anders
// als sie in cargo-planner dargestellt werden,
// also 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 zu 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 den cargo/truncate-Endpunkt dafür
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 nicht mehr durch Excel-Importe/-Exporte gehen, und die Planung der nächsten Sendung wird viel schneller sein.
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. Dieses Mal ü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 wird höchstwahrscheinlich ein wenig UI erfordern.
// wir verwenden die Konstanten sourceItems und API_TOKEN
// aus dem vorherigen Beispiel wieder
let cargoes: ItemData[] = [];
// Die Umwandlung von sourceItem zur Darstellung in 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 zu 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: 'Shipment 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 wird eine URL enthalten, die direkt zur neuen Ladeliste führt.
Es ist auch möglich, dies einen Schritt weiter zu gehen mit dem Erstellen und Berechnen Endpunkt, aber dies erfordert einige weitere Eingabedaten, wie z.B. welche Einstellungen und Ausrüstung verwendet werden sollen.