cPanel yıllıkta ücretsiz taşıma + SSLHemen İncele
Buyukweb
E-Ticaret Depo ve Stok Yönetimi: WMS Entegrasyonu

E-Ticaret Depo ve Stok Yönetimi: WMS Entegrasyonu

E-ticaret için depo yönetim sistemi (WMS), stok takibi, WooCommerce entegrasyonu, barkod sistemi ve çoklu depo yönetimi.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü11 dakika okuma

E-Ticaret Depo ve Stok Yönetimi: WMS Entegrasyonu

Büyüyen e-ticaret işletmeleri için profesyonel depo yönetimi kaçınılmazdır. Bu rehberde WMS (Warehouse Management System) kurulumu ve e-ticaret entegrasyonunu ele alıyoruz.

Depo Yönetimi Neden Önemli?

Stok yönetimi sorunları:
✗ Overselling (stokta olmayan ürün satmak)
✗ Understocking (çok az stok, satış kaybı)
✗ Yanlış konum (yavaş sipariş hazırlama)
✗ Süresi geçmiş stok
✗ Çoklu depo karmaşası

WMS avantajları:
✓ Gerçek zamanlı stok takibi
✓ Hızlı sipariş hazırlama (pick-pack-ship)
✓ FIFO/LIFO stok yönetimi
✓ Barkod/QR kod entegrasyonu
✓ Çoklu depo yönetimi

Manuel Stok Takibi vs WMS: Ne Zaman Geçiş Yapmalı?

Küçük ölçekli mağazalar genellikle Excel tablosuyla ya da WooCommerce'in yerleşik stok alanlarıyla başlar. İşletme büyüdükçe bu yöntemin sınırları ortaya çıkar. Aşağıdaki tablo hangi noktada tam bir WMS'e geçmenin mantıklı olduğunu gösterir:

Kriter Excel / Manuel Takip Temel E-Ticaret Stok Alanı Tam WMS
Ürün (SKU) sayısı < 50 50 - 500 500+
Günlük sipariş sayısı < 5 5 - 50 50+
Depo sayısı 1 1 1 veya daha fazla
Hata oranı (yanlış ürün gönderimi) Yüksek (manuel giriş) Orta Düşük (barkod doğrulama)
Ortalama sipariş hazırlama süresi 5-15 dk/sipariş 3-8 dk/sipariş 1-3 dk/sipariş
Gerçek zamanlı stok senkronizasyonu Yok Kısmi Var

Küçük mağazalar için tam bir WMS yatırımı gereksiz karmaşıklık yaratabilir; aşağıdaki WooCommerce kod örneklerinde gösterilen yerleşik stok alanları çoğu zaman yeterlidir. Günlük sipariş sayısı 50'yi aştığında veya birden fazla depo/şube devreye girdiğinde barkod ve çoklu depo mantığına geçmek verimliliği belirgin şekilde artırır.

WooCommerce Stok Ayarları

// WooCommerce → Ayarlar → Ürünler → Envanter

// Stok takibi aç
define('WC_STOCK_MANAGEMENT', true);

// Stok azaldığında bildirim
// WooCommerce → Ayarlar → E-postalar → Düşük Stok Bildirimi
// Eşik: 5 ürün altına düşünce bildir

// Ürün stok ayarı (programatik)
$product = wc_get_product(123);
$product->set_manage_stock(true);
$product->set_stock_quantity(50);
$product->set_backorders('no'); // Stoksuzda sipariş kabul etme
$product->set_low_stock_amount(5);
$product->save();

// Stok azaltma (sipariş tamamlanınca)
add_action('woocommerce_order_status_processing', 'reduce_stock_on_order');

function reduce_stock_on_order($order_id) {
    $order = wc_get_order($order_id);

    foreach ($order->get_items() as $item) {
        $product = $item->get_product();
        if ($product && $product->managing_stock()) {
            wc_update_product_stock($product, $item->get_quantity(), 'decrease');
        }
    }
}

Barkod Sistemi

// WooCommerce ürün barkodu (EAN-13)
// Ürünlere custom field olarak barkod ekle

add_action('woocommerce_product_options_sku', 'add_barcode_field');
function add_barcode_field() {
    woocommerce_wp_text_input([
        'id'          => '_barcode',
        'label'       => 'Barkod (EAN/ISBN)',
        'placeholder' => '1234567890123',
        'description' => 'EAN-13 veya ISBN barkod numarası',
    ]);
}

