# 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.

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/takip-numarali-gonderim-olusturma

## 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.

## Bilgiler

- **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:** 2 Kasım 2026

## 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

```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

```json
{
  "orderId": "gid://shopify/Order/1234567890"
}
```

### fulfillment-orders.response.json

```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

```graphql
mutation ShipWithTracking($fulfillment: FulfillmentInput!) {
  fulfillmentCreate(fulfillment: $fulfillment) {
    fulfillment {
      id
      status
      trackingInfo(first: 5) {
        company
        number
        url
      }
    }
    userErrors {
      field
      message
    }
  }
}
```

### fulfillment-create.variables.json

```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

```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": []
    }
  }
}
```

## 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.

## 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.

## Shopify belgeleri

- [fulfillmentCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentCreate)
- [FulfillmentOrder object](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder)

## İlgili içerikler

- [Verilmiş bir siparişi düzenleme](https://lintelagency.com/tr/kaynaklar/graphql/siparis-duzenleme)
- [Aras Kargo Shopify entegrasyonu: kargo ücretleri ve gönderim](https://lintelagency.com/tr/blog/aras-kargo-shopify-entegrasyonu)
- [Güvenilir Shopify webhook’ları: yeniden deneme, idempotency, sıra](https://lintelagency.com/tr/blog/guvenilir-shopify-webhooklari)

Lisans: MIT. Kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
