Omnichannel-Einstellungen verwalten

Die Omnichannel Settings API ist der Einstiegspunkt für die Konfiguration Ihrer Programme für Anzeigen für lokales Inventar und lokale Einträge.

Sie können sie für folgende programmatische Aktionen verwenden:

  • Omnichannel-Einstellungen verwalten (erstellen und aktualisieren)
  • Omnichannel-Einstellungen abrufen (abrufen und auflisten)
  • Inventarüberprüfung für berechtigte Händler anfordern

Weitere Informationen finden Sie unter Anzeigen für lokales Inventar und lokale Einträge.

Vorbereitung

Sie benötigen Folgendes:

  • Ein Merchant Center-Konto

  • Ein Unternehmensprofil. Wenn Sie noch keines haben, können Sie eines erstellen. Weitere Informationen Anmeldung für ein Unternehmensprofil.

  • Eine Verknüpfung zwischen Ihrem Unternehmensprofil und Ihrem Merchant Center-Konto. Sie können die Verknüpfung über die Merchant Center-Benutzeroberfläche oder die Merchant API erstellen (siehe Google Unternehmensprofil verknüpfen).

Omnichannel-Einstellung erstellen

Sie können die Methode omnichannelSettings.create verwenden, um eine Omnichannel-Einstellung zu erstellen. Die Methode `create` verwendet eine omnichannelSetting-Ressource als Eingabe und gibt bei Erfolg die erstellte Omnichannel-Einstellung zurück.

Beim Erstellen müssen Sie sowohl regionCode als auch LsfType ausfüllen:

  • Omnichannel-Einstellungen gelten pro Land. RegionCode definiert das Zielland. Nach dem Erstellen kann es nicht mehr geändert werden. RegionCode muss der Benennungsregel des Common Locale Data Repository (CLDR) entsprechen.
  • LsfType basiert auf Ihrer Produktseite. Weitere Informationen finden Sie unter LsfType.

Weitere Informationen finden Sie unter Nutzerfreundlichkeit von Produktseiten bei Anzeigen für lokales Inventar ändern.

Sie müssen nicht alle Felder beim Erstellen ausfüllen, sondern können sie später konfigurieren. Informationen zum Aktualisieren einer vorhandenen omnichannelSetting finden Sie unter Omnichannel-Einstellung aktualisieren.

Hier ein Beispiel für eine Anfrage, wenn Sie MHLSF_BASIC auswählen und inStock registrieren:

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings

{
  "regionCode": "{REGION_CODE}",
  "lsfType: "MHLSF_BASIC",
  "inStock": {
      "uri": {URI}"
  }
}

Ersetzen Sie Folgendes:

  • {ACCOUNT_ID}: Die eindeutige ID Ihres Merchant Center-Kontos
  • {REGION_CODE}: Ein Regionscode gemäß CLDR
  • {URI}: Ein gültiger URI, der für die angegebene Überprüfung verwendet wird. Ein ungültiger URI kann die Genehmigung verhindern.

Nachdem die Anfrage erfolgreich ausgeführt wurde, sollte die folgende Antwort angezeigt werden:

{
  "name": "accounts/{ACCOUNT_ID}/omnichannelSettings/{omnichannel_setting}",
  "regionCode": "{REGION_CODE}",
  "lsfType: "MHLSF_BASIC",
  "inStock": {
      "uri": "{URI}",
      "state": "RUNNING"
  }
}

Wenn Sie verschiedene Funktionen für Anzeigen für lokales Inventar und lokale Einträge mithilfe von omnichannelSetting-Feldern registrieren, werden manuelle Überprüfungen ausgelöst, die in der Regel einige Stunden bis einige Tage dauern. Wir empfehlen, Ihre Eingaben noch einmal zu überprüfen, um unnötige Wartezeiten aufgrund ungültiger Daten zu vermeiden.

Wenn Sie Ihre neu erstellte Omni-Channel-Einstellung aufrufen oder den Status von Überprüfungen prüfen möchten, verwenden Sie accounts.omnichannelSettings.get oder accounts.omnichannelSettings.list und geben Sie das Land an.

Typ der lokalen Verkäuferseite (LSF)

Wählen Sie basierend auf der Produktseite, die Sie verwenden möchten, einen LsfType aus:

Typ der Produktseite LsfType Enum-Wert
Produktseiten mit Informationen zur Verfügbarkeit im Geschäft Vom Händler gehostete lokale Verkäuferseite (Basic) MHLSF_BASIC
Geschäftsspezifische Produktseiten mit Verfügbarkeit und Preis Vom Händler gehostete Verkäuferseite (vollständig) MHLSF_FULL
Produktseiten ohne Verfügbarkeit im Geschäft Von Google gehostete Verkäuferseite GHLSF

