Takip numarasıyla gönderim (fulfillment) oluşturma

Bir siparişin açık fulfillment order’larını okuyun, ardından fulfillmentCreate ile kargo firması, takip numarası ve URL’siyle gönderim oluşturun.

API
Admin GraphQL API
İşlemler
order.fulfillmentOrders, fulfillmentCreate
Erişim yetkileri
write_merchant_managed_fulfillment_orders, write_assigned_fulfillment_orders ya da write_third_party_fulfillment_orders
Yerini aldığı REST çağrısı
POST /admin/api/fulfillments.json
API sürümü
2026-10
Son kontrol

Kısaca

Ürünleri gönderildi olarak işaretlemek için siparişin durumu OPEN olan fulfillmentOrders’ını okuyun, ardından fulfillmentCreate’i lineItemsByFulfillmentOrder (fulfillment order ID’si ile satır ID’leri ve adetleri) ve trackingInfo (company, number, url) ile çağırın. Kargo e-postasının gitmesi için notifyCustomer’ı açın. O fulfillment order’daki her şeyi göndermek için satırları boş bırakın.

Nasıl kullanılır

  1. OpenFulfillmentOrders’ı sipariş ID’siyle gönderin. Her fulfillment order, siparişin bir lokasyona düşen kısmıdır.
  2. Göndereceğiniz fulfillment order satırlarını ve adetlerini (en fazla remainingQuantity kadar) seçin.
  3. ShipWithTracking’i kargo firması adı, takip numarası ve takip URL’siyle gönderin.
  4. Her koli için tekrarlayın; kısmi gönderim, fulfillment order’ın kalanını açık bırakır.

Kod

fulfillment-orders.graphql
query OpenFulfillmentOrders($orderId: ID!) {
  order(id: $orderId) {
    id
    name
    fulfillmentOrders(first: 10, query: "status:OPEN") {
      nodes {
        id
        status
        assignedLocation {
          name
        }
        lineItems(first: 50) {
          nodes {
            id
            sku
            remainingQuantity
          }
        }
      }
    }
  }
}
fulfillment-orders.variables.json
{
  "orderId": "gid://shopify/Order/1234567890"
}
fulfillment-orders.response.json
{
  "data": {
    "order": {
      "id": "gid://shopify/Order/1234567890",
      "name": "#1001",
      "fulfillmentOrders": {
        "nodes": [
          {
            "id": "gid://shopify/FulfillmentOrder/1111111111",
            "status": "OPEN",
            "assignedLocation": {"name": "Main warehouse"},
            "lineItems": {
              "nodes": [
                {"id": "gid://shopify/FulfillmentOrderLineItem/2222222221", "sku": "LS-M", "remainingQuantity": 2},
                {"id": "gid://shopify/FulfillmentOrderLineItem/2222222222", "sku": "WS-01", "remainingQuantity": 1}
              ]
            }
          }
        ]
      }
    }
  }
}
fulfillment-create.graphql
mutation ShipWithTracking($fulfillment: FulfillmentInput!) {
  fulfillmentCreate(fulfillment: $fulfillment) {
    fulfillment {
      id
      status
      trackingInfo(first: 5) {
        company
        number
        url
      }
    }
    userErrors {
      field
      message
    }
  }
}
fulfillment-create.variables.json
{
  "fulfillment": {
    "notifyCustomer": true,
    "trackingInfo": {
      "company": "DHL Express",
      "number": "1234567890",
      "url": "https://www.dhl.com/track?tracking-id=1234567890"
    },
    "lineItemsByFulfillmentOrder": [
      {
        "fulfillmentOrderId": "gid://shopify/FulfillmentOrder/1111111111",
        "fulfillmentOrderLineItems": [
          {"id": "gid://shopify/FulfillmentOrderLineItem/2222222221", "quantity": 2}
        ]
      }
    ]
  }
}
fulfillment-create.response.json
{
  "data": {
    "fulfillmentCreate": {
      "fulfillment": {
        "id": "gid://shopify/Fulfillment/1234567890",
        "status": "SUCCESS",
        "trackingInfo": [
          {
            "company": "DHL Express",
            "number": "1234567890",
            "url": "https://www.dhl.com/track?tracking-id=1234567890"
          }
        ]
      },
      "userErrors": []
    }
  }
}

Lintel tarafından yazıldı. MIT lisansı: kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.

Sınırlar ve özel durumlar

  • Gönderimler sipariş satırlarına değil fulfillment order’lara karşı oluşturulur. LineItem ID’lerini değil FulfillmentOrderLineItem ID’lerini kullanın.
  • Hangi yetkinin gerektiği, gönderimi kimin yaptığına bağlıdır: mağazanın kendi lokasyonları, bir fulfillment service uygulaması ya da üçüncü bir taraf.
  • trackingInfo, birden fazla kolili gönderimler için numbers ve urls listelerini de alır.
  • Shopify’ın takip linkini kendisi oluşturması için company’yi desteklenen kargo firmaları listesindeki yazımla aynen gönderin; listede olmayan firmalar için url’yi mutlaka verin.

Sık sorulan sorular

GraphQL ile bir Shopify siparişine takip numarası nasıl eklenir?
Gönderimi fulfillmentCreate ve trackingInfo ile oluşturun. Mevcut bir gönderimin takip bilgisini değiştirmek için fulfillmentTrackingInfoUpdate’i kullanın.
Fulfillment order nedir?
Siparişin, bir lokasyonun ya da fulfillment service’in göndereceği kısmıdır. Ürünleri iki ayrı depoda olan bir siparişin iki fulfillment order’ı olur.
fulfillmentCreate müşteriye e-posta gönderir mi?
Yalnızca notifyCustomer true ise. Bu durumda kargo onay e-postasında takip linki de yer alır.
  • Gösterilen tarihte, 2026-10 sürümünün Admin veya Storefront API şemasıyla doğrulandı. İstek adresinizdeki sürümü kontrol edin.
  • Örneklerdeki ID’ler ve mağaza adresleri yer tutucudur. Kendi değerlerinizle değiştirin.
  • Admin API çağrıları uygulamanızdan bir erişim anahtarı (access token) ister. Admin API anahtarını asla vitrine ya da temaya koymayın.
  • MIT lisansı. Kodu kendi mağazanızda da müşteri işlerinizde de kullanabilirsiniz.

Mağazanız için kurulmasını, test edilmesini ve bakımını isterseniz: API entegrasyonları.

Geliştirmek istediğiniz bir şey mi var? Gelin, birlikte konuşalım.

Aynı anda sınırlı sayıda proje alıyoruz.

Gencer KarakayaShopify mühendisi

Proje özetinizi bir mühendis okur; size e-postayla yanıt veririz.