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

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

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.

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

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

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

Sık sorulan 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.
  • 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.