Bạn có thể sử dụng API Merchant để lưu giữ thông tin khu vực cho hoạt động trực tuyến của mình sản phẩm được cập nhật. Điều này bao gồm việc cập nhật giá và tình trạng còn hàng, đồng thời xoá một sản phẩm không còn được bán ở đó.
Nếu là nền tảng thương mại điện tử, bạn có thể sử dụng API Merchant để tạo một giao diện nơi người bán có thể cập nhật giá và tình trạng còn hàng theo khu vực về sản phẩm của họ.
Cập nhật giá và tình trạng còn hàng theo khu vực
Sử dụng
regionalInventories.insert
để cập nhật thông tin theo khu vực cho một sản phẩm. Cuộc gọi này sẽ thay thế toàn bộ
RegionalInventory
hãy nhớ bao gồm tất cả các trường. Xem bài viết Thêm thông tin khu vực vào
trực tuyến cho một
mã mẫu và nhiều chi tiết khác.
Xem các khu vực hiện có của bạn
Phần này giải thích cách xem các khu vực liên kết với một sản phẩm hoặc tài khoản.
Theo sản phẩm
Sử dụng
regionalInventories.list
để đăng tất cả kho hàng tại khu vực liên kết với một sản phẩm cụ thể trong
tài khoản. Sử dụng trường region
để xác định khu vực cho từng kho hàng theo khu vực
đề cập đến.
Sau đây là ví dụ mẫu mà bạn có thể sử dụng để đăng kho hàng tại khu vực cho một sản phẩm:
Java
public static void listRegionalInventories(Config config, String productId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
RegionalInventoryServiceSettings regionalInventoryServiceSettings =
RegionalInventoryServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getMerchantId().toString(), productId);
try (RegionalInventoryServiceClient regionalInventoryServiceClient =
RegionalInventoryServiceClient.create(regionalInventoryServiceSettings)) {
// The parent product has the format: accounts/{account}/products/{product}
ListRegionalInventoriesRequest request =
ListRegionalInventoriesRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list regional inventory request:");
ListRegionalInventoriesPagedResponse response =
regionalInventoryServiceClient.listRegionalInventories(request);
int count = 0;
// Iterates over all rows in all pages and prints the regional inventory
// in each row.
for (RegionalInventory element : response.iterateAll()) {
System.out.println(element);
count++;
}
System.out.print("The following count of elements were returned: ");
System.out.println(count);
} catch (Exception e) {
System.out.println(e);
}
}
cURL
curl --location
'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/regionalInventories' \
--header 'Authorization: Bearer <API_TOKEN>'
PHP
class ListRegionalInventories
{
// ENSURE you fill in the merchant account and product ID for the sample to
// work.
private const PARENT = 'accounts/[INSERT_ACCOUNT_HERE]/products/[INSERT_PRODUCT_HERE]';
/**
* Lists all the regional inventories of a given product.
*
* @param string $parent The `name` of the parent product to list `RegionalInventory`
* resources for.
* Format: `accounts/{account}/products/{product}`
*/
function listRegionalInventoriesSample(string $parent): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$regionalInventoryServiceClient = new RegionalInventoryServiceClient($options);
// Calls the API and catches and prints any network failures/errors.
try {
// Page size is set to the default value. If you are returned more
// responses than your page size, this code will automatically
// re-call the service with the `pageToken` until all responses
// are returned.
$parameters = ['pageSize' => 25000];
/** @var PagedListResponse $response */
$response =
$regionalInventoryServiceClient->listRegionalInventories($parent, $parameters);
/** @var RegionalInventory $element */
foreach ($response as $element) {
printf('RegionalInventory data: %s%s', $element->serializeToJsonString(), PHP_EOL);
}
} catch (ApiException $ex) {
printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
}
}
// Helper to execute the sample.
function callSample(): void
{
// Lists all the regional inventories of the parent product.
$this->listRegionalInventoriesSample($this::PARENT);
}
}
Python
from examples.authentication import generate_user_credentials
from google.shopping import merchant_inventories_v1beta
# ENSURE you fill in the merchant account and product ID for the sample to
# work.
_ACCOUNT = "[INSERT_ACCOUNT_HERE]"
_PRODUCT = "[INSERT_PRODUCT_HERE]"
_PARENT = f"accounts/{_ACCOUNT}/products/{_PRODUCT}"
def list_regional_inventories():
"""Lists the `RegionalInventory` resources for the given product.
The response might contain fewer items than specified by
`pageSize`. If `pageToken` was returned in previous request, it can be
used to obtain additional results.
`RegionalInventory` resources are listed per product for a given account.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
credentials=credentials)
# Creates the request.
# Page size is set to the default value.
request = merchant_inventories_v1beta.ListRegionalInventoriesRequest(
parent=_PARENT,
page_size=25000
)
try:
# Makes the request and catch and print any error messages.
# If you are returned more responses than your page size, this code
# will automatically re-call the service with the `pageToken` until all
# responses are returned.
page_result = client.list_regional_inventories(request=request)
# Print the response.
for response in page_result:
print(response)
except Exception as e:
print("List failed")
print(e)
Theo tài khoản
Bạn có thể sử dụng
Phương thức regions.list
trong
Content API for Shopping để xem tất cả các khu vực cho tài khoản của bạn.
Xóa khu vực
Sau đây là cách xoá những khu vực nơi bạn không còn bán sản phẩm nữa.
Từ sản phẩm
Nếu một sản phẩm không còn được bán ở một khu vực cụ thể, bạn nên xoá phần đó
thông tin về kho hàng tại khu vực khỏi sản phẩm. Bạn có thể sử dụng
regionalInventories.delete
để xoá một mục nhập kho hàng theo khu vực cụ thể khỏi một sản phẩm.
Dưới đây là ví dụ về cách xoá mục nhập kho hàng tại khu vực khỏi một sản phẩm:
Java
public static void deleteRegionalInventory(Config config, String productId, String regionId)
throws Exception {
// TODO(brothman): Please add more line comments to explain what each significant step is doing.
// For example:
// Obtains OAuth tokens based on the configuration.
// Creates service settings using the credentials above. Etc
GoogleCredentials credential = new Authenticator().authenticate();
RegionalInventoryServiceSettings regionalInventoryServiceSettings =
RegionalInventoryServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String name =
RegionalInventoryName.newBuilder()
.setAccount(config.getMerchantId().toString())
.setProduct(productId)
.setRegion(regionId)
.build()
.toString();
try (RegionalInventoryServiceClient regionalInventoryServiceClient =
RegionalInventoryServiceClient.create(regionalInventoryServiceSettings)) {
DeleteRegionalInventoryRequest request =
DeleteRegionalInventoryRequest.newBuilder().setName(name).build();
System.out.println("Sending deleteRegionalInventory request");
regionalInventoryServiceClient.deleteRegionalInventory(
request); // no response returned on success
System.out.println(
"Delete successful, note that it may take up to 30 minutes for the delete to update in"
+ " the system.");
} catch (Exception e) {
System.out.println(e);
}
}
cURL
curl --location --request DELETE
'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/regionalInventories/123456' \
--header 'Authorization: Bearer <API_TOKEN>'
PHP
class DeleteRegionalInventory
{
// ENSURE you fill in the merchant account, product, and region ID for the
// sample to work.
private const ACCOUNT = 'INSERT_ACCOUNT_ID_HERE';
private const PRODUCT = 'INSERT_PRODUCT_ID_HERE';
private const REGION = 'INSERT_REGION_ID_HERE';
/**
* Deletes a specific regional inventory of a given product.
*
* @param string $formattedName The name of the `RegionalInventory` resource
* to delete.
* Format: `accounts/{account}/products/{product}/regionalInventories/{region}`
* Please see {@see RegionalInventoryServiceClient::regionalInventoryName()}
* for help formatting this field.
*/
function deleteRegionalInventorySample(string $formattedName): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$regionalInventoryServiceClient = new RegionalInventoryServiceClient($options);
// Calls the API and catches and prints any network failures/errors.
try {
$regionalInventoryServiceClient->deleteRegionalInventory($formattedName);
print 'Delete call completed successfully.' . PHP_EOL;
} catch (ApiException $ex) {
printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
}
}
/**
* Helper to execute the sample.
*/
function callSample(): void
{
// These variables are defined at the top of the file.
$formattedName = RegionalInventoryServiceClient::regionalInventoryName(
$this::ACCOUNT,
$this::PRODUCT,
$this::REGION
);
// Deletes the specific regional inventory of the parent product.
$this->deleteRegionalInventorySample($formattedName);
}
}
Python
from examples.authentication import generate_user_credentials
from google.shopping import merchant_inventories_v1beta
# ENSURE you fill in the merchant account and product ID and region ID
# for the sample to work.
_ACCOUNT = "[INSERT_ACCOUNT_HERE]"
_PRODUCT = "[INSERT_PRODUCT_HERE]"
_REGION = "[INSERT_REGION_HERE]"
_NAME = f"accounts/{_ACCOUNT}/products/{_PRODUCT}/regionalInventories/{_REGION}"
def delete_regional_inventory():
"""Deletes the specified `RegionalInventory` resource from the given product.
It might take up to an hour for the `RegionalInventory` to be deleted
from the specific product. Once you have received a successful delete
response, wait for that period before attempting a delete again.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
credentials=credentials)
# Creates the request.
request = merchant_inventories_v1beta.DeleteRegionalInventoryRequest(
name=_NAME,
)
# Makes the request and catch and print any error messages.
try:
client.delete_regional_inventory(request=request)
print("Delete successful")
except Exception as e:
print("Delete failed")
print(e)
Có thể mất tối đa 30 phút để xoá mục nhập RegionalInventory
từ một sản phẩm.
Lệnh gọi này chỉ xoá thông tin của region
được chỉ định, khỏi
product
được chỉ định.
Từ tài khoản
Bạn có thể sử dụng
Phương thức regions.delete
trong Content API for Shopping để xoá những khu vực nơi bạn không còn bán
sản phẩm từ toàn bộ tài khoản người bán của mình.