Cargo-Planner Docs
Entegrasyon
Eğer zaten depolarınızda ne depolandığını yönetmek veya müşteri yük listelerini nasıl ele aldığınızı yönetmek için dijital araçlarınız varsa, Cargo-Planner biraz entegrasyon ile bunun üzerine inşa edebilir.
Cargo Kütüphanesi Senkronizasyonu
Mevcut araçlarınızla bir entegrasyon başlatmanın en basit yolu Cargo Kütüphanesi aracılığıyladır. Tüm Cargo-Planner lisansları, temel olarak minimal bir WMS veya kaynak planlama sistemi olan Cargo Kütüphanesini içerir.
Bunun kurulmuş olması, web uygulamamızda yeni yük listeleri oluşturmayı, sorunsuz ithalatlar veya otomatik tamamlama yoluyla kolaylaştırır.
Bu yöntem, esasen bir CRON işi veya günlük senkronizasyon olarak çalıştırılabilir ve Cargo-Planner, bir yük listesi oluşturmanın tüm kullanıcı arayüzü yönleriyle ilgilenecektir.

Ancak Cargo Kütüphanesini manuel olarak kurmak oldukça zahmetli olabilir. Bu yüzden, şu anda kullandığınız araçla senkronize tutalım, biraz kod ile.
// Token oluşturmayı öğrenmek için Başlarken sayfasına bakın
const API_TOKEN = 'Token b123...';
const cargoes: CargoPlannerItem[] = [];
// Elimizde böyle görünen bir ürün/kargo kaynağımız olduğunu varsayalım,
// burada her şey milimetre ve gram olarak tanımlanmıştır.
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,
},
// ... vb.
];
// sourceItems, cargo-planner'da temsil edildiğinden biraz farklı
// bu yüzden verilerin uyarlanması gerekiyor
for (let i = 0; i < sourceItems.length; i++) {
let s = sourceItems[i];
// ID ve başlığımızın her ikisini de isim olarak saklamak istiyoruz
const title = `${s.id} - ${s.title}`;
let cargo: CargoPlannerItem = {
name: title,
length_dim: 'MM',
// Cargo-Planner gram kabul etmez, bu yüzden kilogram'a çeviriyoruz
weight_dim: 'KG',
data: {
label: title,
l: s.length,
w: s.width,
h: s.height,
wt: s.weight / 1000, // ağırlık dönüşümü
unit_qty: s.inner_quantity,
},
};
cargoes.push(cargo);
}
// Tüm ürünleri oluşturmadan önce
// cargo-library'de var olan her şeyi kaldırmak istiyoruz,
// böylece hiçbir kopya olmayacak.
// Bunun için cargo/truncate endpoint'ini kullanalım
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 }),
});
// Ve son olarak kargo listesini toplu olarak oluşturuyoruz
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),
});
// Cargo-Planner'ın kabul ettiği basitleştirilmiş tip tanımları
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;
}
Artık Excel ithalat/ihracat işlemlerinden tekrar geçmek zorunda kalmayacağız ve bir sonraki sevkiyatı planlamak çok daha hızlı olacak.
Yük listelerini doğrudan oluşturma
Diğer araçlarınızdan doğrudan yük listeleri oluşturmak istiyorsanız, bu API çağrıları açısından önceki örnekten çok farklı değildir. Bu sefer Cargo Kütüphanesini tamamen atlayacağız ve doğrudan yeni bir yük listesi için gideceğiz.
Bu yöntemin dezavantajı, API’yi çağırmadan önce neyi göndereceğinizi ve her birinden kaç tane göndereceğinizi seçmeniz gerektiğidir. Bu muhtemelen biraz kullanıcı arayüzü gerektirecektir.
// önceki örnekten sourceItems ve API_TOKEN sabitlerini yeniden kullanıyoruz
let cargoes: ItemData[] = [];
// sourceItem'dan Cargo-Planner temsilcisine dönüşüm
for (let i = 0; i < source.length; i++) {
let s = source[i];
// ID ve başlığımızın her ikisini de isim olarak saklamak istiyoruz
const title = `${s.id} - ${s.title}`;
let cargo: ItemData = {
label: title,
l: s.length,
w: s.width,
h: s.height,
// ağırlık dönüşümü gramdan kilograma
wt: s.weight / 1000,
unit_qty: s.inner_quantity,
// her bir üründen 10 tane göndermek istiyoruz
qty: 10,
};
cargoes.push(cargo);
}
// Ve son olarak bir yük listesi oluşturuyoruz
fetch('https://api.cargo-planner.com/api/2/loadlist/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: API_TOKEN,
},
body: JSON.stringify({
name: 'Sevkiyat 123',
data: cargoes,
etd: '2022-12-01',
length_dim: 'MM',
weight_dim: 'KG',
}),
});
Yeni yük listesi web uygulamasında görülebilir, ancak yanıt doğrudan yeni yük listesine bağlantı veren bir URL içerecektir.
Bunu bir adım daha ileri götürmek de mümkündür Oluştur ve hesapla endpoint’i ile, ancak bu, hangi ayarların ve ekipmanın kullanılacağı gibi biraz daha fazla giriş verisi gerektirecektir.