add_action('woocommerce_process_product_meta', 'save_barcode_field');
function save_barcode_field($post_id) {
    if (isset($_POST['_barcode'])) {
        update_post_meta($post_id, '_barcode', sanitize_text_field($_POST['_barcode']));
    }
}

// Barkodla ürün bul
function find_product_by_barcode($barcode) {
    global $wpdb;
    $product_id = $wpdb->get_var($wpdb->prepare(
        "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_barcode' AND meta_value = %s",
        $barcode
    ));
    return $product_id ? wc_get_product($product_id) : null;
}

// Barkod tarayıcı endpoint'i (WMS entegrasyonu için)
add_action('rest_api_init', function() {
    register_rest_route('wms/v1', '/product-by-barcode/(?P<barcode>[\w-]+)', [
        'methods'  => 'GET',
        'callback' => function($request) {
            $product = find_product_by_barcode($request['barcode']);
            if (!$product) {
                return new WP_Error('not_found', 'Ürün bulunamadı', ['status' => 404]);
            }
            return rest_ensure_response([
                'id'    => $product->get_id(),
                'name'  => $product->get_name(),
                'sku'   => $product->get_sku(),
                'stock' => $product->get_stock_quantity(),
                'price' => $product->get_price(),
            ]);
        },
        'permission_callback' => function() {
            return current_user_can('manage_woocommerce');
        },
    ]);
});

Çoklu Depo Yönetimi

// Çoklu depo stok takibi
// Her ürün için depo bazlı stok tutma

// Depo ekleme
function add_warehouse_stock($product_id, $warehouse_id, $quantity) {
    $stock_key = '_warehouse_stock_' . $warehouse_id;
    update_post_meta($product_id, $stock_key, $quantity);

    // Toplam stoku güncelle
    $total = 0;
    $warehouses = get_option('warehouses', ['istanbul', 'ankara', 'izmir']);
    foreach ($warehouses as $wh) {
        $total += (int) get_post_meta($product_id, '_warehouse_stock_' . $wh, true);
    }

    $product = wc_get_product($product_id);
    $product->set_stock_quantity($total);
    $product->save();
}

// En yakın depodan gönder (müşteri şehrine göre)
function select_warehouse_for_order($order_id) {
    $order = wc_get_order($order_id);
    $city = $order->get_shipping_city();

    // Şehre göre en yakın depo
    $city_warehouse_map = [
        'İstanbul' => 'istanbul',
        'Ankara'   => 'ankara',
        'İzmir'    => 'izmir',
    ];

    return $city_warehouse_map[$city] ?? 'istanbul';
}

Örnek Senaryo: Bir Siparişin Depo İçindeki Yolculuğu

Süreci somutlaştırmak için üç farklı üründen oluşan tek bir siparişin depoya düşmesinden kargoya teslimine kadar geçen adımları izleyelim:

  1. Sipariş alındı — WooCommerce'de sipariş durumu "işleniyor"a geçer, yukarıdaki reduce_stock_on_order fonksiyonu tetiklenir ve sipariş depo ekranına düşer.
  2. Ürün toplama (picking) — Depo görevlisi sipariş listesindeki her ürünü rafından alır.
  3. Barkod doğrulama — Her ürün, yukarıdaki /wms/v1/product-by-barcode/ REST API endpoint'i üzerinden taranarak doğru ürün ve miktarın toplandığı teyit edilir; yanlış ürün taramasında sistem uyarı verir.
  4. Paketleme — Ürünler paketlenir, paket ağırlığı ölçülür ve kargo etiketi için hazırlanır.
  5. Kargo etiketi ve stok güncelleme — Kargo etiketi basılır, sipariş durumu "kargoya verildi" olarak güncellenir ve stok miktarı kalıcı olarak düşer.
Adım İşlem Ortalama Süre Sorumlu
1 Sipariş bildirimi Anlık Sistem
2 Ürün toplama (picking) 2-4 dk Depo görevlisi
3 Barkod doğrulama 10-20 sn/ürün Depo görevlisi
4 Paketleme 1-2 dk Depo görevlisi
5 Kargo etiketi ve stok güncelleme Anlık Sistem

