Anda dapat menggunakan panduan ini untuk mengintegrasikan Merchant API dengan penerapan Content API for Shopping yang ada.
Mulai
Lihat desain Merchant API untuk mengetahui detail tentang Merchant API, dan sub-API-nya.
Untuk mulai menggunakan Merchant API, ubah URL permintaan Anda ke format berikut:
https://merchantapi.googleapis.com/{sub-API}/{version}/{resource name}:{method}…
Lihat panduan memulai dan referensi Merchant API untuk mengetahui informasi selengkapnya.
Dukungan gRPC
Merchant API mendukung gRPC dan REST. Anda dapat menggunakan gRPC untuk Merchant API dan REST untuk Content API for Shopping secara bersamaan.
Library klien Merchant API memerlukan gRPC.
Lihat menggunakan gRPC untuk mengetahui informasi selengkapnya.
Kompatibilitas
Panduan ini menjelaskan perubahan umum yang berlaku untuk seluruh Merchant API. Lihat panduan berikut untuk mengetahui perubahan pada fitur tertentu:
- Memigrasikan pengelolaan akun
- Memigrasikan setelan pengiriman
- Memigrasikan pengelolaan produk
- Memigrasikan pengelolaan sumber data
- Memigrasikan pengelolaan inventaris
- Memigrasikan pengelolaan promosi
- Memigrasikan pengelolaan pelaporan
- Memigrasikan pengelolaan sumber konversi
- Memigrasikan pengelolaan kemitraan feed lokal
Merchant API dirancang untuk berfungsi bersama fitur Content API for Shopping versi 2.1 yang ada.
Misalnya, Anda dapat menggunakan Merchant Inventories API bersama dengan implementasi
Content API for Shopping v2.1
products
yang ada. Anda
dapat menggunakan Content API for Shopping untuk
mengupload produk lokal baru
(yang Anda jual di toko lokal), lalu menggunakan resource Merchant Inventories API
LocalInventory
untuk mengelola informasi di toko untuk produk tersebut.
Permintaan batch
Merchant API tidak mendukung metode customBatch
yang ditampilkan di
Content API for Shopping. Sebagai gantinya, lihat
Mengirim beberapa permintaan sekaligus atau
eksekusi panggilan secara asinkron.
Contoh berikut menunjukkan cara menyisipkan input produk.
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);
}
}
Jika Anda menggunakan customBatch
di Content API, dan memerlukan fitur ini untuk Merchant
API, beri tahu kami alasannya dalam masukan Anda.
Pengenal
Agar selaras dengan prinsip peningkatan API Google, kami telah membuat beberapa perubahan pada ID untuk resource Merchant API.
nama menggantikan ID
Semua resource Merchant API menggunakan kolom name
sebagai ID uniknya.
Berikut adalah contoh cara menggunakan kolom name
dalam panggilan Anda:
POST https://merchantapi.googleapis.com/inventories/v1beta/{parent}/regionalInventories:insert
Kolom name
baru ini ditampilkan sebagai ID resource untuk semua panggilan baca dan
tulis di Merchant API.
Misalnya, terapkan metode getName()
untuk mengambil name
dari
resource, dan simpan output sebagai variabel, bukan membuat name
dari ID penjual dan resource sendiri.
kolom induk untuk resource turunan
Di Merchant API, semua resource turunan memiliki kolom parent
. Anda dapat menggunakan
kolom parent
untuk menentukan name
resource tempat menyisipkan turunan,
bukan meneruskan seluruh resource induk. Anda juga dapat menggunakan kolom parent
dengan metode list
untuk mencantumkan resource turunan dari parent
tersebut.
Misalnya, untuk mencantumkan inventaris lokal untuk produk tertentu, tentukan
name
produk di
kolom
parent
untuk
metode
list
. Dalam hal ini, product
yang diberikan adalah parent
dari resource
LocalInventory
yang ditampilkan.
Jenis
Berikut adalah beberapa jenis umum yang dibagikan di seluruh sub-API Merchant API.
Harga
Berikut yang berubah untuk Price
dalam paket Merchant Common:
Content API | Merchant API | |
---|---|---|
Kolom jumlah | value:string |
amountMicros:int64 |
Kolom mata uang | currency:string
|
currencyCode:string |
Jumlah Price
kini dicatat dalam mikro, dengan 1 juta mikro setara dengan unit standar mata uang Anda.
Di Content API for Shopping, Price
adalah angka desimal dalam bentuk
string.
Nama kolom jumlah telah diubah dari value
menjadi amountMicros
Nama kolom mata uang telah diubah dari currency
menjadi currencyCode
. Formatnya
tetap ISO 4217.