온라인 제품에 지역 정보 추가

Merchant Inventories API를 사용하여 제품 정보가 지역별로 다르다는 것을 나타낼 수 있습니다. 예를 들어 다양한 장소에서 다양한 제품을 판매하거나 구매처에 따라 동일한 제품에 다른 가격을 청구할 수 있습니다.

자세한 내용은 지역별 제공 및 가격 책정을 참조하세요.

지역 정보는 온라인으로 판매하는 제품에 적용됩니다. 매장 제품에 대한 자세한 내용은 오프라인 제품에 매장 정보 추가를 참고하세요.

온라인 제품에 지역 정보를 추가하는 단계는 다음과 같습니다.

리전 만들기

제품에 지역 정보를 추가하려면 먼저 판매자 계정의 지역을 설정해야 합니다. Content API for Shopping의 regions 리소스를 사용하여 새 리전을 만들 수 있습니다.

코드 샘플과 리전 관리에 대한 자세한 내용은 리전 가이드를 참고하세요.

온라인 제품이 있는지 확인

Content API for Shopping을 사용하여 channel계정의 제품을 필터링하여 기존 온라인 제품이 있는지 확인할 수 있습니다. 온라인 제품의 channel 값으로는 online가 있어야 합니다.

계정에 온라인 제품을 추가해야 하는 경우 Content API for Shopping을 사용하여 새 제품을 삽입하거나 피드를 만듭니다.

지역 정보 삽입

판매자 계정에 온라인 제품이 있으면 region, price, availability와 같은 지역 정보를 추가할 수 있습니다.

다음은 regionalInventories.insert를 사용하여 제품에 지역 정보를 추가하는 데 사용할 수 있는 샘플입니다.

Java

  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"
  }'

2,399필리핀

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 쇼핑 탭에 표시될 수 있습니다.