Üç kalemlik bir siparişin toplam işlem süresi, iyi kurulmuş bir WMS'te 5-8 dakikayı geçmemelidir. Bu sürenin sürekli uzaması genellikle barkod tarama adımının atlandığı veya depo yerleşiminin (raf düzeni) verimsiz olduğu anlamına gelir; her iki durumda da sipariş biriktirme (backlog) riski artar.

Stok Senkronizasyonu Raporu

# Stok raporlama - WP-CLI
wp wc tool run regenerate_product_lookup_tables

# Kritik stok raporu
wp eval '
$products = wc_get_products(["status" => "publish", "limit" => -1, "stock_status" => "instock"]);
foreach ($products as $p) {
  if ($p->get_stock_quantity() < 5) {
    echo $p->get_id() . " | " . $p->get_name() . " | " . $p->get_stock_quantity() . "
";
  }
}
'

# MySQL ile stok raporu
mysql -u root -p woocommerce_db << 'EOF'
SELECT p.ID, p.post_title, pm.meta_value as stock
FROM wp_posts p
JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE pm.meta_key = '_stock'
  AND pm.meta_value + 0 < 5
  AND p.post_status = 'publish'
ORDER BY pm.meta_value + 0 ASC;
EOF

Sonuç

Profesyonel stok yönetimi, e-ticaret operasyonlarının verimliliğini ve müşteri memnuniyetini artırır. WooCommerce entegrasyon, barkod sistemi ve çoklu depo yönetimi ile büyüyen mağazanızı ölçekleyebilirsiniz. Büyükweb VDS hizmetleriyle WMS uygulamanızı güçlü bir altyapıda çalıştırabilirsiniz.


İlgili Büyükweb Hizmetleri:


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.

Büyükweb VDS ile WMS Hosting

Warehouse Management System (WMS) yazılımları (Logo Jaguar, Mikro WMS, Netsis, Workcube vb.) genellikle Windows tabanlı çalışır ve sürekli online olması gerekir. Büyükweb Windows VDS paketleri bu senaryolar için optimize edilmiştir:

Senaryo Önerilen Paket RAM Disk
Tek depo, 1-3 kullanıcı E5-V2 Windows VDS 8 GB 100 GB SSD
Çoklu depo, 5-15 kullanıcı E5-V4 Windows VDS 16 GB 200 GB NVMe
Kurumsal WMS + ERP entegrasyonu E-Ticaret VDS 32 GB 500 GB NVMe

Performans Kriterleri

WMS'te kritik metrikler:

  • Stok kartı arama: < 1 sn
  • Barkod okuma → veri tabanına yazma: < 500 ms
  • Çoklu depo transfer raporu: < 5 sn
  • Toplu ürün giriş (1000+ kalem): < 30 sn

Bu metrikleri sağlamak için NVMe SSD ve düşük gecikme zorunlu. Büyükweb Türkiye lokasyonu (İstanbul) yerel kullanıcılar için 1-5 ms ek gecikme sağlar.

E-Ticaret + WMS Senkronizasyonu

E-ticaret platformunuz ile WMS arasında gerçek zamanlı senkronizasyon kritiktir; aksi halde sitenizde stoğu olmayan ürün satılır:

E-ticaret platformu ←→ Senkronizasyon Servisi ←→ WMS
                          (cron + webhook)

Senkronizasyon servisi için Büyükweb VDS üzerinde Node.js veya PHP cron job'u kurabilirsiniz. Önerilen frekans:

  • Stok güncelleme: her 5 dakika
  • Sipariş gönderim: anlık (webhook ile)
  • Ürün katalog senkronizasyonu: günde 1 kez (gece)

Örnek Senkronizasyon Script'i (Node.js)

Aşağıdaki basit script, WMS'ten gelen stok raporunu periyodik olarak WooCommerce'e yazar:

// stok-sync.js — WMS ile WooCommerce arasında periyodik stok senkronizasyonu
const axios = require('axios');

async function syncStock() {
  try {
    const wmsStock = await axios.get('https://wms.internal/api/stock-report');

    for (const item of wmsStock.data) {
      await axios.put(
        `https://magaza.example.com/wp-json/wc/v3/products/${item.productId}`,
        { stock_quantity: item.quantity },
        { auth: { username: process.env.WC_KEY, password: process.env.WC_SECRET } }
      );
    }

    console.log(`Senkronizasyon tamamlandı: ${wmsStock.data.length} ürün güncellendi`);
  } catch (err) {
    console.error('Senkronizasyon hatası:', err.message);
  }
}

