Merchant Inventories API를 사용하여 제품 정보가 지역별로 다르다는 것을 나타낼 수 있습니다. 예를 들어 장소에 따라 다른 제품을 판매하거나 구매한 위치에 따라 동일한 제품에 다른 가격을 청구할 수 있습니다.
자세한 내용은 지역별 재고 및 가격을 참고하세요.
지역 정보는 온라인에서 판매하는 제품에 적용됩니다. 매장 제품에 관한 자세한 내용은 오프라인 제품에 매장 정보를 추가를 참고하세요.
온라인 제품에 지역 정보를 추가하는 단계는 다음과 같습니다.
지역 만들기
제품에 지역 정보를 추가하려면 먼저 판매자 계정의 지역을 설정해야 합니다. Merchant API regions
리소스를 사용하여 새 지역을 만들 수 있습니다.
코드 샘플과 리전 관리에 관한 자세한 내용은 리전 가이드를 참고하세요.
온라인 제품이 있는지 확인
Merchant API를 사용하여 channel
로 계정의 제품을 필터링하여 기존 온라인 제품이 있는지 확인할 수 있습니다. 온라인 제품의 channel
값은 online
여야 합니다.
계정에 온라인 제품을 추가해야 하는 경우 Merchant API를 사용하여 새 제품을 삽입하거나 데이터 소스를 만듭니다.
지역 정보 삽입
판매자 계정에 온라인 제품이 있으면 region
, price
, availability
와 같은 지역 정보를 추가할 수 있습니다.
다음은 regionalInventories.insert
를 사용하여 제품에 지역 정보를 추가하는 데 사용할 수 있는 샘플입니다.
자바
public static void insertRegionalInventory(Config config, String productId, String regionId)
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)) {
Price price = Price.newBuilder().setAmountMicros(33_450_000).setCurrencyCode("USD").build();
InsertRegionalInventoryRequest request =
InsertRegionalInventoryRequest.newBuilder()
.setParent(parent)
.setRegionalInventory(
RegionalInventory.newBuilder()
.setAvailability("out of stock")
.setRegion(regionId)
.setPrice(price)
.build())
.build();
System.out.println("Sending insert RegionalInventory request");
RegionalInventory response = regionalInventoryServiceClient.insertRegionalInventory(request);
System.out.println("Inserted RegionalInventory 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/regionalInventories:insert' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
"region": "123456",
"price": {
"amountMicros": "33450000",
"currencyCode": "USD"
},
"availability": "out of stock"
}'
PHP
class InsertRegionalInventory
{
// 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 region ID for the sample to work.
private const REGIONAL_INVENTORY_REGION = 'INSERT_REGION_HERE';
/**
* Inserts a regional 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 $regionalInventoryRegion
* ID of the region for this
* `RegionalInventory` resource. See the [Regional availability and
* pricing](https://support.google.com/merchants/answer/9698880) for more details.
*/
public function insertRegionalInventorySample(string $parent, string $regionalInventoryRegion): 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);
// Creates a price object.
$price = new Price(
[
'currency_code' => "USD",
'amount_micros' => 33450000,
]
);
// Creates a new regional inventory object.
$regionalInventory = (new RegionalInventory())
->setRegion($regionalInventoryRegion)
->setAvailability("in stock")
->setPrice($price);
// Calls the API and catches and prints any network failures/errors.
try {
/** @var RegionalInventory $response */
$response = $regionalInventoryServiceClient->insertRegionalInventory(
$parent,
$regionalInventory
);
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 regional inventory to the parent product
// for the given region.
$this->insertRegionalInventorySample($this::PARENT, $this::REGIONAL_INVENTORY_REGION);
}
}
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 region ID for the sample to work.
_REGION = "INSERT_REGION_HERE"
def insert_regional_inventory():
"""Inserts a `RegionalInventory` to a given product.
Replaces the full `RegionalInventory` 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 `RegionalInventory`
resource to appear in products.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
credentials=credentials)
# Creates a regional inventory and populate its attributes.
regional_inventory = merchant_inventories_v1beta.RegionalInventory()
regional_inventory.region = _REGION
regional_inventory.availability = "in stock"
regional_inventory.price = {
"currency_code": "USD",
"amount_micros": 33450000,
}
# Creates the request.
request = merchant_inventories_v1beta.InsertRegionalInventoryRequest(
parent=_PARENT,
regional_inventory=regional_inventory,
)
# Makes the request and catch and print any error messages.
try:
response = client.insert_regional_inventory(request=request)
print("Insert successful")
print(response)
except Exception as e:
print("Insert failed")
print(e)
이 호출은 제출한 값과 정확히 동일한 값을 반환하며 최종 인벤토리 데이터를 완전히 나타내지 않을 수 있습니다.
새 RegionalInventory
가 제품에 표시되기까지 최대 30분이 걸릴 수 있습니다.
지역 인벤토리 정보를 추가하는 다른 방법은 제품 데이터 소스 만들기의 끝에 있는 지역 제품 인벤토리 데이터 소스 섹션을 참고하세요.
Google에 무료 등록정보를 신청하세요
Google에 무료로 제품을 등록하려면 무료 제품 등록정보를 설정하세요. 무료 등록정보를 설정하면 제공한 지역 정보를 기반으로 RegionalInventory
가 있는 요건을 충족하는 제품이 Google의 쇼핑 탭에 표시될 수 있습니다.