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

Merchant Inventories API를 사용하여 해당 제품이 정보는 지역에 따라 다릅니다. 예를 들어 한 국가에서 다양한 제품을 가격을 달리하여 동일한 제품에 대해 동일한 가격을 책정할 수 있습니다 확인할 수 있습니다

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

지역 정보는 온라인 판매 제품에 대한 정보입니다. 매장 추가 참조 지역 정보를 제품을 참조하세요. 오프라인 매장 판매 제품

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

리전 만들기

제품에 지역 정보를 추가하려면 먼저 지역을 설정해야 합니다. 판매자 계정에 적용됩니다 Content API for Shopping의 만들 regions 리소스 새 리전으로 나뉩니다

코드는 리전 가이드를 참고하세요. 리전 관리에 대한 자세한 내용을 참조하세요.

온라인 제품이 있는지 확인

Content API for Shopping을 사용하여 내 제품 또는 서비스를 계정을 통해 channel까지 기존 온라인 제품이 있는 경우 온라인 제품은 online이(가) 있어야 합니다. channel의 값이어야 합니다.

계정에 온라인 제품을 추가해야 하는 경우 YouTube Shopping에서 신규 제품 또는 피드 생성을 해야 합니다.

지역 정보 삽입

판매자 계정에 온라인 제품이 있으면 지역 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이 있습니다.

지역 제품 인벤토리 피드 섹션을 피드에 표시되는 다양한 추가 방법을 확인하세요 지역 인벤토리 정보

Google의 무료 등록정보 가입

Google에 무료로 제품을 등록하려면 무료 제품을 설정하세요. 등록정보를 참조하세요. 무료 설정 후 RegionalInventory이(가) 있는 요건을 충족하는 제품이 Google의 쇼핑 탭, 제공된 지역 정보를 기반으로 추천됩니다.