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

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/varyantlari-toplu-olusturma-ve-guncelleme

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

## Bilgiler

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

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

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

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

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

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

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

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

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

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

- [productVariantsBulkCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate)
- [productVariantsBulkUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate)

## İlgili içerikler

- [productSet ile ürünü tek seferde oluşturma ya da güncelleme](https://lintelagency.com/tr/kaynaklar/graphql/productset-ile-urun-senkronizasyonu)
- [Staged upload ve bulkOperationRunMutation ile toplu içe aktarma](https://lintelagency.com/tr/kaynaklar/graphql/staged-upload-ile-toplu-ice-aktarma)
- [Harici bir sistemden stok miktarlarını ayarlama](https://lintelagency.com/tr/kaynaklar/graphql/stok-miktarlarini-ayarlama)

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