Varyantları toplu oluşturma ve güncelleme

Yeni beden ya da renkleri productVariantsBulkCreate ile ekleyin, varyant fiyatlarını productVariantsBulkUpdate ile toplu değiştirin; her çağrı tek ürün içindir.

API
Admin GraphQL API
İşlemler
productVariantsBulkCreate, productVariantsBulkUpdate
Erişim yetkisi
write_products
Yerini aldığı REST çağrısı
POST /admin/api/products/{id}/variants.json ve PUT /admin/api/variants/{id}.json
API sürümü
2026-10
Son kontrol

Kısaca

Bir ürüne varyant eklemek için productVariantsBulkCreate’i productId ve varyant listesiyle çağırın: optionValues, price, inventoryItem (SKU) ve lokasyon başına başlangıç stoğu. Mevcut varyantları değiştirmek için productVariantsBulkUpdate’e her varyantın id’sini ve price, compareAtPrice gibi değişecek alanları verin. İkisi de çağrı başına tek bir ürünle çalışır ve geçersiz varyantlar için userErrors döndürür.

Nasıl kullanılır

  1. AddVariants’ı ürün ID’si ve her yeni varyant için bir girdiyle gönderin. XL gibi yeni bir seçenek değeri, ürünün Size seçeneğine otomatik eklenir.
  2. SKU’yu inventoryItem altında verin; varyant girdisinin kendi sku alanı yoktur. inventoryQuantities, lokasyon başına başlangıç stoğunu belirler.
  3. Üründe yalnızca tek bir yer tutucu varyant varsa ve onun kalkmasını istiyorsanız strategy: REMOVE_STANDALONE_VARIANT kullanın.
  4. Fiyatları sonradan değiştirmek için UpdateVariantPrices’ı varyant ID’leri ve yeni price, compareAtPrice değerleriyle gönderin.

Kod

product-variants-bulk-create.graphql
mutation AddVariants($productId: ID!, $variants: [ProductVariantsBulkInput!]!, $strategy: ProductVariantsBulkCreateStrategy) {
  productVariantsBulkCreate(productId: $productId, variants: $variants, strategy: $strategy) {
    productVariants {
      id
      title
      price
      inventoryItem {
        sku
      }
    }
    userErrors {
      code
      field
      message
    }
  }
}
product-variants-bulk-create.variables.json
{
  "productId": "gid://shopify/Product/1234567890",
  "strategy": "REMOVE_STANDALONE_VARIANT",
  "variants": [
    {
      "optionValues": [{"optionName": "Size", "name": "XL"}],
      "price": "52.00",
      "inventoryItem": {"sku": "LS-XL", "tracked": true},
      "inventoryQuantities": [{"locationId": "gid://shopify/Location/1234567890", "availableQuantity": 8}]
    },
    {
      "optionValues": [{"optionName": "Size", "name": "XXL"}],
      "price": "52.00",
      "inventoryItem": {"sku": "LS-XXL", "tracked": true},
      "inventoryQuantities": [{"locationId": "gid://shopify/Location/1234567890", "availableQuantity": 4}]
    }
  ]
}
product-variants-bulk-create.response.json
{
  "data": {
    "productVariantsBulkCreate": {
      "productVariants": [
        {"id": "gid://shopify/ProductVariant/1111111114", "title": "XL", "price": "52.00", "inventoryItem": {"sku": "LS-XL"}},
        {"id": "gid://shopify/ProductVariant/1111111115", "title": "XXL", "price": "52.00", "inventoryItem": {"sku": "LS-XXL"}}
      ],
      "userErrors": []
    }
  }
}
product-variants-bulk-update.graphql
mutation UpdateVariantPrices($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
  productVariantsBulkUpdate(productId: $productId, variants: $variants) {
    productVariants {
      id
      price
      compareAtPrice
    }
    userErrors {
      code
      field
      message
    }
  }
}
product-variants-bulk-update.variables.json
{
  "productId": "gid://shopify/Product/1234567890",
  "variants": [
    {"id": "gid://shopify/ProductVariant/1111111111", "price": "39.00", "compareAtPrice": "49.00"},
    {"id": "gid://shopify/ProductVariant/1111111112", "price": "39.00", "compareAtPrice": "49.00"}
  ]
}
product-variants-bulk-update.response.json
{
  "data": {
    "productVariantsBulkUpdate": {
      "productVariants": [
        {"id": "gid://shopify/ProductVariant/1111111111", "price": "39.00", "compareAtPrice": "49.00"},
        {"id": "gid://shopify/ProductVariant/1111111112", "price": "39.00", "compareAtPrice": "49.00"}
      ],
      "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

  • Her çağrı tek bir ürün üzerinde çalışır. Çok sayıda ürün için mutation’ı bir bulk operation içinde çalıştırın ya da ürün başına productSet çağırın.
  • Mağazalarda varsayılan olarak ürün başına en fazla 2048 varyant olabilir.
  • Varsayılan olarak tek bir geçersiz varyant tüm güncellemeyi durdurur. Geçerli olanların kaydedilmesi için allowPartialUpdates: true gönderin.
  • Fiyatlar Money tipindedir: "49.00" gibi metin olarak gönderilir ve döner.

Sık sorulan sorular

GraphQL ile bir Shopify ürününe yeni beden nasıl eklenir?
productVariantsBulkCreate’i ürün ID’si ve optionValues’ta seçeneği ve yeni değeri (örneğin Size: XL) belirten bir varyantla çağırın. Shopify değeri seçeneğe ekler.
Varyant fiyatlarını toplu olarak nasıl güncellerim?
Ürün başına productVariantsBulkUpdate’i her varyantın id’si ve yeni fiyatıyla çağırın. Binlerce ürün için bu mutation’ı JSONL dosyasıyla bir bulk operation içinde çalıştırın.
SKU ve barkod nereye yazılır?
SKU, inventoryItem.sku alanına; barkodlar varyant girdisindeki barcodes listesine yazılı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.