L'API OmnichannelSettings est le point d'entrée pour configurer vos programmes d'annonces produits en magasin (APM) et de fiches locales gratuites (FLG).
Utilisez-le pour programmer
- Gérer (créer et modifier) les paramètres omnicanaux
- Récupérer (obtenir et lister) les paramètres omnicanaux
- Demander la vérification de l'inventaire pour les marchands éligibles
Pour en savoir plus, consultez Présentation des annonces produits en magasin et des fiches locales gratuites.
Prérequis
Vous devez disposer des éléments suivants :
un compte Merchant Center ;
une fiche d'établissement. Si vous n'en avez pas, vous pouvez en créer un. Consultez Créer une fiche d'établissement.
Une association entre votre fiche d'établissement et votre compte Merchant Center. Pour créer l'association, vous pouvez utiliser l'interface utilisateur Merchant Center ou l'API Merchant (voir Associer une fiche d'établissement Google).
Créer un paramètre omnicanal
Vous pouvez utiliser la méthode omnichannelSettings.create pour créer un paramètre omnicanal. La méthode "create" prend une ressource omnichannelSetting en entrée et renvoie le paramètre omnicanal créé, si l'opération réussit.
Lorsque vous créez un événement, vous devez remplir les champs regionCode et LsfType :
- OmnichannelSetting est défini par pays.
RegionCodedéfinit le pays ciblé. Une fois créé, vous ne pouvez plus le modifier.RegionCodedoit respecter la règle de dénomination définie par le projet Common Locale Data Repository (CLDR). LsfTypeest basé sur votre page produit. Pour plus d'informations, consultez la sectionLsfType.
Pour en savoir plus, consultez Modifier l'expérience sur la page produit pour vos annonces produits en magasin.
Vous n'avez pas besoin de remplir tous les champs lors de la création, mais vous pouvez les configurer ultérieurement. Pour mettre à jour un omnichannelSetting existant, consultez Mettre à jour un paramètre omnicanal.
Voici un exemple de requête si vous choisissez MHLSF_BASIC et que vous vous inscrivez à inStock :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings
{
"regionCode": "{REGION_CODE}",
"lsfType: "MHLSF_BASIC",
"inStock": {
"uri": "{URI}"
}
}
Remplacez les éléments suivants :
{ACCOUNT_ID}: identifiant unique de votre compte Merchant Center{REGION_CODE}: code de région tel que défini par CLDR.{URI}: URI valide utilisé pour l'avis donné. Un URI non éligible peut empêcher l'approbation.
Une fois la requête exécutée, la réponse suivante s'affiche :
{
"name": "accounts/{ACCOUNT_ID}/omnichannelSettings/{omnichannel_setting}",
"regionCode": "{REGION_CODE}",
"lsfType: "MHLSF_BASIC",
"inStock": {
"uri": "{URI}",
"state": "RUNNING"
}
}
L'activation de différentes fonctionnalités LIA/FLL à l'aide des champs omnichannelSetting déclenche des examens manuels qui prennent généralement entre quelques heures et quelques jours. Nous vous recommandons de vérifier vos saisies pour éviter un temps d'attente inutile en raison de données non éligibles.
Pour afficher le paramètre omnicanal que vous venez de créer ou vérifier l'état des avis, utilisez accounts.omnichannelSettings.get ou accounts.omnichannelSettings.list en spécifiant le pays.
Type de page vitrine du magasin
En fonction de la page produit que vous prévoyez d'utiliser, choisissez un LsfType :
| Type de page produit | LsfType | Valeur d'énumération |
|---|---|---|
| Pages produit avec disponibilité en magasin | Page vitrine du magasin hébergée par le marchand (version de base) | MHLSF_BASIC |
| Pages produit propres à un magasin avec disponibilité et prix | Vitrine du magasin hébergée par le marchand (version complète) | MHLSF_FULL |
| Pages produit sans disponibilité en magasin | Vitrine du magasin hébergée par Google | GHLSF |
Si vous choisissez des types de vitrine de magasin hébergée par le marchand, vous devez également renseigner le champ URI pour au moins l'un des éléments inStock ou pickup.
InStock
Vous pouvez utiliser InStock pour fournir plus d'informations sur la page de votre produit.
Si vous choisissez des types de FLS hébergés par le marchand et que vous spécifiez le champ URI dans InStock, vous indiquez votre intention de proposer des produits disponibles en stock. Nous allons commencer l'examen en fonction de l'URI fourni.
Si vous choisissez le type GHLSF, vous devez fournir un champ InStock vide dans la requête. Contrairement aux types de FSF hébergés par le marchand, vous devez suivre la procédure de vérification de l'inventaire pour finaliser l'intégration.
Cet exemple de code crée un omnichannelSetting avec GHLSF :
package shopping.merchant.samples.accounts.v1;
// [START merchantapi_create_omnichannel_setting]
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 retrieved credentials.
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 occurred: ");
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);
}
}
// [END merchantapi_list_omnichannel_settings]
Retrait
En plus de la disponibilité en magasin, vous pouvez également améliorer vos produits en magasin grâce à la fonctionnalité de retrait, qui n'est disponible que pour les types de Fiche d'établissement hébergée par le marchand.
Lorsqu'un produit est marqué comme disponible pour le retrait, cela signifie qu'un client peut l'acheter en ligne et le retirer en magasin. En définissant le champ Pickup, vous indiquez votre intention de proposer des produits avec un délai de retrait. Nous allons commencer l'examen en fonction de l'URI fourni.
Voici un exemple de requête qui crée un paramètre omnichannel avec Pickup :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings
{
"regionCode": "{REGION_CODE}",
"lsfType: "MHLSF_BASIC",
"pickup": {
"uri: "{URI}"
}
}
Exposé et disponible sur commande
La fonctionnalité Exposé et disponible sur commande vous permet de présenter des produits qui sont exposés dans votre magasin physique, mais qui ne peuvent pas être achetés immédiatement. Par exemple, pour les meubles imposants :
- Les clients en quête de produits similaires sur Google verront apparaître ces annonces avec l'annotation "en magasin" dans leurs résultats de recherche.
- Les clients qui parcourent le magasin sur une page de résultats de recherche Google verront ces produits marqués comme "disponibles à la commande".
Ils peuvent cliquer sur votre annonce produit en magasin ou votre fiche locale gratuite pour consulter l'article. Pour l'acheter, ils peuvent se rendre dans votre magasin physique, voir l'article, puis le commander pour qu'il soit livré chez eux ou dans votre magasin.
À propos (Allemagne, Autriche et Suisse)
Si vous diffusez des annonces en Allemagne ou en Autriche et que vous sélectionnez GHLSF, vous devez envoyer une page À propos.
Si vous diffusez des annonces en Suisse, vous devez envoyer une page "À propos", quel que soit LsfType.
Tant que l'URL de la page "À propos" n'est pas validée, les marchands GHLSF ne peuvent pas demander de vérification manuelle de l'inventaire à Google.
Pour tous les marchands de ces trois pays, le service n'active pas les fonctionnalités FLL/LIA tant que votre page "À propos" n'a pas été approuvée.
Vérification de l'inventaire
La vérification de l'inventaire n'est obligatoire que pour les marchands GHLSF. Il n'est pas compatible avec les types MHLSF.
Avant ou après avoir ajouté des données produit et d'inventaire (à l'aide de accounts.products.localInventories.insert ou de l'interface utilisateur Merchant Center), vous devez valider votre contact. Indiquez un contact (nom et adresse e-mail) pour la vérification de l'inventaire à l'aide de la méthode create ou update. Le contact recevra un e-mail envoyé par Google et pourra valider son statut en cliquant sur un bouton dans le message.
Une fois cette étape terminée, vous pouvez demander la vérification de l'inventaire. Pour en savoir plus, consultez À propos de la vérification de l'inventaire.
Vous pouvez modifier votre contact pendant le processus de validation ou après la validation à l'aide de omnichannelSetting.update.
Une fois ce processus terminé, Google valide l'exactitude des informations fournies.
Obtenir un paramètre omnicanal
Pour récupérer la configuration omnichannelSetting dans un pays donné ou vérifier l'état actuel de vos avis, utilisez la méthode omnichannelSettings.get.
Voici un exemple de requête :
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings/{OMNICHANNEL_SETTING}
Remplacez les éléments suivants :
{ACCOUNT_ID}: identifiant unique de votre compte Merchant Center{OMNICHANNEL_SETTING}: code de région du pays ciblé
L'état ACTIVE indique que l'avis a été approuvé.
Si l'état est FAILED, corrigez les problèmes et déclenchez un nouvel examen en appelant omnichannelSetting.update.
Le champ LFP en lecture seule indique l'état de votre partenariat pour les flux en magasin. Pour créer un lien vers le partenariat, utilisez lfpProviders.linkLfpProvider.
Pour savoir comment vérifier les états et ce qu'ils signifient, consultez Afficher l'état d'un paramètre omnicanal.
Lister les paramètres omnicanaux
Pour récupérer toutes les informations omnichannelSetting de votre compte, utilisez la méthode omnichannelSettings.list.
Voici un exemple de code :
package shopping.merchant.samples.accounts.v1;
// [START merchantapi_list_omnichannel_settings]
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 retrieved credentials.
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 occurred: ");
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
omnichannelSettings(config);
}
}
// [END merchantapi_list_omnichannel_settings]
Modifier un paramètre omnicanal
Pour mettre à jour la configuration d'un paramètre omnicanal existant, utilisez la méthode omnichannelSettings.update.
Pour effectuer une mise à jour, vous devez ajouter la fonctionnalité souhaitée au masque de mise à jour et renseigner les champs correspondants dans le champ omnichannelSetting de la requête de mise à jour.
Vous pouvez modifier les informations suivantes :
lsfTypeinStockpickupodoaboutinventoryVerification
Si un attribut n'est pas inclus dans le masque de mise à jour, il ne sera pas mis à jour.
Si un attribut est inclus dans le masque de mise à jour, mais n'est pas défini dans la requête, il sera effacé.
L'exemple de code suivant montre comment mettre à jour le champ de validation de l'inventaire.
package shopping.merchant.samples.accounts.v1;
// [START merchantapi_update_omnichannel_setting]
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 retrieved credentials.
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 occurred: ");
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);
}
}
// [END merchantapi_update_omnichannel_setting]
Demander la vérification de l'inventaire
omnichannelSettings.requestInventoryVerification ne concerne que les marchands GHLSF.
Avant d'appeler ce RPC, vous devez avoir effectué les opérations suivantes :
- Importez vos données produit et d'inventaire.
- Validez un contact chargé de la vérification de l'inventaire.
- Si vous êtes marchand en Allemagne, en Autriche ou en Suisse, faites examiner votre page
About.
Pour déterminer votre éligibilité, appelez le omnichannelSettings.get et consultez le omnichannelSetting.inventoryVerification.state. Si INACTIVE s'affiche, vous pouvez appeler omnichannelSettings.requestInventoryVerification.
package shopping.merchant.samples.accounts.v1;
// [START merchantapi_request_inventory_verification]
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 retrieved credentials.
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 occurred: ");
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);
}
}
// [END merchantapi_request_inventory_verification]
Affichez l'état d'un paramètre omnicanal.
Pour vérifier l'état des examens d'intégration des annonces produits en magasin, consultez ReviewState pour les attributs correspondants de omnichannelSetting renvoyés par les méthodes omnichannelSettings.get ou omnichannelSettings.list.
Le champ ReviewState s'applique à tous les examens d'intégration, à l'exception du processus de validation de l'inventaire. Il peut avoir les valeurs suivantes :
ACTIVE: elle est approuvée.FAILED: elle est refusée.RUNNING: il est toujours en cours d'examen.ACTION_REQUIRED: n'existe que dansInStock.statepour les marchands GHLSF. Cela signifie que vous devez demander la vérification de l'inventaire pour que les annonces LIA soient diffusées.
InventoryVerification.State peut avoir les valeurs suivantes :
SUCCEEDED: elle est approuvée.INACTIVE: Vous êtes prêt à demander la vérification de l'inventaire.RUNNING: en cours d'examenSUSPENDED: vous avez échoué à la vérification de l'inventaire à de trop nombreuses reprises (généralement cinq). Vous devez patienter avant de pouvoir la demander à nouveau.ACTION_REQUIRED: Vous devez effectuer des actions supplémentaires avant de demander la vérification de l'inventaire.
Résoudre les problèmes liés à l'API OmnichannelSettings
Cette section explique comment résoudre les problèmes courants.
Créer un paramètre omnicanal
- Veillez à définir
LsfTypeetRegionCode. - Si vous choisissez
GHLSF, fournissez unInStockvide dans la demande. - Si vous choisissez des types de Fiche de stock locale hébergée par le marchand, fournissez au moins un URI dans
InStockouPickup.
Modifier un paramètre omnicanal
La méthode d'actualisation de cette ressource nécessite les règles supplémentaires suivantes :
- Vous ne pouvez pas modifier le code régional.
- Vous ne pouvez pas effectuer de modifications lorsque la fonctionnalité LIA/FLL est en cours d'exécution ou a été approuvée.
- Lorsque vous passez des types de Fiche d'établissement hébergée par le marchand à
GHLSF, siInStocketPickupont été configurés précédemment, vous devez les inclure dans le masque de mise à jour avec la mise à jourLsfType.
Par exemple, si vous avez déjà demandé à utiliser MHLSF_BASIC et Pickup, mais que votre demande a été refusée, vous pouvez passer à GHLSF en envoyant une requête comme celle-ci :
PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/omnichannelSettings/{REGION_CODE}?update_mask=lsf_type,in_stock,pickup
{
"lsfType: "GHLSF",
"inStock": {},
}
Remplacez les éléments suivants :
{ACCOUNT_ID}: identifiant unique de votre compte Merchant Center{REGION_CODE}: code de région tel que défini par CLDR
Demander la vérification de l'inventaire
Si, malgré la mise à jour des flux de produits ou d'inventaire et la confirmation du contact, InventoryVerification.state est différent de INACTIVE :
- Pour les marchands en Allemagne, en Autriche et en Suisse : assurez-vous d'avoir terminé l'examen de la page "À propos".
- Il y aura un délai d'environ 48 heures.
- En cas d'échecs répétés de la vérification de l'inventaire (plus de cinq), le service impose une période d'attente de 30 jours avant d'autoriser une autre demande. Contactez l'assistance Google si vous souhaitez le recevoir plus tôt.
En savoir plus
Pour en savoir plus, consultez le Centre d'aide Annonces produits en magasin et fiches locales gratuites.