# Ürünleri combined listing altında birleştirme

> Ayrı renk ürünlerini tek bir ilan olarak gösterin: bir parent ürün oluşturun, ardından combinedListingUpdate ile child ürünleri ve seçenek değerlerini bağlayın.

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/combined-listings-guncelleme

## Kısaca

Bir combined listing kurmak için productCreate ile combinedListingRole PARENT olan bir parent ürün oluşturun. Ardından combinedListingUpdate’i parent’ın ID’si, göstereceği seçenek ve değerler (optionsAndValues) ve her child ürünün temsil ettiği parent seçenek değeriyle (productsAdded) çağırın. Combined listings yalnızca Shopify Plus planındaki mağazalarda kullanılabilir.

## Bilgiler

- **API:** Admin GraphQL API
- **İşlemler:** productCreate, combinedListingUpdate
- **Erişim yetkisi:** write_products
- **Plan:** Shopify Plus
- **API sürümü:** 2026-10
- **Son kontrol:** 2 Kasım 2026

## Nasıl kullanılır

1. Önce her renk için bir child ürün oluşturun; her birinin kendi görselleri, handle’ı ve varyantları olsun.
2. CreateListingParent’ı combinedListingRole PARENT ile gönderin. Parent’ın stoğu yoktur ve tek başına satın alınamaz.
3. AddColorsToListing’i parent ID’si, parent seçeneği (değerleriyle Color) ve her biri bir değere eşlenmiş child ürünlerle gönderin.
4. Sonradan bir child’ı yeniden eşlemek için productsEdited, çıkarmak için productsRemovedIds, parent seçeneklerini değiştirmek için optionsAndValues kullanın.

## Kod

### product-create-parent.graphql

```graphql
mutation CreateListingParent($product: ProductCreateInput!) {
  productCreate(product: $product) {
    product {
      id
      combinedListingRole
    }
    userErrors {
      field
      message
    }
  }
}
```

### product-create-parent.variables.json

```json
{
  "product": {
    "title": "Linen shirt",
    "handle": "linen-shirt-all-colors",
    "status": "ACTIVE",
    "combinedListingRole": "PARENT"
  }
}
```

### product-create-parent.response.json

```json
{
  "data": {
    "productCreate": {
      "product": {
        "id": "gid://shopify/Product/1234567890",
        "combinedListingRole": "PARENT"
      },
      "userErrors": []
    }
  }
}
```

### combined-listing-update.graphql

```graphql
mutation AddColorsToListing(
  $parentProductId: ID!
  $productsAdded: [ChildProductRelationInput!]
  $optionsAndValues: [OptionAndValueInput!]
) {
  combinedListingUpdate(
    parentProductId: $parentProductId
    productsAdded: $productsAdded
    optionsAndValues: $optionsAndValues
  ) {
    product {
      id
      combinedListingRole
      combinedListing {
        combinedListingChildren(first: 10) {
          nodes {
            product {
              id
              title
            }
            parentVariant {
              id
              selectedOptions {
                name
                value
              }
            }
          }
        }
      }
    }
    userErrors {
      code
      field
      message
    }
  }
}
```

### combined-listing-update.variables.json

```json
{
  "parentProductId": "gid://shopify/Product/1234567890",
  "optionsAndValues": [
    {"name": "Color", "values": ["Sand", "Navy"]}
  ],
  "productsAdded": [
    {
      "childProductId": "gid://shopify/Product/1111111111",
      "selectedParentOptionValues": [{"name": "Color", "value": "Sand"}]
    },
    {
      "childProductId": "gid://shopify/Product/1111111112",
      "selectedParentOptionValues": [{"name": "Color", "value": "Navy"}]
    }
  ]
}
```

### combined-listing-update.response.json

```json
{
  "data": {
    "combinedListingUpdate": {
      "product": {
        "id": "gid://shopify/Product/1234567890",
        "combinedListingRole": "PARENT",
        "combinedListing": {
          "combinedListingChildren": {
            "nodes": [
              {
                "product": {"id": "gid://shopify/Product/1111111111", "title": "Linen shirt - Sand"},
                "parentVariant": {"id": "gid://shopify/ProductVariant/2222222221", "selectedOptions": [{"name": "Color", "value": "Sand"}]}
              },
              {
                "product": {"id": "gid://shopify/Product/1111111112", "title": "Linen shirt - Navy"},
                "parentVariant": {"id": "gid://shopify/ProductVariant/2222222222", "selectedOptions": [{"name": "Color", "value": "Navy"}]}
              }
            ]
          }
        }
      },
      "userErrors": []
    }
  }
}
```

## Sınırlar ve özel durumlar

- Bir parent’ın en fazla 60 child ürünü ve bunlara yayılmış en fazla 2000 varyantı olabilir.
- Satışlar child ürünlerde izlenir; checkout ve siparişlerde parent değil child görünür.
- Bir combined listing bundle olamaz ve başka bir combined listing’in parçası olamaz.
- Mağazada tek ürün olarak görünmesi için temanın combined listings’i desteklemesi gerekir.

## Sorular

### Shopify combined listings nedir?

Genellikle her renk için bir tane olmak üzere birkaç ürünün, mağazada ortak bir seçenek seçicisiyle tek ürün olarak gösterilmesidir. Her child kendi URL’sini, görsellerini ve stoğunu korur.

### Combined listings için Shopify Plus gerekir mi?

Evet. Combined listings’i yalnızca Shopify Plus planındaki mağazalar kullanabilir.

### Parent ürünü productSet ile oluşturabilir miyim?

Shopify’ın referansı parent’ı productCreate ve combinedListingRole PARENT ile oluşturur; burada da bu yol gösteriliyor.

## Shopify belgeleri

- [combinedListingUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/combinedListingUpdate)
- [Combined listings](https://shopify.dev/docs/apps/build/product-merchandising/combined-listings)

## İlgili içerikler

- [Combined Listings: ayrı ürünler tek ürün gibi davrandığında](https://lintelagency.com/tr/blog/shopify-combined-listings)
- [productSet ile ürünü tek seferde oluşturma ya da güncelleme](https://lintelagency.com/tr/kaynaklar/graphql/productset-ile-urun-senkronizasyonu)

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