คุณสามารถใช้ Merchant Inventories API เพื่อเก็บข้อมูลในร้านค้าสำหรับ
ผลิตภัณฑ์ในร้านล่าสุดอยู่เสมอ ซึ่งรวมถึงการอัปเดต price
และ availability
และนำร้านค้าที่ไม่มีผลิตภัณฑ์ขายแล้วออก
หากคุณเป็นผู้ให้บริการบุคคลที่สาม คุณจะใช้ Merchant Inventories API เพื่อทำสิ่งต่อไปนี้ได้ สร้างอินเทอร์เฟซสำหรับผู้ขายเพื่ออัปเดตความพร้อมจำหน่ายสินค้าในร้านค้า ผลิตภัณฑ์ของตน
อัปเดตราคาและความพร้อมจำหน่ายสินค้าตามร้านค้า
ใช้
localInventories.insert
เพื่ออัปเดตข้อมูลในร้านค้าสำหรับผลิตภัณฑ์
การเรียกนี้แทนที่
LocalInventory
โปรดตรวจสอบว่าคุณได้ระบุช่องทุกช่องแล้ว โปรดดูเพิ่มข้อมูลร้านค้าลงใน
ผลิตภัณฑ์ในร้านสำหรับรหัส
ตัวอย่างและรายละเอียดเพิ่มเติม
ดูร้านค้าที่มีอยู่
ส่วนนี้จะอธิบายวิธีดูร้านค้าที่เชื่อมโยงกับผลิตภัณฑ์หรือ ของคุณได้
ตามผลิตภัณฑ์
ใช้
localInventories.list
เพื่อแสดงสินค้าคงคลังในร้านทั้งหมดที่เชื่อมโยงกับ product
ที่เฉพาะเจาะจงในบัญชี
ของคุณได้ การเรียกนี้แสดงทรัพยากร LocalInventory
แบบเต็ม ใช้ store_code
เพื่อระบุร้านค้าแต่ละแห่ง
ต่อไปนี้คือตัวอย่างที่ใช้แสดงรายการสินค้าคงคลังในร้านสำหรับผลิตภัณฑ์ได้
Java
public static void listLocalInventories(Config config, String productId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
LocalInventoryServiceSettings localInventoryServiceSettings =
LocalInventoryServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getMerchantId().toString(), productId);
try (LocalInventoryServiceClient localInventoryServiceClient =
LocalInventoryServiceClient.create(localInventoryServiceSettings)) {
// The parent product has the format: accounts/{account}/products/{product}
ListLocalInventoriesRequest request =
ListLocalInventoriesRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list Local inventory request:");
ListLocalInventoriesPagedResponse response =
localInventoryServiceClient.listLocalInventories(request);
int count = 0;
// Iterates over all rows in all pages and prints the Local inventory
// in each row.
for (LocalInventory 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/localInventories' \
--header 'Authorization: Bearer <API_TOKEN>'
PHP
class ListLocalInventories
{
// 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 local inventories of a given product.
*
* @param string $parent The `name` of the parent product to list `LocalInventory`
* resources for.
* Format: `accounts/{account}/products/{product}`
*/
function listLocalInventoriesSample(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.
$localInventoryServiceClient = new LocalInventoryServiceClient($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 =
$localInventoryServiceClient->listLocalInventories($parent, $parameters);
/** @var LocalInventory $element */
foreach ($response as $element) {
printf('LocalInventory 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 local inventories of the parent product.
$this->listLocalInventoriesSample($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_local_inventories():
"""Lists the `LocalInventory` 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.
`LocalInventory` resources are listed per product for a given account.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.LocalInventoryServiceClient(
credentials=credentials)
# Creates the request.
# Page size is set to the default value.
request = merchant_inventories_v1beta.ListLocalInventoriesRequest(
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_local_inventories(request=request)
# Print the response.
for response in page_result:
print(response)
except Exception as e:
print("List failed")
print(e)
ตามบัญชี
คุณสามารถดูร้านค้าทั้งหมดที่เชื่อมโยงกับบัญชีได้ในธุรกิจ โปรไฟล์ หรือด้วย Google My Business API คุณจะใช้ Merchant API เพื่อดูหรือ จัดการร้านค้าที่ระดับบัญชี เนื่องจากข้อมูลนี้มาจาก Business Profile
นำร้านค้าออก
ต่อไปนี้คือวิธีนำร้านค้าที่คุณไม่ได้ขายผลิตภัณฑ์แล้วออก
จากผลิตภัณฑ์
หากผลิตภัณฑ์ไม่ได้ขายในร้านค้าใดร้านหนึ่งแล้ว คุณควรนำผลิตภัณฑ์ดังกล่าวออก
รายการสินค้าคงคลังสำหรับร้านค้านั้นจากผลิตภัณฑ์ คุณสามารถใช้
localInventories.delete
ในการนำรายการสินค้าคงคลังในร้านออกจากผลิตภัณฑ์
ต่อไปนี้คือตัวอย่างที่คุณใช้นำรายการสินค้าคงคลังในร้านออกจากผลิตภัณฑ์ได้
Java
public static void deleteLocalInventory(Config config, String productId, String storeCode)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
LocalInventoryServiceSettings localInventoryServiceSettings =
LocalInventoryServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String name =
LocalInventoryName.newBuilder()
.setAccount(config.getMerchantId().toString())
.setProduct(productId)
.setStoreCode(storeCode)
.build()
.toString();
try (LocalInventoryServiceClient localInventoryServiceClient =
LocalInventoryServiceClient.create(localInventoryServiceSettings)) {
DeleteLocalInventoryRequest request =
DeleteLocalInventoryRequest.newBuilder().setName(name).build();
System.out.println("Sending deleteLocalInventory request");
localInventoryServiceClient.deleteLocalInventory(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/localInventories/123456' \
--header 'Authorization: Bearer <API_TOKEN>'
PHP
class DeleteLocalInventory
{
// 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 STORE_CODE = 'INSERT_STORE_CODE_HERE';
/**
* Deletes a specific local inventory of a given product.
*
* @param string $formattedName The name of the `LocalInventory` resource
* to delete.
* Format: `accounts/{account}/products/{product}/localInventories/{store_code}`
* Please see {@see LocalInventoryServiceClient::localInventoryName()}
* for help formatting this field.
*/
function deleteLocalInventorySample(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.
$localInventoryServiceClient = new LocalInventoryServiceClient($options);
// Calls the API and catches and prints any network failures/errors.
try {
$localInventoryServiceClient->deleteLocalInventory($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 = LocalInventoryServiceClient::localInventoryName(
$this::ACCOUNT,
$this::PRODUCT,
$this::STORE_CODE
);
// Deletes the specific local inventory of the parent product.
$this->deleteLocalInventorySample($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 store code
# for the sample to work.
_ACCOUNT = "[INSERT_ACCOUNT_HERE]"
_PRODUCT = "[INSERT_PRODUCT_HERE]"
_STORE_CODE = "[INSERT_STORE_CODE_HERE]"
_NAME = (f"accounts/{_ACCOUNT}/products/{_PRODUCT}/localInventories/"
f"{_STORE_CODE}")
def delete_local_inventory():
"""Deletes the specified `LocalInventory` resource from the given product.
It might take up to an hour for the `LocalInventory` 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.LocalInventoryServiceClient(
credentials=credentials)
# Creates the request.
request = merchant_inventories_v1beta.DeleteLocalInventoryRequest(name=_NAME)
# Makes the request and catch and print any error messages.
try:
client.delete_local_inventory(request=request)
print("Delete successful")
except Exception as e:
print("Delete failed")
print(e)
การเรียกนี้จะนำข้อมูลสำหรับร้านค้าที่ระบุเท่านั้น ออกจาก ผลิตภัณฑ์ที่ระบุ
จากบัญชี
คุณนำร้านค้าที่ไม่ได้ขายผลิตภัณฑ์แล้วออกจากบัญชีได้ โดยนําออกจาก Business Profile โปรดดู ปิดหรือนำธุรกิจออกสำหรับ ข้อมูลเพิ่มเติม