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
ProductInputkaynağı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 okunurProductkaynağını kullanabilirsiniz.Ürün adları için kodlama: Hem
ProductInput.namehem deProduct.namealanları 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:
productstatuseshizmeti kaldırılır. Ürün doğrulama sorunları ve hedef durumları artık doğrudanproductStatusalanındakiProductkaynağına dahil edilerek veri alma işlemi basitleştirildi.Öngörülebilir ürün güncellemeleri: Yeni
productInputs.patchyö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şlenenProductkaynağı yerineProductInputkaynağına uygulanır.Daha temiz veri yönetimi için veri kaynağınızı seçin: Tüm
productInputsyazma işlemleri artık birdataSourcesorgu 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
idalanı yerine RESTful kaynağınameile tanımlanıyor. Biçim şu şekildedir:accounts/{account}/products/{product}.Özel toplu işlem yok:
custombatchyö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.
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.listyö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 birdataSourceadı 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
dataSourcedeğerini bulmak içinproducts.getyö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. |