Wenn Sie vom Händler gehostete lokale Verkäuferseitentypen auswählen, müssen Sie auch das URI-Feld für mindestens eine der Optionen inStock oder pickup ausfüllen.

InStock

Mit `inStock` können Sie weitere Informationen zu Ihrer Produktseite angeben.

Wenn Sie vom Händler gehostete Verkäuferseitentypen auswählen und das URI-Feld in `inStock` angeben, zeigen Sie damit, dass Sie Produkte mit Informationen zur Verfügbarkeit im Geschäft präsentieren möchten. Wir starten eine Überprüfung basierend auf dem angegebenen URI.

Wenn Sie den Typ GHLSF auswählen, müssen Sie ein leeres InStock Feld in der Anfrage angeben. Im Gegensatz zu vom Händler gehosteten Verkäuferseitentypen müssen Sie zur Einrichtung den Prozess zur Inventarüberprüfung durchlaufen.

In diesem Codebeispiel wird eine omnichannelSetting mit GHLSF erstellt:

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccountName;
import com.google.shopping.merchant.accounts.v1.CreateOmnichannelSettingRequest;
import com.google.shopping.merchant.accounts.v1.InStock;
import com.google.shopping.merchant.accounts.v1.OmnichannelSetting;
import com.google.shopping.merchant.accounts.v1.OmnichannelSetting.LsfType;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to create an omnichannel setting for a given Merchant Center account
 * in a given country
 */
public class CreateOmnichannelSettingSample {

  public static void createOmnichannelSetting(Config config, String regionCode) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    OmnichannelSettingsServiceSettings omnichannelSettingsServiceSettings =
        OmnichannelSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Calls the API and catches and prints any network failures/errors.
    try (OmnichannelSettingsServiceClient omnichannelSettingsServiceClient =
        OmnichannelSettingsServiceClient.create(omnichannelSettingsServiceSettings)) {
      String accountId = config.getAccountId().toString();
      String parent = AccountName.newBuilder().setAccount(accountId).build().toString();

      // Creates an omnichannel setting with GHLSF type in the given country.
      CreateOmnichannelSettingRequest request =
          CreateOmnichannelSettingRequest.newBuilder()
              .setParent(parent)
              .setOmnichannelSetting(
                  OmnichannelSetting.newBuilder()
                      .setRegionCode(regionCode)
                      .setLsfType(LsfType.GHLSF)
                      .setInStock(InStock.getDefaultInstance())
                      .build())
              .build();

      System.out.println("Sending create omnichannel setting request:");
      OmnichannelSetting response =
          omnichannelSettingsServiceClient.createOmnichannelSetting(request);

      System.out.println("Inserted Omnichannel Setting below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    // The country which you're targeting at.
    String regionCode = "{REGION_CODE}";

    createOmnichannelSetting(config, regionCode);
  }
}

PHP

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\OmnichannelSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\CreateOmnichannelSettingRequest;
use Google\Shopping\Merchant\Accounts\V1\InStock;
use Google\Shopping\Merchant\Accounts\V1\OmnichannelSetting;
use Google\Shopping\Merchant\Accounts\V1\OmnichannelSetting\LsfType;

/**
 * This class demonstrates how to create an omnichannel setting for a given
 * Merchant Center account in a given country.
 */
class CreateOmnichannelSetting
{
    /**
     * Helper to create the parent string.
     *
     * @param string $accountId The merchant account ID.
     * @return string The parent string in the format `accounts/{account}`.
     */
    private static function getParent(string $accountId): string
    {
        return sprintf('accounts/%s', $accountId);
    }

    /**
     * Creates an omnichannel setting for a given Merchant Center account.
     *
     * @param array $config The configuration file for authentication.
     * @param string $regionCode The country for the omnichannel setting.
     */
    public static function createOmnichannelSettingSample(
        array $config,
        string $regionCode
    ): void {
        // Obtains OAuth credentials from the configuration file.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates a client.
        $omnichannelSettingsServiceClient = new OmnichannelSettingsServiceClient([
            'credentials' => $credentials
        ]);

        // Constructs the parent resource name.
        $parent = self::getParent($config['accountId']);

        // Creates the omnichannel setting with GHLSF type in the given country.
        $omnichannelSetting = new OmnichannelSetting([
            'region_code' => $regionCode,
            'lsf_type' => LsfType::GHLSF,
            'in_stock' => new InStock()
        ]);

        // Creates the request.
        $request = new CreateOmnichannelSettingRequest([
            'parent' => $parent,
            'omnichannel_setting' => $omnichannelSetting
        ]);

        // Calls the API and prints the response.
        try {
            printf("Sending create omnichannel setting request:%s", PHP_EOL);
            $response = $omnichannelSettingsServiceClient->createOmnichannelSetting($request);
            printf("Inserted Omnichannel Setting below:%s", PHP_EOL);
            print $response->serializeToJsonString(true) . PHP_EOL;
        } catch (ApiException $e) {
            printf("An error has occured: %s", $e->getMessage());
        }
    }

