Ürünleri taşıma

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

Bu kılavuz, entegrasyonunuzu Content API for Shopping'den taşımanıza yardımcı olmak için temel farklılıkları açıklar. Yeni özellikleri kullanmayla ilgili ayrıntılı bir kılavuz için Ürünlerinizi yönetme başlıklı makaleyi inceleyin.

Temel farklar

Merchant API'de ürünleri yönetme şeklinizde Content API for Shopping'e kıyasla yapılan en önemli değişiklikler şunlardır:

  • Giriş ve işlenmiş veriler için özel kaynaklar: Merchant API, ürün yönetimini iki kaynağa böler. Ürün verilerinizi eklemek, güncellemek ve silmek için ProductInput kaynağını kullanabilirsiniz. Google, girişlerinizi işledikten, kuralları uyguladıktan ve ek kaynaklardaki 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 doldurulmamış base64url (RFC 4648 Bölüm 5) kodlamasını kullanabilirsiniz. Ürün adları Merchant API tarafından kullanılan karakterleri veya URL'de ayrılmış karakterleri içeriyorsa kodlama zorunludur. Örneğin, ürün adları aşağıdaki karakterlerden herhangi birini içeriyorsa ürün adlarını kodlamanız gerekir:

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

  • Ö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 gelişmedir. Merchant API'de bir güncelleme, söz konusu ü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 dataSource sorgu parametresi gerektiriyor. Bu sayede, hangi veri kaynağını değiştirdiğiniz açıkça belirtiliyor. Bu özellik, ö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 bir kaynakla name tanımlanıyor. Biçim accounts/{account}/products/{product} şeklindedir.

  • Özel toplu işlemler 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 süreci sağlamak ve teklif çalma gibi sorunları önlemek için aşağıdaki önerilere uyun:

  • Veritabanınızı doldurun: Her ürün işleminden önce dataSources.list çağrısı yapmak yerine yerel veritabanınızda tek seferlik bir doldurma işlemi yapmanı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ştirip kullanma: Merchant API, etiket ve dil belirtmeden veri kaynağı oluşturmayı mümkün kılar. Bu nedenle, herhangi bir veri kaynağı etiketi ve diliyle ürün eklemeye olanak tanır. Herhangi bir etiket ve dil için tek bir veri kaynağı kullanmayı düşünebilirsiniz.

  • Ürünlerinizi koruma: Veri kaynağı kurallarını kullanıyorsanız güncellemeden veya silmeden önce bir ürünle ilişkili tam products.get çağrısı yaparak dataSource bulun. Bu, amaçlanan kaynağı değiştirdiğinizden emin olmanızı sağlar ve tekliflerin yanlışlıkla çalınmasını önler.

İstekler

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

İstek açıklaması Content API for Shopping Merchant API
Ürün edinme 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 işleme 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 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 işaretiyle (:) ayrılmış segmentlerden oluşan bir dize.
Biçim: channel:contentLanguage:targetCountry:offerId veya channel:contentLanguage:feedLabel:offerId.
Örnek: online:en:US:sku123
Bir REST kaynağı name dizesi.
Biçim: accounts/{account}/products/{product}. Burada {product}, contentLanguage~feedLabel~offerId.
Örnek: accounts/12345/products/en~US~sku123.
Kodlama: Merchant API veya URL'de ayrılmış karakterler tarafından kullanılan karakterleri içeren ürün kimlikleri için doldurulmamış 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 Son, 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 Bir ürünün birincil tanımlayıcısı artık REST kaynağı name. Merchant API veya URL'de ayrılmış karakterlerin kullanıldığı ürün adları için doldurulmamış 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 öğeler artık hem Product hem de ProductInput kaynaklarındaki productAttributes nesnesi içinde gruplandırılıyor. Bu sayede daha temiz ve düzenli bir kaynak yapısı sağlanır.
targetCountry feedLabel Kaynak adı, Merchant Center işlevleriyle 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 kullanın. channel alanı artık Merchant API'de mevcut değil. Content API for Shopping'de LOCAL kanalı olan ürünler bunun yerine legacy_local alanını doğru olarak ayarlamalıdır.
Kullanılamıyor versionNumber ProductInput üzerinde, birincil veri kaynaklarına sırasız eklemeleri önlemek için kullanılabilecek yeni bir isteğe bağlı alan.
string türü alanlar (tanımlanmış değer kümesiyle) enum türü alanlar (tanımlanmış değer kümesiyle) Belirli bir değer kümesi tanımlanmış ürün özelliklerindeki alanlar (ör. excluded_destinations, availability) artık enum türündedir.