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
- 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.
- SKU’yu inventoryItem altında verin; varyant girdisinin kendi sku alanı yoktur. inventoryQuantities, lokasyon başına başlangıç stoğunu belirler.
- Üründe yalnızca tek bir yer tutucu varyant varsa ve onun kalkmasını istiyorsanız strategy: REMOVE_STANDALONE_VARIANT kullanın.
- Fiyatları sonradan değiştirmek için UpdateVariantPrices’ı varyant ID’leri ve yeni price, compareAtPrice değerleriyle gönderin.
Kod
product-variants-bulk-create.graphqlmutation 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.graphqlmutation 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.
Shopify belgeleri
- 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ı.