    /**
     * Executes the sample.
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        // The country which you're targeting.
        $regionCode = '{REGION_CODE}';
        self::createOmnichannelSettingSample($config, $regionCode);
    }
}

// Runs the script.
$sample = new CreateOmnichannelSetting();
$sample->callSample();

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import CreateOmnichannelSettingRequest
from google.shopping.merchant_accounts_v1 import InStock
from google.shopping.merchant_accounts_v1 import OmnichannelSetting
from google.shopping.merchant_accounts_v1 import OmnichannelSettingsServiceClient


def create_omnichannel_setting(account_id: str, region_code: str) -> None:
  """Creates an omnichannel setting for a given Merchant Center account.

  Args:
      account_id: The ID of the Merchant Center account.
      region_code: The country for which you're creating the setting.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = OmnichannelSettingsServiceClient(credentials=credentials)

  # The parent account under which to create the setting.
  parent = f"accounts/{account_id}"

  # Creates an omnichannel setting with GHLSF type in the given country.
  omnichannel_setting = OmnichannelSetting()
  omnichannel_setting.region_code = region_code
  omnichannel_setting.lsf_type = OmnichannelSetting.LsfType.GHLSF
  omnichannel_setting.in_stock = InStock()

  # Creates the request.
  request = CreateOmnichannelSettingRequest(
      parent=parent, omnichannel_setting=omnichannel_setting
  )

  # Makes the request and catches and prints any error messages.
  try:
    print("Sending create omnichannel setting request:")
    response = client.create_omnichannel_setting(request=request)
    print("Inserted Omnichannel Setting below:")
    print(response)
  except RuntimeError as e:
    print("An error has occured: ")
    print(e)


if __name__ == "__main__":
  # The ID of the account to get the omnichannel settings for.
  _ACCOUNT = configuration.Configuration().read_merchant_info()

  # The country which you're targeting.
  _REGION_CODE = "{REGION_CODE}"

  create_omnichannel_setting(_ACCOUNT, _REGION_CODE)

Abholung

Neben der Verfügbarkeit im Geschäft können Sie Ihre im Geschäft erhältlichen Produkte auch mit der Funktion „Abholung“ optimieren. Diese ist nur für vom Händler gehostete Verkäuferseitentypen verfügbar.

Wenn ein Produkt für die Abholung gekennzeichnet ist, kann ein Kunde es online kaufen und im Geschäft abholen. Wenn Sie das Feld Pickup festlegen, zeigen Sie damit, dass Sie Ihre Absicht haben, Produkte mit einer Abholzeit zu präsentieren. Wir starten eine Überprüfung basierend auf dem angegebenen URI.

Hier ein Beispiel für eine Anfrage, mit der eine omnichannel-Einstellung mit Pickup erstellt wird:

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings

{
  "regionCode": "{REGION_CODE}",
  "lsfType: "MHLSF_BASIC",
  "pickup": {
     "uri: "{URI}"
  }
}

Im Geschäft ausgestellt und bestellbar

Mit der Funktion „Im Geschäft ausgestellt und bestellbar“ können Sie Produkte präsentieren, die in Ihrem Geschäft ausgestellt und bestellbar sind, aber nicht sofort gekauft werden können. Zum Beispiel große Möbel:

  • Kunden, die auf Google nach ähnlichen Produkten suchen, sehen diese Anzeigen in den Suchergebnissen mit dem Hinweis „Im Geschäft“.
  • Kunden, die auf einer Google-Suchergebnisseite des Geschäfts suchen, sehen diese Produkte als „Bestellbar“.

Sie können Ihre Anzeige für lokales Inventar oder Ihren lokalen Eintrag auswählen, um Informationen über den Artikel zu sehen. Wenn sie den Artikel kaufen möchten, können sie Ihr Geschäft besuchen, um sich den entsprechenden Artikel anzusehen, ihn zu bestellen und ihn nach Hause oder zur Abholung in Ihr Geschäft liefern zu lassen.

Impressum (Deutschland, Österreich und Schweiz)

Wenn Sie in Österreich und Deutschland präsentieren und GHLSF auswählen, müssen Sie ein Impressum einreichen.

Wenn Sie in der Schweiz präsentieren, müssen Sie unabhängig von LsfType ein Impressum einreichen.

Bis die URL des Impressums bestätigt wurde, können GHLSF-Händler keine manuelle Inventarüberprüfung bei Google anfordern.

Für alle Händler in diesen drei Ländern werden die Funktionen für lokale Einträge und Anzeigen für lokales Inventar erst aktiviert, wenn Ihr Impressum genehmigt wurde.

Inventarüberprüfung

Die Inventarüberprüfung ist nur für GHLSF-Händler erforderlich. Sie wird für MHLSF-Typen nicht unterstützt.

Bevor oder nachdem Sie Produktdaten und Inventardaten hinzugefügt haben (entweder mit accounts.products.localInventories.insert oder über die Merchant Center-Benutzeroberfläche), müssen Sie Ihren Kontakt bestätigen. Geben Sie mit der Methode create oder update einen Kontakt für die Inventarüberprüfung an (Name und E‑Mail-Adresse). Der Kontakt erhält eine E‑Mail von Google und kann seinen Status bestätigen, indem er in der Nachricht auf eine Schaltfläche klickt.

Sobald Sie diesen Schritt abgeschlossen haben, können Sie eine Inventar überprüfung anfordern. Weitere Informationen finden Sie unter Inventarüberprüfung.

Sie können Ihren Kontakt während des Bestätigungsprozesses oder nach der Bestätigung mit omnichannelSetting.update ändern.

Nach Abschluss dieses Prozesses prüft Google die Richtigkeit der angegebenen Informationen.

Omnichannel-Einstellung abrufen

Verwenden Sie die Methode omnichannelSettings.get, um die omnichannelSetting-Konfiguration in einem bestimmten Land abzurufen oder den aktuellen Status Ihrer Überprüfungen zu prüfen.

Hier ein Beispiel für eine Anfrage:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings/{OMNICHANNEL_SETTING}

Ersetzen Sie Folgendes:

  • {ACCOUNT_ID}: Die eindeutige ID Ihres Merchant Center-Kontos
  • {OMNICHANNEL_SETTING}: Der Regionscode Ihres Ziellands

Der Status ACTIVE gibt an, dass die Überprüfung genehmigt wurde.

Wenn der Status FAILED lautet, beheben Sie die Probleme und lösen Sie eine neue Überprüfung aus, indem Sie omnichannelSetting.update aufrufen.

Im schreibgeschützten Feld LFP sehen Sie Ihren Status als Partner für lokale Feeds. Verwenden Sie lfpProviders.linkLfpProvider, um eine Verknüpfung zur Partnerschaft zu erstellen.

Weitere Informationen zum Prüfen von Status und deren Bedeutung finden Sie unter Status einer Omnichannel-Einstellung aufrufen.

Omnichannel-Einstellungen auflisten

Verwenden Sie die omnichannelSettings.list Methode, um alle omnichannelSetting Informationen für Ihr Konto abzurufen.

Hier ein Codebeispiel:

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccountName;
import com.google.shopping.merchant.accounts.v1.ListOmnichannelSettingsRequest;
import com.google.shopping.merchant.accounts.v1.OmnichannelSetting;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceClient.ListOmnichannelSettingsPagedResponse;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to get the list of omnichannel settings for a given Merchant Center
 * account
 */
public class ListOmnichannelSettingsSample {

