L'API OmnichannelSettings est le point d'entrée pour configurer vos programmes d'annonces produits en magasin (APM) et de fiches locales gratuites.
Utilisez-la de manière programmatique :
- Gérer (créer et mettre à jour) les paramètres omnicanaux
- Récupérer (get et list) les paramètres omnicanaux
- Demander la vérification de l'inventaire pour les marchands éligibles
Pour en savoir plus, consultez la présentation des annonces produits en magasin et des fiches locales gratuites.
Prérequis
Vous devez disposer de
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 de Merchant Center ou l'API Merchant Center (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" utilise une ressource omnichannelSetting
comme entrée et renvoie le paramètre omnicanal créé, si l'opération aboutit.
Lors de la création, vous devez renseigner à la fois regionCode
et LsfType
:
- OmnichannelSetting est défini par pays.
RegionCode
définit le pays ciblé. Une fois créé, vous ne pouvez plus le modifier.RegionCode
doit suivre la règle de dénomination définie par le projet Common Locale Data Repository (CLDR). LsfType
est 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 à l'étape de création, mais vous pouvez les configurer plus tard. Pour mettre à jour un omnichannelSetting
existant, consultez la section Mettre à jour un paramètre omnicanal.
Voici un exemple de requête si vous choisissez MHLSF_BASIC
et enregistrez 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'enregistrement de différentes fonctionnalités LIA/FLL à l'aide de champs omnichannelSetting
déclenche des examens manuels qui prennent généralement quelques heures à quelques jours. Nous vous recommandons de vérifier vos données afin d'éviter les temps d'attente inutiles dus à des 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 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 | Vitrine du magasin hébergée par le marchand (version de base) | MHLSF_BASIC |
Pages produit propres à un magasin avec la disponibilité et le 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 page vitrine du magasin hébergée par le marchand, vous devez également remplir 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 votre page produit.
Si vous choisissez des types de fichiers LSF hébergés par le marchand et que vous spécifiez le champ URI dans "InStock", vous indiquez votre intention de diffuser des produits disponibles en stock. Nous allons examiner l'URI fourni.
Si vous choisissez le type GHLSF
, vous devez fournir un champ InStock
vide dans la requête. Contrairement aux types de LSF hébergés par le marchand, pour finaliser l'intégration, vous devez suivre la procédure de vérification de l'inventaire.
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 avec la fonctionnalité de retrait, qui n'est disponible que pour les types de flux de données produit en magasin hébergés par le marchand.
Lorsqu'un produit est marqué comme disponible en 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 diffuser des produits avec un SLO de retrait. Nous allons commencer un examen basé sur 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 choisir 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 et en Autriche et que vous choisissez GHLSF
, vous devez envoyer une page À propos.
Si vous diffusez des annonces en Suisse, vous devez envoyer une page "À propos", quel que soit le paramètre LsfType
.
Tant que l'URL de la page "À propos" n'est pas validée, les marchands GHLSF
ne peuvent pas demander à Google de vérifier manuellement leur inventaire.
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 validation de l'inventaire n'est requise que pour les marchands GHLSF
. Il n'est pas compatible avec les types MHLSF
.
Vous devez valider votre contact 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 de Merchant Center). Indiquez un contact chargé de la vérification de l'inventaire (nom et adresse e-mail) à l'aide de la méthode create
ou update
. Le contact recevra un e-mail de Google et pourra vérifier son état 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 validation 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'examen 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 en savoir plus sur la vérification des états et leur signification, consultez Afficher l'état d'un paramètre omnicanal.
Répertorier 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]
Mettre à jour un paramètre omnicanal
Pour mettre à jour la configuration d'un paramètre omnicanal existant, utilisez la méthode omnichannelSettings.update
.
Pour effectuer la mise à jour, vous devez ajouter l'élément géographique souhaité au masque de mise à jour et renseigner les champs correspondants dans le champ omnichannelSetting
de la requête de mise à jour.
Vous pouvez mettre à jour les informations suivantes :
lsfType
inStock
pickup
odo
about
inventoryVerification
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 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
n'est pertinent que pour les marchands GHLSF
.
Avant d'appeler cette 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, examinez la page
About
.
Pour savoir si vous êtes éligible, appelez omnichannelSettings.get
et vérifiez 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]
Afficher l'état d'un paramètre omnicanal
Pour vérifier l'état d'examen des avis d'intégration des annonces produits en magasin, recherchez dans ReviewState
les attributs correspondants de omnichannelSetting
renvoyés par les méthodes omnichannelSettings.get
ou omnichannelSettings.list
.
Le champ ReviewState
s'applique à toutes les évaluations d'intégration, à l'exception du processus de validation de l'inventaire. Il peut prendre les valeurs suivantes:
ACTIVE
: elle est approuvée.FAILED
: elle est refusée.RUNNING
: elle est toujours en cours d'examen.ACTION_REQUIRED
: ne figure que dansInStock.state
pour les marchands GHLSF. Cela signifie que vous devez demander la vérification de l'inventaire pour que les 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
: la vérification de l'inventaire a échoué trop de fois (généralement cinq fois) et vous devez patienter avant de pouvoir la demander à nouveau.ACTION_REQUIRED
: Vous devez prendre des mesures supplémentaires avant de demander la validation 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 à la fois
LsfType
etRegionCode
. - Si vous choisissez
GHLSF
, fournissez unInStock
vide dans la requête. - Si vous choisissez des types de LSF hébergés par le marchand, fournissez au moins un URI dans
InStock
ouPickup
.
Mettre à jour un paramètre omnicanal
La méthode de mise à jour 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 mises à jour tant que la fonctionnalité LIA/FLL est en cours d'exécution ou a été approuvée.
- Lorsque vous passez des types de LSF hébergés par le marchand à
GHLSF
, siInStock
etPickup
ont déjà été configurés, vous devez les inclure dans le masque de mise à jour avec la mise à jourLsfType
.
Par exemple, si vous avez appliqué MHLSF_BASIC
et Pickup
auparavant et qu'ils ont été refusés, 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 situés en Allemagne, en Autriche et en Suisse: assurez-vous d'avoir effectué un examen de votre page "À propos".
- Le délai d'attente est d'environ 48 heures.
- En cas d'échecs répétés de la vérification de l'inventaire (plus de cinq), le service applique une période d'attente de 30 jours avant d'autoriser une nouvelle requête. Contactez l'assistance Google si vous souhaitez demander un remboursement anticipé.
En savoir plus
Pour en savoir plus, consultez le Centre d'aide sur les annonces produits en magasin et les fiches locales gratuites.