Ek Eklenti ve Ürün Seçeneklerini Barkod Çıktısına Yansıtma (WooCommerce)

Fuat POYRAZ

Fuat POYRAZ

Son güncelleme tarihi Jul 31, 2026

Ek Eklenti ve Ürün Seçeneklerini Barkod Çıktısına Yansıtma

Mağazanızda ürün ek seçenekleri (Product Add-Ons, Extra Product Options), kişiselleştirme, hediye paketi, işleme/gravür gibi alanlar sunan bir eklenti kullanıyorsanız; müşterinin seçtiği bu değerler WooCommerce tarafında sipariş satırı meta verisinde saklanır ve varsayılan olarak Kargo Entegratör'e iletilmez.

Bu değerleri paketleme sırasında görebilmek için, ürün satırındaki custom_attributes alanına aktarabilirsiniz. Bu alana eklediğiniz anahtar / değer çiftleri, gönderiye ait barkod ve fiş PDF çıktılarında ilgili ürün satırının altında listelenir.

Barkod Çıktısına İletilen Veri Yapısı

Her ürün satırı (lines) aşağıdaki gibi serbest bir custom_attributes nesnesi kabul eder:

"lines": [
  {
    "title": "Deri Çanta",
    "quantity": 3,
    "platform_id": 1235,
    "img": "https://dericanta.com/assets/ornek.png",
    "sku": "DRCNT123",
    "custom_attributes": {
      "Renk": "Kırmızı",
      "Boyut": "160 cm"
    }
  }
]

Anahtar isimleri sabit değildir; çıktıda görünmesini istediğiniz etiketi doğrudan siz belirlersiniz. Değerlerin kısa metinler olmasına dikkat edin, uzun metinler barkod çıktısında kırpılabilir.

Ek Seçenek Eklentilerinin Verisini Toplu Aktarma

Ek seçenek eklentilerinin büyük bölümü, müşterinin seçimlerini sipariş satırı meta verisi olarak kaydeder ve bu veriler sipariş detay ekranında ürün adının altında görüntülenir. Aşağıdaki örnek, sipariş ekranında görünen tüm bu satırları olduğu gibi barkod çıktısına taşır:

add_filter('gcargo_shipment_map_wc_order_request', function ($gcargo_request, $order) {

    $gcargo_request['lines'] = array_map(function ($line) use ($order) {

        // platform_id -> WooCommerce sipariş satırı (order item) ID'si
        $item = $order->get_item($line['platform_id']);

        if (!$item) {
            return $line;
        }

        // Sipariş ekranında görünen tüm seçenek satırları (varyasyon + ek seçenekler)
        foreach ($item->get_formatted_meta_data('_') as $meta) {
            $baslik = wp_strip_all_tags($meta->display_key);
            $deger  = wp_strip_all_tags($meta->display_value);

            if (!empty($baslik) && !empty($deger)) {
                $line['custom_attributes'][$baslik] = $deger;
            }
        }

        return $line;
    }, $gcargo_request['lines']);

    return $gcargo_request;
}, 10, 2);

Notlar

  • Yalnızca belirli bir alanı aktarmak isterseniz, meta anahtarını wc_get_order_item_meta($line['platform_id'], '_meta_anahtari', true) ile doğrudan okuyup custom_attributes içine ekleyebilirsiniz.

  • İade gönderilerinde aynı yapıyı gcargo_returned_map_wc_order_request filtresi ile kullanabilirsiniz.

  • custom_attributes zorunlu bir alan değildir; gönderilmediğinde barkod çıktısında ek satır oluşmaz.