  public static void omnichannelSettings(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    OmnichannelSettingsServiceSettings omnichannelSettingsServiceSettings =
        OmnichannelSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String accountId = config.getAccountId().toString();
    String parent = AccountName.newBuilder().setAccount(accountId).build().toString();

    // Calls the API and catches and prints any network failures/errors.
    try (OmnichannelSettingsServiceClient omnichannelSettingsServiceClient =
        OmnichannelSettingsServiceClient.create(omnichannelSettingsServiceSettings)) {
      ListOmnichannelSettingsRequest request =
          ListOmnichannelSettingsRequest.newBuilder().setParent(parent).build();

      System.out.println("Sending list omnichannel setting request:");
      ListOmnichannelSettingsPagedResponse response =
          omnichannelSettingsServiceClient.listOmnichannelSettings(request);

      int count = 0;

      // Iterates over all the entries in the response.
      for (OmnichannelSetting omnichannelSetting : response.iterateAll()) {
        System.out.println(omnichannelSetting);
        count++;
      }
      System.out.println(String.format("The following count of elements were returned: %d", count));
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    omnichannelSettings(config);
  }
}

PHP

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\OmnichannelSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\ListOmnichannelSettingsRequest;

/**
 * This class demonstrates how to get the list of omnichannel settings for a
 * given Merchant Center account.
 */
class ListOmnichannelSettings
{
    /**
     * Helper to create the parent string.
     *
     * @param string $accountId The merchant account ID.
     * @return string The parent string in the format `accounts/{account}`.
     */
    private static function getParent(string $accountId): string
    {
        return sprintf('accounts/%s', $accountId);
    }

