오프라인 제품에 매장 정보 추가

판매자 인벤토리 API를 사용하여 제품이 오프라인 상점에서 구매할 수 있습니다.

오프라인 제품에는 storeCodeavailability 오프라인 제품 인벤토리 피드 보기 사양을 참조하세요. 입력할 수 있습니다.

오프라인 제품에 매장 정보를 추가하는 단계는 다음과 같습니다.

판매자 센터에 비즈니스 연결

비즈니스 프로필판매자가 필요합니다. 계정을 클릭하면 오프라인 제품을 홍보할 수 있습니다.

로컬용 계정 설정 제품 등록정보 및 업체 추가를 위한 제공합니다.

계정을 설정한 후 비즈니스 프로필과 판매자 센터를 연결합니다. 계정을 선택합니다.

Content API for Shopping을 사용하면 v2.1 계정을 연결하세요.

오프라인 제품이 있는지 확인

Content API for Shopping을 사용하여 내 제품 또는 서비스를 계정을 통해 channel까지 기존 오프라인 제품이 있을 수 있습니다 오프라인 제품의 값은 local여야 합니다. channel

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

매장 정보 삽입

판매자 계정에 오프라인 제품이 있는 후 매장 내 제품을 추가할 수 있습니다. store_code, price, availability 등의 정보를 수집합니다.

다음은 localInventories.list:

자바

  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)

이 호출은 제출한 값과 정확히 동일한 값을 반환하며, 완전히 반환되지 않을 수도 있습니다. 최종 인벤토리 데이터를 나타냅니다

LocalInventory이 있습니다.

판매자 센터 UI를 사용해 오프라인 제품 인벤토리를 만들 수도 있습니다. 피드가 있어야 합니다.

무료 오프라인 제품 등록정보 가입

비즈니스 프로필을 판매자 계정에 연결한 후 등록할 수 있습니다. 무료 오프라인 제품 등록정보를 참고하세요. 무료 등록정보 준수 정책을 참조하세요.

무료 오프라인 제품에 참여 등록정보, 매장 내 제품 Google 서비스의 무료 등록정보에 표시될 수 있습니다.