คุณสามารถใช้ Merchant Inventories API เพื่อระบุว่าผลิตภัณฑ์มีจำหน่ายในหน้าร้านจริง
ผลิตภัณฑ์ในร้านต้องมีข้อมูลเพิ่มเติม เช่น storeCode
และ
availability
ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องที่คุณระบุได้ที่ข้อกำหนดในการจัดทำข้อมูลสินค้าคงคลังในร้าน
ขั้นตอนในการเพิ่มข้อมูลในร้านไปยังผลิตภัณฑ์ในร้านมีดังนี้
เชื่อมต่อธุรกิจกับ Merchant Center
คุณต้องมี Business Profile และบัญชีผู้ขายเพื่อแสดงผลิตภัณฑ์ในร้านบน Google
ตั้งค่าบัญชีสำหรับข้อมูลผลิตภัณฑ์ในร้าน และกำหนดค่าบัญชีสำหรับสินค้าคงคลังในร้าน
หลังจากตั้งค่าบัญชีแล้ว ให้ลิงก์ Business Profile กับบัญชี Merchant Center
ลงชื่อสมัครใช้ข้อมูลผลิตภัณฑ์ในร้านที่แสดงฟรี
หลังจากลิงก์ Business Profile กับบัญชี Merchant Center แล้ว คุณจะลงทะเบียนข้อมูลผลิตภัณฑ์ในร้านที่แสดงฟรีได้ โปรดปฏิบัติตามนโยบายข้อมูลที่แสดงฟรี
การร่วมใช้ข้อมูลผลิตภัณฑ์ในร้านที่แสดงฟรีจะทำให้ผลิตภัณฑ์ในร้านค้าของคุณปรากฏในข้อมูลที่แสดงฟรีในผลิตภัณฑ์และบริการของ Google ได้
ยืนยันว่าคุณมีผลิตภัณฑ์ในร้าน
คุณสามารถใช้ Merchant API เพื่อกรองผลิตภัณฑ์ในบัญชีตาม channel
เพื่อยืนยันว่าคุณมีผลิตภัณฑ์ในร้านอยู่แล้ว ผลิตภัณฑ์ในร้านต้องมี local
เป็นค่าสำหรับ channel
หากต้องการเพิ่มผลิตภัณฑ์ในร้านลงในบัญชี ให้ใช้ Merchant API เพื่อแทรกผลิตภัณฑ์ใหม่ หรือสร้างแหล่งข้อมูล
ต่อไปนี้คือตัวอย่างคำขอเพื่อดึงข้อมูลผลิตภัณฑ์ในร้านทั้งหมดในบัญชี
POST https://merchantapi.googleapis.com/reports/v1beta/accounts/{ACCOUNT_ID}/reports:search
{
"query": "SELECT id, offer_id, title, channel FROM product_view WHERE channel='LOCAL'"
}
แทรกข้อมูลในร้านค้า
หลังจากเพิ่มผลิตภัณฑ์ในร้านในบัญชี Merchant Center แล้ว คุณจะเพิ่มข้อมูลในร้านได้ เช่น store_code
, price
และ availability
ต่อไปนี้คือตัวอย่างที่คุณสามารถใช้เพื่อเพิ่มข้อมูลในร้านค้าไปยังผลิตภัณฑ์ด้วย
localInventories.insert
Java
public static void insertLocalInventory(Config config, String productId, String storeCode)
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)) {
Price price = Price.newBuilder().setAmountMicros(33_450_000).setCurrencyCode("USD").build();
InsertLocalInventoryRequest request =
InsertLocalInventoryRequest.newBuilder()
.setParent(parent)
.setLocalInventory(
LocalInventory.newBuilder()
.setAvailability("out of stock")
.setStoreCode(storeCode)
.setPrice(price)
.build())
.build();
System.out.println("Sending insert LocalInventory request");
LocalInventory response = localInventoryServiceClient.insertLocalInventory(request);
System.out.println("Inserted LocalInventory Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
cURL
curl --location
'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/localInventories:insert' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
"storeCode": "123456",
"price": {
"amountMicros": "33450000",
"currencyCode": "USD"
},
"availability": "out of stock"
}'
PHP
class InsertLocalInventory
{
// 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]';
// ENSURE you fill in store code for the sample to work.
private const LOCAL_INVENTORY_STORE_CODE = 'INSERT_STORE_CODE_HERE';
/**
* Inserts a local inventory underneath the parent product.
*
* @param string $parent The account and product where this inventory will be inserted.
* Format: `accounts/{account}/products/{product}`
* @param string $localInventoryRegion
* ID of the region for this
* `LocalInventory` resource. See the [Local availability and
* pricing](https://support.google.com/merchants/answer/9698880) for more details.
*/
public function insertLocalInventorySample(
string $parent,
string $localInventoryStoreCode
): 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);
// Creates a price object.
$price = new Price(
[
'currency_code' => "USD",
'amount_micros' => 33450000,
]
);
// Creates a new local inventory object.
$localInventory = (new LocalInventory())
->setStoreCode($localInventoryStoreCode)
->setAvailability("in stock")
->setPrice($price);
// Calls the API and catches and prints any network failures/errors.
try {
/** @var LocalInventory $response */
$response = $localInventoryServiceClient->insertLocalInventory(
$parent,
$localInventory
);
printf('Response data: %s%s', $response->serializeToJsonString(), PHP_EOL);
} catch (ApiException $ex) {
printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
}
}
/**
* Helper to execute the sample.
*/
public function callSample(): void
{
// Makes the call to insert the local inventory to the parent product
// for the given region.
$this->insertLocalInventorySample($this::PARENT, $this::LOCAL_INVENTORY_STORE_CODE);
}
}
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}"
# ENSURE you fill in store code for the sample to work.
_STORE_CODE = "INSERT_STORE_CODE_HERE"
def insert_local_inventory():
"""Inserts a `LocalInventory` to a given product.
Replaces the full `LocalInventory` resource if an entry with the same
`region` already exists for the product.
It might take up to 30 minutes for the new or updated `LocalInventory`
resource to appear in products.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.LocalInventoryServiceClient(
credentials=credentials)
# Creates a Local inventory and populate its attributes.
local_inventory = merchant_inventories_v1beta.LocalInventory()
local_inventory.store_code = _STORE_CODE
local_inventory.availability = "in stock"
local_inventory.price = {
"currency_code": "USD",
"amount_micros": 33450000,
}
# Creates the request.
request = merchant_inventories_v1beta.InsertLocalInventoryRequest(
parent=_PARENT,
local_inventory=local_inventory,
)
# Makes the request and catch and print any error messages.
try:
response = client.insert_local_inventory(request=request)
print("Insert successful")
print(response)
except Exception as e:
print("Insert failed")
print(e)
การเรียกใช้นี้จะแสดงผลค่าเดียวกับที่คุณส่ง และอาจไม่ได้แสดงข้อมูลสินค้าคงคลังสุดท้ายอย่างสมบูรณ์
ระบบอาจใช้เวลาถึง 30 นาทีกว่าที่ LocalInventory
ใหม่จะปรากฏในผลิตภัณฑ์