    /**
     * Lists the omnichannel settings for a given Merchant Center account.
     *
     * @param array $config The configuration file for authentication.
     */
    public static function listOmnichannelSettingsSample(array $config): void
    {
        // Obtains OAuth credentials from the configuration file.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates a client.
        $omnichannelSettingsServiceClient = new OmnichannelSettingsServiceClient([
            'credentials' => $credentials
        ]);

        // Constructs the parent resource name.
        $parent = self::getParent($config['accountId']);

        // Creates the request.
        $request = new ListOmnichannelSettingsRequest(['parent' => $parent]);

        // Calls the API and prints the response.
        try {
            printf("Sending list omnichannel setting request:%s", PHP_EOL);
            $response = $omnichannelSettingsServiceClient->listOmnichannelSettings($request);

            $count = 0;
            // Iterates over all the omnichannel settings and prints them.
            foreach ($response->iterateAllElements() as $omnichannelSetting) {
                print $omnichannelSetting->serializeToJsonString(true) . PHP_EOL;
                $count++;
            }
            printf("The following count of elements were returned: %d%s", $count, PHP_EOL);
        } catch (ApiException $e) {
            printf("An error has occured: %s", $e->getMessage());
        }
    }

    /**
     * Executes the sample.
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        self::listOmnichannelSettingsSample($config);
    }
}

// Runs the script.
$sample = new ListOmnichannelSettings();
$sample->callSample();

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import ListOmnichannelSettingsRequest
from google.shopping.merchant_accounts_v1 import OmnichannelSettingsServiceClient


def list_omnichannel_settings(account_id: str) -> None:
  """Lists the omnichannel settings for a given Merchant Center account.

  Args:
      account_id: The ID of the Merchant Center account.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = OmnichannelSettingsServiceClient(credentials=credentials)

  # The parent account for which to list the settings.
  parent = f"accounts/{account_id}"

  # Creates the request.
  request = ListOmnichannelSettingsRequest(parent=parent)

  # Makes the request and catches and prints any error messages.
  try:
    print("Sending list omnichannel setting request:")
    response = client.list_omnichannel_settings(request=request)

    count = 0
    # Iterates over all the entries in the response.
    for omnichannel_setting in response:
      print(omnichannel_setting)
      count += 1
    print(f"The following count of elements were returned: {count}")
  except RuntimeError as e:
    print("An error has occured: ")
    print(e)


if __name__ == "__main__":
  # The ID of the account to get the omnichannel settings for.
  _ACCOUNT = configuration.Configuration().read_merchant_info()

  list_omnichannel_settings(_ACCOUNT)

Omnichannel-Einstellung aktualisieren

Verwenden Sie die Methode omnichannelSettings.update, um die Konfiguration einer vorhandenen Omni-Channel-Einstellung zu aktualisieren.

Fügen Sie dazu die gewünschte Funktion der Aktualisierungsmaske hinzu und füllen Sie die entsprechenden Felder im Feld omnichannelSetting in der Aktualisierungsanfrage aus. Sie können Folgendes aktualisieren:

  • lsfType
  • inStock
  • pickup
  • odo
  • about
  • inventoryVerification

Wenn ein Attribut nicht in der Aktualisierungsmaske enthalten ist, wird es nicht aktualisiert.

Wenn ein Attribut in der Aktualisierungsmaske enthalten, aber nicht in der Anfrage festgelegt ist, wird es gelöscht.

Das folgende Codebeispiel zeigt, wie das Feld für die Inventarüberprüfung aktualisiert wird.

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1.InventoryVerification;
import com.google.shopping.merchant.accounts.v1.OmnichannelSetting;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingName;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceSettings;
import com.google.shopping.merchant.accounts.v1.UpdateOmnichannelSettingRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to update an omnichannel setting for a given Merchant Center account
 * in a given country
 */
public class UpdateOmnichannelSettingSample {

