Ürünleri taşıma

Merchant API, ürün verilerinizi yönetmek için daha sağlam ve sezgisel bir yöntem sunar. En önemli değişiklik, ürün verilerinin iki farklı kaynağa ayrılmasıdır: Verilerinizi göndermek için ProductInput ve ürün durumu ile sorunlar dahil olmak üzere işlenmiş son sürümü görüntülemek için Product. Bu yeni yapı, daha öngörülebilir ve şeffaf bir deneyim sunar.

Bu kılavuzda, entegrasyonunuzu Content API for Shopping'den taşımanıza yardımcı olacak temel farklar açıklanmaktadır. Yeni özelliklerin kullanımıyla ilgili ayrıntılı kılavuz için Ürünlerinizi yönetme başlıklı makaleyi inceleyin.

Temel farklar

Content API for Shopping ile karşılaştırıldığında Merchant API'de ürünleri yönetme şeklinizle ilgili en önemli değişiklikler şunlardır:

  • Giriş ve işlenen veriler için özel kaynaklar: Merchant API, ürün yönetimini iki kaynağa ayırır. Ürün verilerinizi eklemek, güncellemek ve silmek için ProductInput kaynağını kullanabilirsiniz. Google girişlerinizi işledikten, kuralları uyguladıktan ve ek kaynaklardan gelen verileri birleştirdikten sonra nihai ürünü görüntülemek için salt okunur Product kaynağını kullanabilirsiniz.

  • Ürün adları için kodlama: Hem ProductInput.name hem de Product.name alanları için dolgusuz base64url (RFC 4648 Bölüm 5) kodlaması kullanabilirsiniz. Ürün adları, Merchant API tarafından kullanılan karakterler veya URL için ayrılmış karakterler içeriyorsa kodlama zorunludur. Örneğin, ürün adları aşağıdaki karakterlerden herhangi birini içeriyorsa bunları kodlamanız gerekir:

    % . + / : ~ , ( * ! ) & ? = @ # $
    
  • Entegre ürün durumu: productstatuses hizmeti kaldırılır. Ürün doğrulama sorunları ve hedef durumları artık doğrudan productStatus alanındaki Product kaynağına dahil edilerek veri alma işlemi basitleştirildi.

  • Öngörülebilir ürün güncellemeleri: Yeni productInputs.patch yöntemi, belirli bir ürün girişini doğrudan değiştirir. Bu, güncellemelerin diğer feed yüklemeleri tarafından beklenmedik şekilde üzerine yazılabildiği Content API for Shopping'e kıyasla önemli bir iyileştirmedir. Merchant API'de bir güncelleme, ilgili ürün girişi tekrar güncellenene veya silinene kadar geçerli kalır. Ürün güncellemeleri, işlenen Product kaynağı yerine ProductInput kaynağına uygulanır.

  • Daha temiz veri yönetimi için veri kaynağınızı seçin: Tüm productInputs yazma işlemleri artık bir dataSource sorgu parametresi gerektiriyor. Bu sayede hangi veri kaynağını değiştirdiğiniz açıkça belirtiliyor. Bu, özellikle veri sağlayan birden fazla kaynağınız varsa kullanışlıdır.

  • Yeni kaynak tanımlayıcıları: Ürünler artık id alanı yerine RESTful kaynağı name ile tanımlanıyor. Biçim şu şekildedir: accounts/{account}/products/{product}.

  • Özel toplu işlem yok: custombatch yöntemi artık kullanılamıyor. Tek bir HTTP çağrısında birden fazla istek göndermek için asenkron istekleri veya HTTP toplu işlemeyi kullanabilirsiniz.

başlıklı makaleyi inceleyin.

Taşıma sırasında veri kaynağı yönergeleri

Veri kaynaklarınızı taşımadan önce veri kaynağı stratejinizi seçmenizi önemle tavsiye ederiz.

Sorunsuz bir taşıma işlemi gerçekleştirmek ve teklif hırsızlığı gibi sorunları önlemek için aşağıdaki önerileri uygulayın:

  • Veritabanınızı doldurma: Her ürün işleminden önce dataSources.list yöntemini çağırmak yerine yerel veritabanınızı bir defaya mahsus doldurmanızı önemle tavsiye ederiz. İsteklerinizde doğru tanımlayıcıyı doğrudan sağlayabilmek için her ürün kaydına bir dataSource adı alanı ekleyin.

  • Herhangi bir etiket ve dil için veri kaynaklarını birleştirme ve kullanma: Merchant API, etiket ve dil belirtmeden veri kaynağı oluşturmayı mümkün kılar. Bu sayede, herhangi bir veri kaynağı etiketi ve diliyle ürün ekleyebilirsiniz. Her etiket ve dil için tek bir veri kaynağı kullanmayı deneyin.

  • Ürünlerinizi koruma: Veri kaynağı kuralları kullanıyorsanız bir ürünü güncellemeden veya silmeden önce ürünle ilişkili tam dataSource değerini bulmak için products.get yöntemini çağırın. Bu sayede, amaçlanan kaynağı değiştirdiğinizden emin olursunuz ve tekliflerin yanlışlıkla çalınması önlenir.

