# Özel fiyatlı taslak sipariş oluşturma

> draftOrderCreate ile teklif ya da B2B siparişi oluşturun: priceOverride ile varyant fiyatını değiştirin, kendi fiyatıyla özel satırlar ekleyin.

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/ozel-fiyatli-taslak-siparis

## Kısaca

Pazarlıkla belirlenmiş bir fiyattan sipariş oluşturmak için draftOrderCreate’i lineItems ile çağırın. Katalog ürünleri için variantId ve yeni birim fiyatı içeren priceOverride verin. Katalog dışındaki her şey için variantId’yi atlayıp title, quantity ve originalUnitPriceWithCurrency verin. Taslak, müşterinin ödeme yapabileceği bir invoiceUrl döndürür; draftOrderComplete ise taslağı doğrudan siparişe çevirir.

## Bilgiler

- **API:** Admin GraphQL API
- **İşlem:** draftOrderCreate
- **Erişim yetkisi:** write_draft_orders
- **Yerini aldığı REST çağrısı:** POST /admin/api/draft_orders.json
- **API sürümü:** 2026-10
- **Son kontrol:** 2 Kasım 2026

## Nasıl kullanılır

1. Katalog ürünlerini variantId, quantity ve taslağın para biriminde priceOverride ile listeleyin.
2. Hizmet, ücret gibi özel kalemleri title, quantity, originalUnitPriceWithCurrency, taxable ve requiresShipping ile ekleyin.
3. CreateQuote’u gönderin ve userErrors’ı kontrol edin.
4. Müşteriye invoiceUrl’yi ya da draftOrderInvoiceSend ile fatura e-postasını gönderin; ödeme başka yerde alındıysa taslağı draftOrderComplete ile tamamlayın.

## Kod

### draft-order-create.graphql

```graphql
mutation CreateQuote($input: DraftOrderInput!) {
  draftOrderCreate(input: $input) {
    draftOrder {
      id
      name
      invoiceUrl
      totalPriceSet {
        presentmentMoney {
          amount
          currencyCode
        }
      }
      lineItems(first: 10) {
        nodes {
          title
          quantity
          custom
          originalUnitPriceWithCurrency {
            amount
            currencyCode
          }
        }
      }
    }
    userErrors {
      field
      message
    }
  }
}
```

### draft-order-create.variables.json

```json
{
  "input": {
    "email": "buyer@example.com",
    "note": "Wholesale quote, valid for 14 days",
    "tags": ["quote"],
    "lineItems": [
      {
        "variantId": "gid://shopify/ProductVariant/1111111111",
        "quantity": 20,
        "priceOverride": {"amount": "35.00", "currencyCode": "EUR"}
      },
      {
        "title": "Custom embroidery",
        "quantity": 20,
        "originalUnitPriceWithCurrency": {"amount": "4.50", "currencyCode": "EUR"},
        "requiresShipping": false,
        "taxable": true
      }
    ]
  }
}
```

### draft-order-create.response.json

```json
{
  "data": {
    "draftOrderCreate": {
      "draftOrder": {
        "id": "gid://shopify/DraftOrder/1234567890",
        "name": "#D12",
        "invoiceUrl": "https://your-store.myshopify.com/1234567890/invoices/abcdef0123456789",
        "totalPriceSet": {
          "presentmentMoney": {
            "amount": "790.00",
            "currencyCode": "EUR"
          }
        },
        "lineItems": {
          "nodes": [
            {"title": "Linen shirt", "quantity": 20, "custom": false, "originalUnitPriceWithCurrency": {"amount": "49.00", "currencyCode": "EUR"}},
            {"title": "Custom embroidery", "quantity": 20, "custom": true, "originalUnitPriceWithCurrency": {"amount": "4.50", "currencyCode": "EUR"}}
          ]
        }
      },
      "userErrors": []
    }
  }
}
```

## Sınırlar ve özel durumlar

- priceOverride katalog fiyatının yerini alır; appliedDiscount ise orijinal fiyatı koruyup satıra indirim ekler.
- variantId verildiğinde originalUnitPriceWithCurrency dikkate alınmaz ve bir taslaktaki tüm fiyatlar taslağın para biriminde olmalıdır.
- reserveInventoryUntil vermezseniz taslak siparişler stok ayırmaz.
- Fiyat geçersiz kılma (price override) bundle bileşenlerine uygulanamaz.

## Sorular

### Shopify’da bir müşteriye özel fiyat nasıl verilir?

Satırda priceOverride olan bir taslak sipariş oluşturup müşteriye fatura linkini gönderin. Kalıcı B2B fiyatları için bunun yerine katalog ve fiyat listelerini kullanın.

### Taslak siparişe özel bir satır nasıl eklenir?

variantId’yi atlayıp title, quantity ve originalUnitPriceWithCurrency verin. requiresShipping ve taxable alanlarını ihtiyaca göre ayarlayın.

### priceOverride ile appliedDiscount arasındaki fark nedir?

priceOverride yeni bir birim fiyat belirler. appliedDiscount orijinal fiyatı korur ve satıra sabit tutarlı ya da yüzdelik bir indirim uygular.

## Shopify belgeleri

- [draftOrderCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderCreate)
- [DraftOrderLineItemInput](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DraftOrderLineItemInput)

## İlgili içerikler

- [Shopify’da B2B: plana ve özelliğe göre seçenekler](https://lintelagency.com/tr/blog/shopify-b2b-secenekleri)
- [Verilmiş bir siparişi düzenleme](https://lintelagency.com/tr/kaynaklar/graphql/siparis-duzenleme)

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