  public static void updateOmnichannelSettings(
      Config config, String regionCode, String contact, String email) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    OmnichannelSettingsServiceSettings omnichannelSettingsServiceSettings =
        OmnichannelSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Calls the API and catches and prints any network failures/errors.
    try (OmnichannelSettingsServiceClient omnichannelSettingsServiceClient =
        OmnichannelSettingsServiceClient.create(omnichannelSettingsServiceSettings)) {
      String accountId = config.getAccountId().toString();
      String name =
          OmnichannelSettingName.newBuilder()
              .setAccount(accountId)
              .setOmnichannelSetting(regionCode)
              .build()
              .toString();

      OmnichannelSetting omnichannelSetting =
          OmnichannelSetting.newBuilder()
              .setName(name)
              .setInventoryVerification(
                  InventoryVerification.newBuilder()
                      .setContact(contact)
                      .setContactEmail(email)
                      .build())
              .build();
      FieldMask fieldMask = FieldMask.newBuilder().addPaths("inventory_verification").build();
      UpdateOmnichannelSettingRequest request =
          UpdateOmnichannelSettingRequest.newBuilder()
              .setOmnichannelSetting(omnichannelSetting)
              .setUpdateMask(fieldMask)
              .build();

      System.out.println("Sending update omnichannel setting request:");
      OmnichannelSetting response =
          omnichannelSettingsServiceClient.updateOmnichannelSetting(request);

      System.out.println("Updated Omnichannel Setting below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    // The country which you're targeting at.
    String regionCode = "{REGION_CODE}";
    // The name of the inventory verification contact you want to update.
    String contact = "{NAME}";
    // The address of the inventory verification email you want to update.
    String email = "{EMAIL}";

    updateOmnichannelSettings(config, regionCode, contact, email);
  }
}

PHP

use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1\Client\OmnichannelSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\InventoryVerification;
use Google\Shopping\Merchant\Accounts\V1\OmnichannelSetting;
use Google\Shopping\Merchant\Accounts\V1\UpdateOmnichannelSettingRequest;

/**
 * This class demonstrates how to update an omnichannel setting for a given
 * Merchant Center account in a given country.
 */
class UpdateOmnichannelSetting
{
    /**
     * Helper to create the name string.
     *
     * @param string $accountId The merchant account ID.
     * @param string $regionCode The region code of the setting.
     * @return string The name string in the format
     *     `accounts/{account}/omnichannelSettings/{omnichannelSetting}`.
     */
    private static function getName(string $accountId, string $regionCode): string
    {
        return sprintf('accounts/%s/omnichannelSettings/%s', $accountId, $regionCode);
    }

    /**
     * Updates an omnichannel setting for a given Merchant Center account.
     *
     * @param array $config The configuration file for authentication.
     * @param string $regionCode The country of the omnichannel setting.
     * @param string $contact The name of the inventory verification contact.
     * @param string $email The email of the inventory verification contact.
     */
    public static function updateOmnichannelSettingSample(
        array $config,
        string $regionCode,
        string $contact,
        string $email
    ): void {
        // Obtains OAuth credentials from the configuration file.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates a client.
        $omnichannelSettingsServiceClient = new OmnichannelSettingsServiceClient([
            'credentials' => $credentials
        ]);

        // Constructs the resource name.
        $name = self::getName($config['accountId'], $regionCode);

        // Creates the omnichannel setting with the updated fields.
        $omnichannelSetting = new OmnichannelSetting([
            'name' => $name,
            'inventory_verification' => new InventoryVerification([
                'contact' => $contact,
                'contact_email' => $email
            ])
        ]);

        // Creates the field mask to specify which fields to update.
        $fieldMask = new FieldMask([
            'paths' => ['inventory_verification']
        ]);

        // Creates the request.
        $request = new UpdateOmnichannelSettingRequest([
            'omnichannel_setting' => $omnichannelSetting,
            'update_mask' => $fieldMask
        ]);

        // Calls the API and prints the response.
        try {
            printf("Sending update omnichannel setting request:%s", PHP_EOL);
            $response = $omnichannelSettingsServiceClient->updateOmnichannelSetting($request);
            printf("Updated Omnichannel Setting below:%s", PHP_EOL);
            print $response->serializeToJsonString(true) . PHP_EOL;
        } catch (ApiException $e) {
            printf("An error has occured: %s", $e->getMessage());
        }
    }

    /**
     * Executes the sample.
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        // The country which you're targeting.
        $regionCode = '{REGION_CODE}';
        // The name of the inventory verification contact you want to update.
        $contact = '{NAME}';
        // The address of the inventory verification email you want to update.
        $email = '{EMAIL}';
        self::updateOmnichannelSettingSample($config, $regionCode, $contact, $email);
    }
}

// Runs the script.
$sample = new UpdateOmnichannelSetting();
$sample->callSample();

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1 import InventoryVerification
from google.shopping.merchant_accounts_v1 import OmnichannelSetting
from google.shopping.merchant_accounts_v1 import OmnichannelSettingsServiceClient
from google.shopping.merchant_accounts_v1 import (
    UpdateOmnichannelSettingRequest,
)


def update_omnichannel_setting(
    account_id: str, region_code: str, contact: str, email: str
) -> None:
  """Updates an omnichannel setting for a given Merchant Center account.

  Args:
      account_id: The ID of the Merchant Center account.
      region_code: The country for which you're updating the setting.
      contact: The name of the inventory verification contact.
      email: The email of the inventory verification contact.
  """
  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = OmnichannelSettingsServiceClient(credentials=credentials)

  # The name of the omnichannel setting to update.
  name = f"accounts/{account_id}/omnichannelSettings/{region_code}"

  # Creates an omnichannel setting with the updated values.
  omnichannel_setting = OmnichannelSetting()
  omnichannel_setting.name = name
  omnichannel_setting.inventory_verification = InventoryVerification(
      contact=contact, contact_email=email
  )

  # Creates a field mask to specify which fields to update.
  field_mask = field_mask_pb2.FieldMask(paths=["inventory_verification"])

  # Creates the request.
  request = UpdateOmnichannelSettingRequest(
      omnichannel_setting=omnichannel_setting, update_mask=field_mask
  )

  # Makes the request and catches and prints any error messages.
  try:
    print("Sending update omnichannel setting request:")
    response = client.update_omnichannel_setting(request=request)
    print("Updated Omnichannel Setting below:")
    print(response)
  except RuntimeError as e:
    print("An error has occured: ")
    print(e)


if __name__ == "__main__":
  # The ID of the account to get the omnichannel settings for.
  _ACCOUNT = configuration.Configuration().read_merchant_info()

  # The country which you're targeting.
  _REGION_CODE = "{REGION_CODE}"
  # The name of the inventory verification contact you want to update.
  _CONTACT = "{NAME}"
  # The address of the inventory verification email you want to update.
  _EMAIL = "{EMAIL}"

  update_omnichannel_setting(_ACCOUNT, _REGION_CODE, _CONTACT, _EMAIL)

Inventarüberprüfung anfordern

omnichannelSettings.requestInventoryVerification ist nur für GHLSF-Händler relevant.

Bevor Sie diesen RPC aufrufen, müssen Sie Folgendes ausgeführt haben:

  • Laden Sie Ihre Produkt- und Inventardaten hoch.
  • Bestätigen Sie einen Kontakt für die Inventarüberprüfung.
  • Für Händler in Österreich, Deutschland oder der Schweiz: Führen Sie eine About Überprüfung durch.

Rufen Sie omnichannelSettings.get auf und prüfen Sie omnichannelSetting.inventoryVerification.state, um Ihre Berechtigung zu ermitteln. Wenn INACTIVE angezeigt wird, können Sie omnichannelSettings.requestInventoryVerification aufrufen.

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingName;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.OmnichannelSettingsServiceSettings;
import com.google.shopping.merchant.accounts.v1.RequestInventoryVerificationRequest;
import com.google.shopping.merchant.accounts.v1.RequestInventoryVerificationResponse;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to request inventory verification for a given Merchant Center account
 * in a given country
 */
public class RequestInventoryVerificationSample {

  public static void requestInventoryVerification(Config config, String regionCode)
      throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    OmnichannelSettingsServiceSettings omnichannelSettingsServiceSettings =
        OmnichannelSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Calls the API and catches and prints any network failures/errors.
    try (OmnichannelSettingsServiceClient omnichannelSettingsServiceClient =
        OmnichannelSettingsServiceClient.create(omnichannelSettingsServiceSettings)) {
      String accountId = config.getAccountId().toString();
      String name =
          OmnichannelSettingName.newBuilder()
              .setAccount(accountId)
              .setOmnichannelSetting(regionCode)
              .build()
              .toString();
      RequestInventoryVerificationRequest request =
          RequestInventoryVerificationRequest.newBuilder().setName(name).build();

      System.out.println("Sending request inventory verification request:");
      RequestInventoryVerificationResponse response =
          omnichannelSettingsServiceClient.requestInventoryVerification(request);

      System.out.println("Omnichannel Setting after inventory verification request below:");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    // The country which you're targeting at.
    String regionCode = "{REGION_CODE}";

    requestInventoryVerification(config, regionCode);
  }
}

Status einer Omnichannel-Einstellung aufrufen

Wenn Sie den Überprüfungsstatus der Überprüfungen zur Einrichtung von Anzeigen für lokales Inventar prüfen möchten, sehen Sie sich ReviewState für die entsprechenden Attribute von omnichannelSetting an, die von den omnichannelSettings.get oder omnichannelSettings.list Methoden zurückgegeben werden.

Das Feld ReviewState gilt für alle Überprüfungen zur Einrichtung mit Ausnahme der Inventarüberprüfung und kann die folgenden Werte haben:

  • ACTIVE: Genehmigt
  • FAILED: Abgelehnt
  • RUNNING: Wird noch überprüft
  • ACTION_REQUIRED: Dieser Wert ist nur für InStock.state für `GHLSF`-Händler verfügbar. Das bedeutet, dass Sie eine Inventarüberprüfung anfordern müssen, damit Anzeigen für lokales Inventar ausgeliefert werden können.

InventoryVerification.State hat die folgenden Werte:

  • SUCCEEDED: Genehmigt
  • INACTIVE: Sie können eine Inventarüberprüfung anfordern.
  • RUNNING: Wird überprüft
  • SUSPENDED: Sie haben die Inventarüberprüfung zu oft (in der Regel fünfmal) nicht bestanden und müssen warten, bevor Sie sie noch einmal anfordern können.
  • ACTION_REQUIRED: Sie müssen zusätzliche Maßnahmen ergreifen, bevor Sie eine Inventarüberprüfung anfordern können.

Probleme mit der Omnichannel Settings API beheben

In diesem Abschnitt wird beschrieben, wie Sie häufige Probleme beheben.

Omnichannel-Einstellung erstellen

  • Legen Sie sowohl LsfType als auch RegionCode fest.
  • Wenn Sie GHLSF auswählen, geben Sie in der Anfrage ein leeres InStock an.
  • Wenn Sie vom Händler gehostete Verkäuferseitentypen auswählen, geben Sie mindestens einen URI in InStock oder Pickup an.

Omnichannel-Einstellung aktualisieren

Für die Aktualisierungsmethode für diese Ressource gelten die folgenden zusätzlichen Regeln:

  • Sie können den Regionscode nicht ändern.
  • Sie können keine Aktualisierungen vornehmen, während die Funktion für Anzeigen für lokales Inventar und lokale Einträge ausgeführt wird oder genehmigt wurde.
  • Wenn Sie von vom Händler gehosteten Verkäuferseitentypen zu GHLSF wechseln und InStock und Pickup zuvor konfiguriert wurden, müssen Sie sie zusammen mit der Aktualisierung von LsfType in die Aktualisierungs maske aufnehmen.

Wenn Sie beispielsweise zuvor MHLSF_BASIC und Pickup angewendet haben und diese abgelehnt wurden, können Sie zu GHLSF wechseln, indem Sie eine Anfrage wie diese senden:

PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings/{REGION_CODE}?update_mask=lsf_type,in_stock,pickup

{
  "lsfType": "GHLSF",
  "inStock": {},
}

Ersetzen Sie Folgendes:

  • {ACCOUNT_ID}: Die eindeutige ID Ihres Merchant Center-Kontos
  • {REGION_CODE}: Ein Regionscode gemäß CLDR

Inventarüberprüfung anfordern

Wenn InventoryVerification.state trotz Aktualisierung der Produkt- oder Inventarfeeds und Bestätigung des Kontakts nicht INACTIVE lautet:

  • Für Händler in Österreich, Deutschland und der Schweiz: Achten Sie darauf, dass Sie eine Überprüfung des Impressums abgeschlossen haben.
  • Es kommt zu einer Verzögerung von etwa 48 Stunden.
  • Bei wiederholten Fehlern bei der Inventarüberprüfung (mehr als fünf) erzwingt der Dienst eine 30‑tägige Wartezeit, bevor eine weitere Anfrage möglich ist. Wenden Sie sich an den Google-Support, wenn Sie die Überprüfung früher anfordern möchten.

Weitere Informationen

Weitere Informationen finden Sie in der Hilfe zu Anzeigen für lokales Inventar und lokalen Einträgen.