Merchant API'yi mevcut Content API for Shopping uygulamanızla entegre etmek için bu kılavuzu kullanabilirsiniz.
Başlayın
Merchant API ve alt API'leri hakkında ayrıntılı bilgi için Merchant API tasarımını inceleyin.
Merchant API'yi kullanmaya başlamak için istek URL'lerinizi aşağıdaki biçime getirin:
https://merchantapi.googleapis.com/{sub-API}/{version}/{resource name}:{method}…
Daha fazla bilgi için hızlı başlangıç kılavuzuna ve Merchant API referansına bakın.
gRPC desteği
Merchant API, gRPC ve REST'i destekler. Merchant API için gRPC'yi ve Content API for Shopping için REST'i aynı anda kullanabilirsiniz.
Merchant API istemci kitaplıkları gRPC gerektirir.
Daha fazla bilgi için gRPC kullanma bölümüne bakın.
Uyumluluk
Bu kılavuzda, Merchant API'nin tamamı için geçerli olan genel değişiklikler açıklanmaktadır. Belirli özelliklerde yapılan değişiklikler için aşağıdaki kılavuzlara bakın:
- Hesap yönetimini taşıma
- Kargo ayarlarını taşıma
- Ürün yönetimini taşıma
- Veri kaynağı yönetimini taşıma
- Envanter yönetimini taşıma
- Promosyon yönetimini taşıma
- Raporlama yönetimini taşıma
- Dönüşüm kaynakları yönetimini taşıma
- Yerel feed'ler iş ortağı yönetimini taşıma
Merchant API, mevcut Content API for Shopping 2.1 özellikleriyle birlikte çalışacak şekilde tasarlanmıştır.
Örneğin, mevcut Content API for Shopping 2.1 sürümünüzle products
birlikte Merchant Inventories API'yi kullanabilirsiniz. Yeni bir yerel ürünü (yerel bir mağazada sattığınız) yüklemek için Content API for Shopping'i, ardından ürünün mağaza içi bilgilerini yönetmek için Merchant Inventories API LocalInventory
kaynağını kullanabilirsiniz.
Toplu istekler
Merchant API, Content API for Shopping'te yer alan customBatch
yöntemini desteklemez. Bunun yerine Tek seferde birden fazla istek gönderme başlıklı makaleyi inceleyin veya çağrılarınızı eşzamansız olarak yürütün.
Aşağıdaki örnekte ürün girişinin nasıl ekleneceği gösterilmektedir.
Java
public static void asyncInsertProductInput(Config config, String dataSource) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
ProductInputsServiceSettings productInputsServiceSettings =
ProductInputsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify where to insert the product.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (ProductInputsServiceClient productInputsServiceClient =
ProductInputsServiceClient.create(productInputsServiceSettings)) {
// Creates five insert product input requests with random product IDs.
List<InsertProductInputRequest> requests = new ArrayList<>(5);
for (int i = 0; i < 5; i++) {
InsertProductInputRequest request =
InsertProductInputRequest.newBuilder()
.setParent(parent)
// You can only insert products into datasource types of Input "API" and "FILE", and
// of Type "Primary" or "Supplemental."
// This field takes the `name` field of the datasource.
.setDataSource(dataSource)
// If this product is already owned by another datasource, when re-inserting, the
// new datasource will take ownership of the product.
.setProductInput(createRandomProduct())
.build();
requests.add(request);
}
System.out.println("Sending insert product input requests");
List<ApiFuture<ProductInput>> futures =
requests.stream()
.map(
request ->
productInputsServiceClient.insertProductInputCallable().futureCall(request))
.collect(Collectors.toList());
// Creates callback to handle the responses when all are ready.
ApiFuture<List<ProductInput>> responses = ApiFutures.allAsList(futures);
ApiFutures.addCallback(
responses,
new ApiFutureCallback<List<ProductInput>>() {
@Override
public void onSuccess(List<ProductInput> results) {
System.out.println("Inserted products below");
System.out.println(results);
}
@Override
public void onFailure(Throwable throwable) {
System.out.println(throwable);
}
},
MoreExecutors.directExecutor());
} catch (Exception e) {
System.out.println(e);
}
}
Content API'de customBatch
kullanıyorsanız ve Merchant API için bu özelliğe ihtiyacınız varsa geri bildiriminizde nedenini bize bildirin.
Tanımlayıcılar
Google'ın API iyileştirme ilkelerine uygunluk sağlamak için Merchant API kaynaklarının tanımlayıcılarında bazı değişiklikler yaptık.
ad, kimliğin yerini alır
Tüm Merchant API kaynakları, benzersiz tanımlayıcı olarak name
alanını kullanır.
Aşağıda, aramalarınızda name
alanının nasıl kullanılacağına dair bir örnek verilmiştir:
POST https://merchantapi.googleapis.com/inventories/v1beta/{parent}/regionalInventories:insert
Bu yeni name
alanı, Merchant API'deki tüm okuma ve yazma çağrıları için kaynak tanımlayıcısı olarak döndürülür.
Örneğin, name
değerini bir kaynaktan almak için bir getName()
yöntemi uygulayın ve name
değerini satıcı ve kaynak kimliklerinden kendiniz oluşturmak yerine çıktıyı bir değişkende saklayın.
alt kaynaklar için üst alan adları
Merchant API'de tüm alt kaynaklarda parent
alanı bulunur. Ebeveynin tüm kaynağını iletmek yerine, alt öğeyi ekleyeceğiniz kaynağın name
değerini belirtmek için parent
alanını kullanabilirsiniz. Ayrıca, parent
alanını list
yöntemleriyle kullanarak ilgili parent
öğesinin alt kaynaklarını da listeleyebilirsiniz.
Örneğin, belirli bir ürünün yerel envanterlerini listelemek için list
yönteminin parent
alanında ürünün name
değerini belirtin. Bu durumda, verilen product
, döndürülen LocalInventory
kaynaklarının parent
öğesidir.
Türler
Merchant API alt API'leri arasında paylaşılan bazı yaygın türler aşağıda verilmiştir.
Fiyat
Satıcı Ortak paketinde Price
için yapılan değişiklikleri aşağıda bulabilirsiniz:
Content API | Merchant API | |
---|---|---|
Tutar alanı | value:string |
amountMicros:int64 |
Para birimi alanı | currency:string
|
currencyCode:string |
Price
tutarı artık mikro cinsinden kaydedilir. 1 milyon mikro, para biriminizin standart birimine eşdeğerdir.
Alışveriş için Content API'de Price
, dize biçiminde bir ondalık sayıydı.
Tutar alanı adı value
yerine amountMicros
olarak değiştirildi
Para birimi alanı adı currency
yerine currencyCode
olarak değiştirildi. Biçim ISO 4217 olarak kalır.