
Kargo ve Lojistik Entegrasyonu: E-Ticaret Teslimat Otomasyonu
WooCommerce ve OpenCart için Türkiye'de kargo firması entegrasyonu: MNG Kargo, Yurtiçi, Aras, PTT Kargo API entegrasyonu ve otomatik sipariş takibi.
Kargo ve Lojistik Entegrasyonu: E-Ticaret Teslimat Otomasyonu
Hızlı ve güvenilir kargo, e-ticaret başarısının temel taşlarından biridir. Bu rehberde Türkiye'deki kargo firmalarının API entegrasyonunu ve lojistik otomasyonunu ele alıyoruz.
Türkiye'deki Kargo Firmaları
Firma | API | WooCommerce | Fiyat (Desi başı)
---------------|-----|-------------|------------------
MNG Kargo | ✓ | Eklenti | Anlaşmalı
Yurtiçi Kargo | ✓ | Eklenti | Anlaşmalı
Aras Kargo | ✓ | Eklenti | Anlaşmalı
PTT Kargo | ✓ | Eklenti | Sabit tarife
Sürat Kargo | ✓ | Eklenti | Anlaşmalı
HepsiJet | ✓ | Eklenti | Hepsiburada bağlı
Trendyol Express| ✓ | Trendyol bağlı| Platform bağlı
MNG Kargo Entegrasyonu (WooCommerce)
<?php
// MNG Kargo API Entegrasyonu
class MNGKargoAPI {
private $username;
private $password;
private $customerCode;
private $apiUrl = 'https://api.mngkargo.com.tr/';
public function __construct($username, $password, $customerCode) {
$this->username = $username;
$this->password = $password;
$this->customerCode = $customerCode;
}
public function createShipment($orderData) {
$body = [
'CUSTOMER_CODE' => $this->customerCode,
'SHIPMENT_ORDER_TYPE_CODE' => '1',
'SENDER_NAME' => $orderData['sender']['name'],
'SENDER_ADDRESS' => $orderData['sender']['address'],
'SENDER_CITY' => $orderData['sender']['city'],
'RECEIVER_NAME' => $orderData['receiver']['name'],
'RECEIVER_ADDRESS' => $orderData['receiver']['address'],
'RECEIVER_CITY' => $orderData['receiver']['city'],
'RECEIVER_PHONE' => $orderData['receiver']['phone'],
'DESI' => $orderData['desi'],
'ORDER_NUMBER' => $orderData['order_number'],
'DESCRIPTION' => $orderData['description'],
];
$response = wp_remote_post(
$this->apiUrl . 'shipment/create',
[
'headers' => [
'Authorization' => 'Basic ' . base64_encode($this->username . ':' . $this->password),
'Content-Type' => 'application/json',
],
'body' => json_encode($body),
'timeout' => 30,
]
);
if (is_wp_error($response)) {
return false;
}
return json_decode(wp_remote_retrieve_body($response), true);
}
public function trackShipment($trackingNumber) {
$response = wp_remote_get(
$this->apiUrl . 'shipment/track/' . $trackingNumber,
[
'headers' => [
'Authorization' => 'Basic ' . base64_encode($this->username . ':' . $this->password),
],
]
);
return json_decode(wp_remote_retrieve_body($response), true);
}
}
// WooCommerce sipariş tamamlandığında otomatik kargo oluştur
add_action('woocommerce_order_status_processing', 'create_cargo_shipment');
function create_cargo_shipment($order_id) {
$order = wc_get_order($order_id);
$mng = new MNGKargoAPI(
get_option('mng_username'),
get_option('mng_password'),
get_option('mng_customer_code')
);
$result = $mng->createShipment([
'sender' => [
'name' => 'MagazaNız',
'address' => 'Depo Adres',
'city' => 'İstanbul',
],
'receiver' => [
'name' => $order->get_shipping_first_name() . ' ' . $order->get_shipping_last_name(),
'address' => $order->get_shipping_address_1(),
'city' => $order->get_shipping_city(),
'phone' => $order->get_billing_phone(),
],
'desi' => calculate_order_desi($order),
'order_number' => $order->get_order_number(),
'description' => 'Sipariş #' . $order->get_order_number(),
]);
if ($result && isset($result['TRACKING_NUMBER'])) {
$order->update_meta_data('_tracking_number', $result['TRACKING_NUMBER']);
$order->update_meta_data('_cargo_company', 'MNG');
$order->save();
$order->add_order_note('MNG Kargo takip: ' . $result['TRACKING_NUMBER']);
}
}
Desi Hesaplama
function calculate_order_desi($order) {
$total_desi = 0;
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$qty = $item->get_quantity();
$weight = $product->get_weight(); // kg
$length = $product->get_length(); // cm
$width = $product->get_width(); // cm
$height = $product->get_height(); // cm
// Desi = (En x Boy x Yükseklik) / 3000
$volumetric_desi = ($length * $width * $height) / 3000;
// Ağırlık kg cinsinden
$weight_desi = $weight;
// Büyük olan desi hesaba katılır
$desi = max($volumetric_desi, $weight_desi);
$total_desi += $desi * $qty;
}
return ceil($total_desi); // Yukarı yuvarla
}
Webhook ile Kargo Durum Güncelleme
// Kargo firması webhook endpoint'i
add_action('rest_api_init', function() {
register_rest_route('magazaniz/v1', '/cargo-webhook', [
'methods' => 'POST',
'callback' => 'handle_cargo_webhook',
'permission_callback' => '__return_true',
]);
});
function handle_cargo_webhook($request) {
$data = $request->get_json_params();
$tracking_number = $data['tracking_number'];
$status = $data['status'];
// Sipariş bul
$orders = wc_get_orders([
'meta_key' => '_tracking_number',
'meta_value' => $tracking_number,
'limit' => 1,
]);
if (!empty($orders)) {
$order = $orders[0];
// Teslim edildiyse
if ($status === 'DELIVERED') {
$order->update_status('completed', 'Kargo teslim edildi.');
}
// Müşteriye bildirim
WC()->mailer()->emails['WC_Email_Customer_Note']->trigger(
$order->get_id(),
'Kargo durumunuz: ' . $status
);
}
return rest_ensure_response(['success' => true]);
}
Çoklu Kargo Fiyat Karşılaştırması
// En ucuz kargo seçeneklerini göster
function get_shipping_rates($weight, $city) {
$rates = [];
// MNG Kargo tarifesi
$rates['mng'] = [
'name' => 'MNG Kargo (1-3 İş Günü)',
'price' => calculate_mng_rate($weight, $city),
];
// Yurtiçi Kargo tarifesi
$rates['yurtici'] = [
'name' => 'Yurtiçi Kargo (1-3 İş Günü)',
'price' => calculate_yurtici_rate($weight, $city),
];
// Fiyata göre sırala
usort($rates, fn($a, $b) => $a['price'] <=> $b['price']);
return $rates;
}
Sonuç
Kargo entegrasyonu, e-ticaret operasyonlarını otomatize eder ve müşteri memnuniyetini artırır. Otomatik kargo oluşturma, webhook ile durum takibi ve çoklu kargo karşılaştırması ile profesyonel lojistik altyapısı kurabilirsiniz. Büyükweb e-ticaret hosting çözümleriyle bu entegrasyonlar sorunsuz çalışır.
İlgili Büyükweb Hizmetleri:
- E-ticaret VDS paketlerimizi inceleyin
- Yüksek trafik için dedicated sunucu
- Tüm hosting ve sunucu paketlerimiz
E-Ticaret Başlangıç Kontrol Listesi
Yasal
- Şirket/şahıs kurulumu
- Vergi levhası
- Mesafeli satış sözleşmesi
- KVKK aydınlatma metni
- Çerez politikası
- İade koşulları
Teknik
- Hosting/VDS seçimi
- SSL sertifikası
- E-ticaret platformu
- Sanal pos (3D Secure)
- Kargo entegrasyonu
- E-fatura entegrasyonu
- Google Analytics + Search Console
Pazarlama
- Google Business Profile
- Sosyal medya hesapları
- Google Shopping
- Facebook/Instagram Shop
- E-posta pazarlama
E-Ticaret VDS vs Ev İnterneti
| Özellik | Ev İnterneti | E-Ticaret VDS |
|---|---|---|
| IP | Dinamik | Sabit |
| Temizlik | Bilinmiyor | Temiz |
| Kesinti | Elektrik/internet | %99.8 uptime |
| Hız | Değişken | 1 Gbps |
| Güvenlik | Düşük | DDoS korumalı |
Marketplace işlemleri için sabit ve temiz IP kritik. Ban riski en aza iner.
Teknik Destek ve Yardım Kanalları
Büyükweb olarak müşterilerimize birden fazla destek kanalı sunuyoruz:
Satış Öncesi Destek
0850 302 60 70 satış öncesi destek numaramızdır; paket seçimi ve sipariş öncesi sorularınız için bu numarayı arayabilirsiniz. Teknik konular müşteri panelindeki ticket sistemi üzerinden yürütülür.
E-posta Desteği
destek@buyukweb.com adresine detaylı sorun tanımlamanizi gönderin. Ekran görüntüleri ve hata mesajları ile birlikte gönderdiğiniz talepler daha hızlı çözümlenir.
Müşteri Paneli
my.buyukweb.com üzerinden destek talepleri oluşturun, faturalarınızı yönetin ve hizmetlerinizi kontrol edin. Ticket sistemi ile tüm iletişiminiz kayıt altındadır.
Bilgi Bankası
Blog yazılarımız ve rehberlerimiz ile sık karşılaşılan sorunların çözümlerini kendiniz bulabilirsiniz. WordPress kurulumu, DNS ayarları, e-posta yapılandırması gibi konularda adım adım rehberler mevcuttur.
Büyükweb teknik ekibi, hosting alanında 17 yıllık tecrübesi ile her türlü sorununuza profesyonel çözüm sunar.
Türkiye Kargo Entegrasyon Pratiği
E-ticaret sitenizin kargo entegrasyonunda Türkiye operatörlerine özel notlar:
Yurt İçi Kargo API'leri
Türkiye'de yaygın kullanılan kargo firmalarının (Yurtiçi, MNG, Aras, Sürat, PTT vb.) çoğunda SOAP veya REST tabanlı entegrasyon API'si bulunur. Tipik akış:
1. Sipariş oluştur → kargo firmasından takip no al
2. Etiket bas (PDF veya ZPL formatı)
3. Webhook ile durum güncellemesi al
4. Müşteriye SMS/e-posta bildir
API entegrasyonu yapmadan önce kargo firmasıyla kurumsal sözleşme ve API erişim talebinde bulunmanız gerekir. Sözleşmesiz hesaplarda günlük limit düşüktür.
Webhook Almak için Sabit IP
Kargo firmaları webhook'ları yalnızca belirli IP'lerden gönderir; sizin tarafınızda da sabit IP olması güvenlik açısından önemlidir. Büyükweb VDS sunucu paketleri tüm paketlerde sabit Türkiye IP sunar.
Yüksek Sipariş Hacminde Sıra (Queue)
Saniyede 10+ sipariş geliyorsa kargo API'sini doğrudan çağırmak yerine queue kullanın:
// BullMQ + Redis örneği
const Queue = require('bullmq').Queue;
const cargoQueue = new Queue('cargo-creation');
cargoQueue.add('create-shipment', { orderId: 12345 });
Bu yapı:
- Kargo API rate limit'ini aşmaz
- Hata durumunda otomatik retry yapar
- Müşteri sipariş tamamlama deneyimini hızlandırır (sipariş yazıldıktan sonra arka planda etiket basılır)
Performans ve İzleme
Kargo entegrasyonunda kritik metrikler:
| Metrik | Hedef |
|---|---|
| Etiket oluşturma süresi | < 2 sn |
| Webhook gecikme | < 30 sn |
| Hata oranı | < %0.5 |
| Failover (ikinci kargo firmasına geçiş) | < 5 dk |
Bu metrikleri Zabbix veya Prometheus üzerinde dashboard olarak takip edin.
Sıkça Sorulan Sorular
Birden fazla kargo firması ile çalışmak gerekli mi?
Evet, iki firma minimum. Bir firmanın geçici problem yaşadığında alternatife geçmek müşteri deneyimini korur. WMS yazılımları genelde multi-carrier desteği sunar.
Kargo entegrasyon hosting'de mi çalışmalı?
Hosting paylaşımlı paketinde cron + webhook çalışabilir, ancak yüksek hacim için VDS önerilir. Büyükweb E-Ticaret VDS paketinde Redis + queue altyapısı için optimize kaynak ayrılır.
KVKK açısından kargo verisi nasıl tutulmalı?
Müşterinin adı, adresi, telefonu, sipariş içeriği kişisel veri kapsamındadır. KVKK 5. ve 6. maddeler gereği yurt içinde tutulmalı, 6 ay-3 yıl arasında saklama süresi politikası tanımlanmalıdır. Büyükweb Türkiye lokasyonu bu uyumu kolaylaştırır.
İlgili Büyükweb Hizmetleri
E-ticaret sitenizin yükü için ölçeklenebilir Türkiye lokasyonlu paketler:
- E-Ticaret VDS
- WooCommerce için WordPress Hosting
- VDS Sunucu
- cPanel Web Hosting
- Yüksek Hacim için Dedicated
Sorularınız için 0850 302 60 70 numaralı satış öncesi destek numaramıza ulaşabilir veya iletişim sayfamıza yazabilirsiniz.
E-Ticaret İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:



