Gestire le impostazioni omnicanale

L'API OmnichannelSettings è il punto di contatto per la configurazione dei programmi Annunci di inventario locale (LIA) e Schede locali senza costi (FLL).

Utilizzalo per

  • Gestire (creare e aggiornare) le impostazioni omnicanale
  • Recupera (ottieni ed elenca) le impostazioni omnicanale
  • Richiedere la verifica dell'inventario per i commercianti idonei

Per saperne di più, consulta la panoramica degli annunci di inventario locale e delle schede locali senza costi.

Prerequisiti

Devi avere

Creare un'impostazione omnicanale

Puoi utilizzare il metodo omnichannelSettings.create per creare un'impostazione omnicanale. Il metodo create riceve come input una risorsa omnichannelSetting e, se l'operazione va a buon fine, restituisce l'impostazione omnicanale creata.

Al momento della creazione, devi compilare sia regionCode sia LsfType:

  • OmnichannelSetting è basato sul paese. RegionCode definisce il paese di destinazione. Una volta creato, non puoi modificarlo. RegionCode deve rispettare la regola di denominazione definita dal progetto Common Locale Data Repository (CLDR).
  • LsfType si basa sulla pagina del prodotto. Per maggiori dettagli, consulta LsfType.

Per maggiori dettagli, consulta Modificare l'esperienza sulla pagina di prodotto per gli annunci di inventario locale.

Non è necessario compilare tutti i campi nella fase di creazione, ma puoi configurarli in un secondo momento. Per aggiornare un omnichannelSetting esistente, consulta Aggiornare un'impostazione omnicanale.

Ecco una richiesta di esempio se scegli MHLSF_BASIC e ti registri inStock:

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

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

Sostituisci quanto segue:

  • {ACCOUNT_ID}: l'identificatore univoco del tuo account Merchant Center
  • {REGION_CODE}: un codice regione come definito da CLDR
  • {URI}: un URI valido utilizzato per la recensione in questione. Un URI non idoneo potrebbe impedire l'approvazione.

Una volta eseguita correttamente la richiesta, dovresti visualizzare la seguente risposta:

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

La registrazione di diverse funzionalità LIA/FLL utilizzando i campi omnichannelSetting attiva revisioni manuali che in genere richiedono da un paio d'ore a un paio di giorni. Ti consigliamo di verificare attentamente i dati inseriti per evitare tempi di attesa non necessari a causa di dati non idonei.

Per visualizzare l'impostazione omnicanale appena creata o controllare lo stato delle revisioni, utilizza accounts.omnichannelSettings.get o accounts.omnichannelSettings.list, specificando il paese.

Tipo di vetrina locale

In base alla pagina del prodotto che prevedi di utilizzare, scegli un LsfType:

Tipo di pagina di prodotto LsfType Valore enum
Pagine di prodotto con disponibilità in negozio Vetrina locale ospitata dal commerciante (implementazione di base) MHLSF_BASIC
Pagine di prodotto specifiche per i singoli negozi con disponibilità e prezzo Vetrina locale ospitata dal commerciante (implementazione completa) MHLSF_FULL
Pagine di prodotto senza disponibilità in negozio Vetrina locale su Google GHLSF

Se scegli i tipi di vetrina locale ospitata dal commerciante, devi anche compilare il campo URI per almeno uno dei valori inStock o pickup.

InStock

Puoi utilizzare InStock per fornire ulteriori informazioni sulla pagina del prodotto.

Se scegli i tipi di vetrine locali ospitate dal commerciante e specifichi il campo URI in InStock, indici la tua intenzione di pubblicare prodotti disponibili. Inizieremo un controllo in base all'URI fornito.

Se scegli il tipo GHLSF, devi fornire un campo InStock vuoto nella richiesta. A differenza dei tipi di feed dei fornitori ospitati da Merchant, per completare l'onboarding devi completare la procedura di verifica dell'inventario.

Questo codice di esempio crea un omnichannelSetting con 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]

Pickup

Oltre alla disponibilità in negozio, puoi anche migliorare i tuoi prodotti disponibili in negozio con la funzionalità Ritira, che è idonea solo per i tipi di feed di inventario locale ospitati da Merchant.

Quando un prodotto è contrassegnato come disponibile per il ritiro, significa che un cliente può acquistarlo online e ritirarlo in negozio. Se imposti il campo Pickup, dichiari la tua intenzione di pubblicare prodotti con un contratto di servizio per il ritiro. Inizieremo una revisione in base all'URI fornito.

Ecco una richiesta di esempio che crea un'impostazione omnichannel con Pickup:

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

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

In esposizione, può essere ordinato

Con la funzionalità In esposizione, può essere ordinato, puoi mostrare i prodotti esposti nel tuo negozio fisico, ma non disponibili per un acquisto immediato. Ad esempio, mobili di grandi dimensioni:

  • I clienti che cercano prodotti simili su Google visualizzeranno questi annunci con l'annotazione "In negozio" nei risultati di ricerca.
  • I clienti che esplorano il negozio in una pagina dei risultati di ricerca di Google vedranno questi prodotti contrassegnati come "Ordinabile".

Possono scegliere il tuo annuncio di inventario locale o la tua scheda locale senza costi per visualizzare l'articolo. Per acquistare l'articolo, possono visitare il tuo negozio fisico, visualizzarlo e quindi ordinarlo, scegliendo tra la spedizione a domicilio oppure presso il tuo negozio, dove potranno ritirarlo.

Informazioni (Germania, Austria e Svizzera)

Se fai pubblicità in Austria e Germania e scegli GHLSF, devi inviare una pagina Informazioni.

Se la pubblicazione avviene in Svizzera, devi inviare una pagina "Informazioni" indipendentemente da LsfType.

Finché l'URL della pagina Informazioni non viene verificato, i commercianti GHLSF non possono richiedere a Google la verifica manuale dell'inventario.

Per tutti i commercianti di questi tre paesi, il servizio non attiva le funzionalità FLL/LIA finché la tua pagina Informazioni non riceve l'approvazione.

Verifica dell'inventario

La verifica dell'inventario è obbligatoria solo per i commercianti GHLSF. Non è supportato per i tipi MHLSF.

Devi verificare il tuo contatto prima o dopo aver aggiunto i dati di prodotto e di inventario (utilizzando accounts.products.localInventories.insert o l'interfaccia utente di Merchant Center). Fornisci un contatto per la verifica dell'inventario (nome e indirizzo email) utilizzando il metodo create o update. Il contatto riceverà un'email inviata da Google e la possibilità di verificare il suo stato facendo clic su un pulsante nel messaggio.

Al termine, puoi richiedere la verifica dell'inventario. Per ulteriori informazioni, consulta la sezione Informazioni sulla verifica dell'inventario.

Puoi modificare il tuo contatto durante la procedura di verifica o dopo la verifica utilizzando omnichannelSetting.update.

Al termine di questa procedura, Google convalida l'accuratezza delle informazioni fornite.

Recuperare un'impostazione omnicanale

Per recuperare la configurazione omnichannelSetting in un determinato paese o controllare lo stato attuale delle revisioni, utilizza il metodo omnichannelSettings.get.

Ecco una richiesta di esempio:

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

Sostituisci quanto segue:

  • {ACCOUNT_ID}: l'identificatore univoco del tuo account Merchant Center
  • {OMNICHANNEL_SETTING}: il codice regione del paese di destinazione

Lo stato ACTIVE indica che la revisione è stata approvata.

Se lo stato è FAILED, risolvi i problemi e attiva una nuova revisione chiamando omnichannelSetting.update.

Il campo di sola lettura LFP mostra lo stato della partnership per i feed locali. Per collegarti alla partnership, utilizza lfpProviders.linkLfpProvider.

Per ulteriori informazioni su come controllare gli stati e i relativi significati, consulta Visualizzare lo stato di un'impostazione omnicanale.

Elenca le impostazioni omnicanale

Per recuperare tutte le informazioni omnichannelSetting per il tuo account, utilizza il metodo omnichannelSettings.list.

Ecco un esempio di codice:

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]

Aggiornare un'impostazione omnicanale

Per aggiornare la configurazione di un'impostazione omnicanale esistente, utilizza il metodo omnichannelSettings.update.

Per eseguire l'aggiornamento, devi aggiungere la funzionalità che ti interessa alla maschera di aggiornamento e compilare i campi corrispondenti nel campo omnichannelSetting della richiesta di aggiornamento. Puoi aggiornare qualsiasi

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

Se un attributo non è incluso nella maschera di aggiornamento, non verrà aggiornato.

Se un attributo è incluso nella maschera di aggiornamento, ma non è impostato nella richiesta, verrà cancellato.

Il seguente esempio di codice mostra come aggiornare il campo di verifica dell'inventario.

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]

Richiedere la verifica dell'inventario

omnichannelSettings.requestInventoryVerification è pertinente solo per i commercianti GHLSF.

Prima di chiamare questa RPC, devi aver eseguito quanto segue:

  • Carica i dati di prodotto e di inventario.
  • Verifica un contatto per la verifica dell'inventario.
  • I commercianti in Austria, Germania o Svizzera devono completare una revisione della pagina About.

Per determinare la tua idoneità, chiama omnichannelSettings.get e consulta omnichannelSetting.inventoryVerification.state. Se viene visualizzato INACTIVE, significa che puoi chiamare 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]

Visualizza lo stato di un'impostazione omnicanale.

Per controllare lo stato delle revisioni di onboarding LIA, controlla ReviewState per gli attributi corrispondenti di omnichannelSetting restituiti dai metodi omnichannelSettings.get o omnichannelSettings.list.

Il campo ReviewState si applica a tutte le revisioni di onboarding, ad eccezione della procedura di verifica dell'inventario, e può avere i seguenti valori:

  • ACTIVE: è approvata.
  • FAILED: viene rifiutato.
  • RUNNING: è ancora in corso di revisione.
  • ACTION_REQUIRED: esiste solo in InStock.state per i commercianti GHLSF. Ciò significa che devi richiedere la verifica dell'inventario per pubblicare annunci dinamici basati sugli interessi.

InventoryVerification.State ha i seguenti valori:

  • SUCCEEDED: è approvata.
  • INACTIVE: puoi procedere con la richiesta di verifica dell'inventario.
  • RUNNING: è in corso di revisione
  • SUSPENDED: non hai superato la verifica dell'inventario troppe volte (di solito 5) e devi attendere prima di poterla richiedere di nuovo.
  • ACTION_REQUIRED: devi intraprendere ulteriori azioni prima di richiedere la verifica dell'inventario.

Questa sezione descrive come risolvere i problemi più comuni.

Creare un'impostazione omnicanale

  • Assicurati di impostare sia LsfType che RegionCode.
  • Se scegli GHLSF, fornisci un InStock vuoto nella richiesta.
  • Se scegli i tipi di LSF ospitati dal commerciante, fornisci almeno un URI in InStock o Pickup.

Aggiornare un'impostazione omnicanale

Il metodo di aggiornamento di questa risorsa richiede le seguenti regole aggiuntive:

  • Non puoi modificare il codice regione.
  • Non puoi apportare aggiornamenti mentre la funzionalità LIA/FLL è in esecuzione o è stata approvata.
  • Quando passi dai tipi di LSF ospitati dal commerciante a GHLSF, se InStock e Pickup sono stati configurati in precedenza, devi includerli nella maschera di aggiornamento insieme all'aggiornamento LsfType.

Ad esempio, se in precedenza hai applicato MHLSF_BASIC e Pickup e le richieste sono state rifiutate, puoi passare a GHLSF inviando una richiesta come questa:

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

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

Sostituisci quanto segue:

  • {ACCOUNT_ID}: l'identificatore univoco del tuo account Merchant Center
  • {REGION_CODE}: un codice regione come definito da CLDR

Richiedere la verifica dell'inventario

Se, nonostante l'aggiornamento dei feed dei prodotti o dell'inventario e la conferma del contatto, InventoryVerification.state è diverso da INACTIVE:

  • Per i commercianti in Austria, Germania e Svizzera: assicurati di aver completato una revisione della pagina Informazioni.
  • Ci sarà un ritardo di circa 48 ore.
  • In caso di ripetuti errori di controllo dell'inventario (più di cinque), il servizio impone un periodo di attesa di 30 giorni prima di consentire un'altra richiesta. Contatta l'Assistenza Google se vuoi richiederlo in anticipo.

Scopri di più

Per maggiori dettagli, consulta il Centro assistenza annunci di inventario locale e schede locali senza costi.