İstekler

Bu bölümde, Content API for Shopping ve Merchant API için istek biçimleri karşılaştırılmaktadır.

İstek açıklaması Content API for Shopping Merchant API
Ürün alma GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
Ürünleri listele GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
Ürün ekle POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert
Ürün güncelleme PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
Ürün silme DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
Ürün durumunu alma GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
Ürün durumlarını listeleme GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
Birden fazla isteği toplu olarak gönderme POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch Asenkron istekleri veya HTTP toplu işlemeyi kullanma

Tanımlayıcılar

Merchant API'de ürün tanımlayıcılarının biçimi, standart bir REST kaynak adı olarak değiştirildi.

Tanımlayıcı açıklaması Content API for Shopping Merchant API
Ürün Kimliği İki nokta üst üste (:) ile ayrılmış segmentlerden oluşan bir dize.
Biçim: channel:contentLanguage:targetCountry:offerId veya channel:contentLanguage:feedLabel:offerId.
Örnek: online:en:US:sku123
REST kaynağı name dizesi.
Biçim: accounts/{account}/products/{product} ({product}, contentLanguage~feedLabel~offerId değerini alır).
Örnek: accounts/12345/products/en~US~sku123.
Kodlama: Merchant API tarafından kullanılan karakterleri veya URL için ayrılmış karakterleri içeren ürün kimlikleri söz konusu olduğunda dolgusuz base64url kodlaması önerilir ve zorunludur.

Yöntemler

Bu tabloda, Content API for Shopping yöntemleri ve bunların Merchant API'deki karşılıkları gösterilmektedir.

Content API for Shopping yöntemi Merchant API yöntemi Kullanılabilirlik ve notlar
products.get products.get İşlenmiş nihai ürünü alır.
products.list products.list Nihai, işlenmiş ürünleri listeler.
products.insert productInputs.insert Ürün girişi ekler. dataSource gerektirir.
products.update productInputs.patch Davranış önemli ölçüde farklıdır. Belirli bir ürün girişini günceller ve kalıcıdır.
products.delete productInputs.delete Belirli bir ürün girişini siler. dataSource gerektirir.
products.custombatch Kullanılamıyor Asenkron istekleri veya HTTP toplu işlemeyi kullanın.
productstatuses.get products.get productstatuses hizmeti kaldırılır. Durum bilgileri artık Product kaynağının bir parçasıdır.
productstatuses.list products.list productstatuses hizmeti kaldırılır. Durum bilgileri artık Product kaynağının bir parçasıdır.
productstatuses.custombatch Kullanılamıyor Asenkron istekleri veya HTTP toplu işlemeyi kullanın.

Ayrıntılı alan değişiklikleri

Bu tabloda, Merchant API'de değiştirilen, eklenen veya kaldırılan önemli alanlar vurgulanmaktadır.

Content API for Shopping Merchant API Açıklama
id name Ürünlerin birincil tanımlayıcısı artık REST kaynağı name. Merchant API tarafından kullanılan karakterleri veya URL için ayrılmış karakterleri içeren ürün adları söz konusu olduğunda dolgusuz base64url kodlaması önerilir ve zorunludur.
Üst düzey ürün verileri spesifikasyonu özellikleri (ör. title, price, link) productAttributes nesnesi title, price ve link gibi ürün özellikleri artık üst düzey alanlar değildir. Bu alanlar artık hem Product hem de ProductInput kaynaklarındaki productAttributes nesnesinde gruplandırılıyor. Bu sayede daha temiz ve düzenli bir kaynak yapısı elde edilir.
targetCountry feedLabel Kaynak adı, Merchant Center işleviyle uyumlu olması için artık targetCountry yerine feedLabel kullanıyor.
feedId dataSource (sorgu parametresi) dataSource adı artık tüm productInputs yazma yöntemleri (insert, update, delete) için zorunlu bir sorgu parametresidir.
channel Yok. Yalnızca yerel ürünler için legacy_local değerini kullanın. channel alanı artık Merchant API'de mevcut değil. Content API for Shopping'de LOCAL kanalına sahip ürünler için legacy_local alanı "true" olarak ayarlanmalıdır.
Kullanılamıyor versionNumber ProductInput'te, birincil veri kaynaklarına sırasız eklemeleri önlemek için kullanılabilecek yeni bir isteğe bağlı alan.
Tanımlanmış değer kümesine sahip string türü alanlar Tanımlanmış değer kümesine sahip enum türü alanlar Tanımlanmış değer kümesine sahip ürün özelliklerindeki alanlar (ör. excluded_destinations, availability) artık enum türünde.
gtin productAttributes.gtins Tekil dizeden (gtin) yinelenen dizeye (gtins) değiştirildi.
sizes productAttributes.size Yinelenen dize (sizes) tekil dize (size) olarak değiştirildi.
sizeType, additionalSizeType productAttributes.sizeTypes sizeType ve additionalSizeType, en fazla iki değer (ör. ["PETITE", "MATERNITY"]) kabul eden yinelenen bir SizeType enum (sizeTypes) ile değiştirildi.