syncStock();
# Crontab - her 5 dakikada bir çalıştır
*/5 * * * * /usr/bin/node /home/buyukweb/scripts/stok-sync.js >> /var/log/stok-sync.log 2>&1

Bu script'i Büyükweb VDS üzerinde PM2 veya sistemd timer ile sürekli çalışır durumda tutabilir, hata durumunda otomatik yeniden başlatma (Restart=always) tanımlayabilirsiniz.

Sık Karşılaşılan Senkronizasyon Sorunları

Sorun Olası Neden Çözüm
Stok negatif görünüyor Eşzamanlı sipariş + gecikmeli senkronizasyon Stok azaltmayı sipariş anında (webhook) yap, periyodik cron'u sadece raporlama/düzeltme için kullan
Senkronizasyon script'i duruyor Node.js process beklenmedik hatada çöküyor PM2 ile çalıştır veya sistemd timer'da Restart=always tanımla
Bazı ürünler güncellenmiyor SKU/barkod eşleşmesi bulunamıyor WMS ve WooCommerce'deki barkod/SKU alanlarının birebir aynı formatta olduğunu doğrula
Aynı sipariş için stok iki kez düşüyor Hem webhook hem cron aynı siparişi işliyor İşlenmiş sipariş ID'lerini bir tabloda işaretleyerek tekrar işlemeyi engelle

Yedekleme Stratejisi

WMS verisi en kritik iş varlığıdır. 3-2-1 kuralı:

  • 3 kopya: üretim + lokal yedek + uzak yedek
  • 2 farklı medya: SSD + nesne depolama
  • 1 offsite: Büyükweb sunucu yedeği farklı lokasyonda

Büyükweb VDS paketlerinde günlük otomatik yedekleme standarttır; kritik tablolar için ek olarak mysqldump veya MSSQL backup job ile ayrı bir saatte, ayrı bir depolama alanına yönlendirilen tamamlayıcı bir yedek de kurabilirsiniz.

Sıkça Sorulan Sorular

WMS yazılımım Windows Server 2019 istiyor, hangi paket uygun?

Büyükweb Windows Web Hosting paylaşımlı'da Windows Server vardır ama WMS gibi root erişim isteyen yazılım için VDS gerekir. Windows VDS veya E-Ticaret VDS paketleri önerilir.

Çoklu depo şubeleri var, her şubeye ayrı VDS mi?

Hayır — merkezi bir Büyükweb VDS yeterlidir. Şubeler RDP veya web tabanlı arayüz ile bağlanır. Şube sayısı 10+ ise yük testi yaptırarak paket büyütmek gerekebilir.

MSSQL Server lisansı paket içinde mi?

Standart paketlerde MSSQL Express ücretsizdir (10 GB veri sınırı). Ticari MSSQL Standard/Enterprise için ek lisans gerekir; Büyükweb iletişim üzerinden lisans danışmanlığı alabilirsiniz.

Barkod okuyucu ve terazi gibi donanımları Büyükweb mi sağlıyor?

Hayır — barkod okuyucu, etiket yazıcı, terazi gibi fiziksel depo donanımları müşteri tarafından temin edilir. Büyükweb bu donanımların bağlanacağı yazılım altyapısını (VDS, veritabanı, REST API) sağlar.

WMS sunucusu çökerse stok verisi kaybolur mu?

Büyükweb VDS paketlerinde günlük otomatik yedekleme standarttır, bu sayede veri kaybı en aza indirilir. Ek güvence isteyen işletmeler mysqldump/MSSQL backup job'larını farklı bir saatte çalıştırıp ayrı bir depolama alanına yönlendirerek tek bir yedek kaynağına bağımlı kalmaktan kaçınabilir.

İlgili Büyükweb Hizmetleri

E-ticaret sitenizin yükü için ölçeklenebilir Türkiye lokasyonlu paketler:

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:

#wms#stok yönetimi#depo yönetimi#barkod sistemi#woocommerce stok

Bu yazıyı paylaş

WhatsApp0850 302 60 70