Ajouter des informations sur les magasins aux produits en magasin

Vous pouvez utiliser l'API Merchant Inventories pour indiquer que vos produits sont disponibles dans les magasins physiques.

Les produits en magasin nécessitent des informations supplémentaires, comme storeCode et availability Reportez-vous au flux d'inventaire de produits en magasin pour en savoir plus que vous pouvez fournir.

Pour ajouter des informations en magasin à vos produits en magasin, procédez comme suit:

Associez votre entreprise à Merchant Center

Vous devez disposer d'une fiche d'établissement et d'un marchand compte pour répertorier en magasin sur Google.

Configurez vos comptes pour l'accès aux des fiches produit et Ajoutez votre entreprise informations.

Après avoir configuré vos comptes, associez votre fiche d'établissement à Merchant Center. compte.

Vous pouvez également utiliser Content API for Shopping v2.1 pour associer vos comptes.

Vérifier que vous proposez des produits en magasin

Vous pouvez utiliser Content API for Shopping pour filtrer les produits sous votre votre compte d'ici le channel pour vérifier que si vous proposez déjà des produits en magasin. La valeur des produits en magasin doit être local pour leur channel.

Si vous devez ajouter des produits en magasin à votre compte, utilisez Content API pour Shopping pour insérer des produits créer un flux.

Insérer les informations concernant le magasin

Une fois que vous avez ajouté des produits en magasin dans votre compte marchand, vous pouvez les ajouter en magasin des informations telles que store_code, price et availability.

Voici un exemple permettant d'ajouter des informations en magasin à un produit avec localInventories.list:

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)

Cet appel renvoie exactement les mêmes valeurs que vous avez envoyées, et il se peut qu'elles ne soient pas totalement représente les données d'inventaire finales.

Il peut s'écouler jusqu'à 30 minutes avant que le nouveau LocalInventory n'apparaisse dans la produit.

Vous pouvez également utiliser l'interface utilisateur de Merchant Center pour créer un inventaire de produits en magasin. flux.

S'inscrire aux fiches produit locales gratuites

Après avoir associé une fiche d'établissement à votre compte marchand, vous pouvez vous inscrire les fiches produit locales gratuites. Veillez à suivre les fiches gratuites règles.

En participant à un produit local sans frais de vos produits en magasin, peuvent apparaître dans des fiches gratuites diffusées sur les propriétés Google.