Bir alışverişçi asistanına şunu yazıyor: "Bu keten gömleği lacivert, L beden ve 1.500 TL'nin altında bul." Gömleği bulmak işin kolay kısmı. Asıl iş o tek kombinasyonu, yani lacivert L'yi bulmak, stokta olup olmadığını ve kaça satıldığını doğrulamak. Mağazanız ajana yalnızca "bu gömleğin birkaç rengi ve bedeni var" diyorsa ajan tahmin etmek, seçenekleri tek tek tıklamak ya da soruyu doğrudan yanıtlayan başka bir mağazaya geçmek zorunda kalıyor.
Bu yazıda ajanların doğru varyantı nasıl seçtiğini, schema.org'un ve Google'ın ürün grubunu nasıl tarif ettiğini, feed tarafının nasıl çalıştığını ve bir varyantı ajandan en sık saklayan hataları anlatıyoruz. Katalog rehberimiz varyantlara tek paragraf ayırmıştı; bu, ayrıntılı sürümü.
Ajan bir varyantı nasıl seçiyor
Ajan üç katmanla çalışıyor: ürün grubu (gömlek), grubun değiştiği seçenekler (renk, beden) ve gerçekten satın alınabilen kombinasyon (lacivert, L). Fiyatı, stok durumu olan ve sepete girebilen yalnızca sonuncusu.
Ajanlara verilen talimatlar da bunu açıkça söylüyor. Shopify'ın Shop MCP sunucusunu kullanan ajanlar için yayımladığı skill dosyasına göre arama tek bir seçenek kombinasyonu gösteriyor; beden filtreleri ve beden listeleri o kombinasyonun stokta olduğunu kanıtlamıyor; ajan bir öneri yapmadan ya da sepet oluşturmadan önce o seçimin stoğunu ve fiyatını doğrulamalı. OpenAI'ın ürün feed'i belirtimi aynı şeye satıcı tarafından bakıyor: satın alınabilen her ürün ya da varyant için ayrı bir satır gönderin; her satır kendi fiyatını, stok durumunu, adresini ve görsellerini taşısın.
Yani mağazanız için soru basit: bir makine her kombinasyonu, hiçbir şeye tıklamadan, kendi bilgileriyle ayrı bir ürün olarak okuyabiliyor mu?
Yapısal veride ürün grubu
Schema.org, ProductGroup'u yalnızca beden, renk ya da malzeme gibi iyi tanımlanmış yönlerden farklılaşan ürünlerin grubu olarak tanımlıyor. Grubun kendisi satılmıyor; satılan, varyantları. Google bu yapıya 20 Şubat 2024'te üç özellikle destek verdi:
hasVarianther varyantProduct'ı grubunun altına yerleştiriyor. Varyant,isVariantOfile gruba geri de bağlanabiliyor.variesByvaryantların hangi özelliklerde ayrıştığını listeliyor. Google renk, beden, önerilen yaş, önerilen cinsiyet, malzeme ve deseni destekliyor; bunlar tam schema.org adresiyle yazılıyor (örneğinhttps://schema.org/color).productGroupIDgrubun kimliği; Google buna ana SKU da diyor.
Google'ın yönergeleri, hedefiniz arama özellikleri olmasa bile uymaya değer birkaç kural ekliyor, çünkü her okurun çözebileceği bir işaretleme ortaya çıkarıyor:
- Her varyantın
skuya dagtingibi benzersiz bir kimliği olmalı. Her grubun da. - Grup kimliğini hem grupta (
productGroupID) hem varyantlarda (inProductGroupWithID) veriyorsanız ikisi aynı olmalı. - Varyant adları grup adından daha belirgin olmalı: "Yün kışlık mont" değil, "Yün kışlık mont, yeşil, S beden".
- Marka ve malzeme gibi ortak bilgiler grup düzeyinde bir kez yazılabilir; her varyant ise kendi rengini, bedenini, görselini ve
Offer'ını taşır.
Her varyanta bir adres mi, tek sayfada seçici mi
Google iki yaygın tasarımı tarif ediyor ve ikisi de işleyebilir.
Tek sayfa. Tüm varyantlar tek sayfada, bir seçiciyle değişiyor. Google tüm grup için tek bir kanonik adres istiyor; bu genellikle hiçbir varyantın seçili olmadığı sayfa. Ayrıca her varyantın, genellikle ?color=green&size=small gibi sorgu parametreleriyle, kendi adresinden doğrudan seçili açılabilmesini şart koşuyor. Seçili açılmak, sayfanın o varyantın doğru görselini, fiyatını ve stok durumunu göstermesi ve ziyaretçinin onu sepete ekleyebilmesi demek.
Çok sayfa. Her varyantın ya da her rengin kendi sayfası var. Bu durumda grup için tek bir kanonik adres yok ve Google her sayfanın eksiksiz, kendi içinde yeterli bir işaretleme taşımasını istiyor; yani ProductGroup tanımı her varyant sayfasında tekrarlanıyor.
İşlemeyen, pek çok mağazada gerçekte bulunan üçüncü kalıp: ekranda fiyatı ve stoğu değiştiren ama belirli bir varyanta götüren hiçbir adresi olmayan bir seçici. Ajan alışverişçiye "lacivert, L" bağlantısı veremiyor, o kombinasyonu sonra yeniden kontrol edemiyor ve her seferinde aynı tıklamaları tekrarlamak zorunda kalıyor. OpenAI'ın feed belirtimi, mümkün olduğunda varyantı seçili gelen bir ürün adresi istiyor; Google Merchant Center da her varyant için farklı bir açılış sayfası adresi öneriyor.
Feed tarafı: her yerde tek grup kimliği
Google Merchant Center'da bunun feed özelliği item_group_id. Her varyant kendi id'siyle ayrı bir ürün olarak gönderiliyor; aynı ürünün tüm varyantları tek bir item_group_id paylaşıyor. Google'ın örneği: 3 beden ve 3 renkte bir tişört, aynı grup kimliğini taşıyan 9 ayrı ürün. Bu özellik ücretsiz listelemelerde ürün varyantları için zorunlu.
Google'ın grup kimliği yönergesi, karşılaştığı hataların listesi gibi okunuyor:
- Grup kimliği olarak ana SKU'yu kullanın; ana SKU'yu ayrıca bir ürün olarak göndermeyin.
- Değeri sabit tutun. Grup kimliği sık değişirse varyantlar tutarsız gruplanabilir.
- Bir grup kimliğini başka bir ürün için yeniden kullanmayın; iki grubu büyük ve küçük harfle ayırmaya çalışmayın.
- Benzer ama varyant olmayan ürünlerde, örneğin ceket ve pantolondan oluşan bir takımda, grup kimliği kullanmayın.
- Açılış sayfasının her varyantın başlığı, rengi, fiyatı, stok durumu ve görseliyle örtüştüğünden emin olun.
OpenAI'ın feed belirtimi aynı mantığı farklı adlarla kuruyor: ortak bir group_id (hâlâ item_group_id adını da kabul ediyor), true değerli listing_has_variations ve {"color":"Black","size":"10"} gibi bir variant_dict. Çelişen değerlerin sizin yerinize uzlaştırılmadığını da açıkça yazıyor.
Bunların hepsini tutarlı tutmanın en kolay yolu tek bir değeri üç yerde kullanmak: yapısal veride productGroupID, Merchant Center feed'inde item_group_id ve ajan feed'lerinde group_id. Google'ın kendi belgesi item_group_id'yi schema.org grup kimliğiyle eşleştiriyor; üçünde de ana SKU'yu kullanmak doğal seçim.
Stok ve fiyat varyanta aittir
Bir ürün grubunun tek bir fiyatı ve tek bir stok durumu yoktur. Google'ın örneği nedenini gösteriyor: küçük montlar 39,99 dolar ve stokta, büyük olan 49,99 dolar ve ön siparişte (backorder). İşaretlemeniz tüm gruba tek bir availability koyuyorsa ajan hangi bedenlerin gerçekten olduğunu ayırt edemez.
Her varyanta price, priceCurrency ve availability içeren kendi Offer'ını verin ve bu değerleri feed'in söylediğiyle ve o varyant seçildiğinde sayfanın gösterdiğiyle birebir aynı tutun. Bu kaynaklar arasındaki çelişkinin neden pahalıya patladığını Feed, sayfa ve yapısal veri aynı fiyatı söylemeli yazımızda anlatmıştık.
Bir varyantı saklayan yaygın hatalar
- Yalnızca JavaScript çalıştıktan sonra oluşan işaretleme. Google, Product yapısal verisini ilk HTML'e koymayı öneriyor ve tarayıcıda üretilen işaretlemenin Shopping taramalarını seyrekleştirip güvenilirliğini düşürebileceği konusunda uyarıyor; fiyat ve stok gibi hızlı değişen bilgilerde bu bir sorun olabiliyor.
- Varyant fiyatının yalnızca tıklamadan sonra görünmesi. Gerçek fiyat ancak bir beden seçilince çıkıyorsa ajan karşılaştırmak için her seçeneği denemek zorunda. Bunu alışveriş ajanını yoran 33 ayrıntı arasında saymıştık.
- Gerçek form öğesi olmayan seçiciler. Gerçek tarayıcı ajanlarıyla yaptığımız saha çalışmasında beden ve rengi açılır liste, radyo düğmesi ya da düz düğme olarak sunan mağazalarda ajanlar görevi 3 ile 6 adımda bitirdi. Seçenekleri yalnızca tıklanabilir görünen özel öğelerle değil, gerçek form öğeleriyle sunun.
- Yalnızca renk kutucuğu olarak var olan renkler. Metin adı olmayan bir görsel olarak gösterilen renk, ajana "lacivert"i eşleştirecek hiçbir şey vermiyor. Seçeneği metinde ve
coloralanında adlandırın. - Bütün aileye tek kimlik. OpenAI'ın belirtimi, GTIN'in varyant grubunu değil belirli bir ticari ürünü tanımladığını hatırlatıyor. Her varyantın kendi kimliği olmalı.
Uygulamalı kontrol listesi
- Varyantı olan en çok satan 20 ürününüzü seçin.
- Her biri için bir varyantın adresini gizli pencerede doğrudan açın. Sayfa o varyant seçili olarak, kendi fiyatı, görseli ve stoğuyla mı geliyor?
- Görüntülenen sayfaya değil, sayfa kaynağına bakın.
variesBy,productGroupIDve her varyant için kendiOffer'ını taşıyan birerProductiçeren birProductGroupvar mı? - Her varyantın benzersiz bir
skuya dagtin'i ve belirgin bir adı olduğunu kontrol edin. - Yapısal verinizdeki, Merchant Center feed'inizdeki ve varsa ajan feed'inizdeki grup kimliğini karşılaştırın. Üçü de aynı ana SKU olmalı.
- Biri stokta olmayan üç varyant seçin ve sayfanın, işaretlemenin ve feed'in fiyat ve stok durumunda anlaştığını doğrulayın.
- Beden ve rengin metin etiketli, gerçek form öğeleri olarak sunulduğundan emin olun.
Sonuç
Ajanlar "gömleği" satın almıyor; doğrulayabildikleri bir fiyattan lacivert L'yi satın alıyor. Her varyantı sabit bir ana kimlik altında gruplanmış, kendi adresinden ulaşılabilen, kendi fiyatını ve stoğunu taşıyan ayrı bir ürün olarak anlatan mağaza ajana doğrudan bir yanıt veriyor. Bu bilgiyi bir seçicinin arkasında tutan mağaza ise ajanı tahmine bırakıyor.
Specoria, ürün sayfalarınızın ve varyantlarınızın bir ajana nasıl göründüğünü kontrol ediyor: ilk HTML'deki yapısal veriden, gerçek bir tarayıcı ajanının doğru seçeneği seçip sepete ekleyip ekleyemediğine kadar. Ücretsiz hazırlık testiyle başlayabilirsiniz.
Kaynaklar
- Google Search Central, Product variant structured data (ProductGroup, Product), son güncelleme 8 Eylül 2026.
- Google Search Central Blog, Adding structured data support for Product Variants, 20 Şubat 2024.
- Schema.org, ProductGroup, erişim 20 Ekim 2026.
- Google Merchant Center Yardım, Item group ID (item_group_id), erişim 20 Ekim 2026.
- OpenAI, Product Feed Spec, erişim 20 Ekim 2026.
- Shop, Shop MCP ajan skill dosyası, erişim 20 Ekim 2026.
- Specoria İçgörüler, Yapay zekâ ajanlarını gerçek tarayıcıda 40 kez alışverişe gönderdik: Nerede takıldılar?