Creare e gestire subaccount

Nell'API Merchant, gli account avanzati possono avere una relazione di subaccount con un altro account. I subaccount sono utili per le attività che gestiscono più venditori e domini su larga scala, ad esempio i rivenditori che operano in più paesi. Per i tipi di attività idonee per un account avanzato, consulta Aziende che possono accedere alle impostazioni dell'account avanzato.

Puoi utilizzare l'API Merchant Accounts per creare nuovi subaccount nel tuo account avanzato. Per effettuare questa chiamata, devi avere un account avanzato esistente. Non puoi utilizzare l'API Merchant per spostare gli account commerciante autonomi esistenti nel tuo account.

Per convertire il tuo account Merchant Center in un account avanzato, devi essere un amministratore dell'account. Inoltre, devi assicurarti che il tuo account non presenti problemi in sospeso. Per informazioni su come ottenere un account avanzato, consulta Richiedere la configurazione di un account avanzato.

I fornitori di terze parti possono utilizzare l'API Merchant Accounts per sviluppare un'interfaccia che consenta ai commercianti di creare e gestire i dettagli dei loro account.

Creare un subaccount

Per creare un nuovo subaccount nel tuo account avanzato, chiama accounts.createAndConfigure:

  1. Fornisci i dettagli del subaccount nel campo account.
  2. Specifica i nuovi utenti autorizzati nel campo users. Anche l'accesso utente viene ereditato dall'account principale.
  3. Specifica accountAggregation nel campo service.

    Di seguito è riportato un esempio di creazione di un subaccount nell'account account/123, che è un aggregatore per il subaccount:

    POST https://merchantapi.googleapis.com/accounts/v1beta/accounts:createAndConfigure
    
    {
      "account": {
        "accountName": "merchantStore",
        "adultContent": false,
        "timeZone": {
          "id": "America/New_York",
        }
        "languageCode": "en-US",
      },
      "service": [
        {
          "accountAggregation": {},
          "provider": "providers/123"
        }
      ]
    }
    

Il seguente esempio mostra come utilizzare il pacchetto CreateAndConfigureAccountRequest per creare un nuovo subaccount.

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.Account;
import com.google.shopping.merchant.accounts.v1beta.AccountAggregation;
import com.google.shopping.merchant.accounts.v1beta.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1beta.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest;
import com.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest.AddAccountService;
import com.google.type.TimeZone;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to create a sub-account under an MCA account. */
public class CreateSubAccountSample {

  private static String getParent(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void createSubAccount(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.
    AccountsServiceSettings accountsServiceSettings =
        AccountsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates parent/provider to identify the MCA account into which to insert the subaccount.
    String parent = getParent(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (AccountsServiceClient accountsServiceClient =
        AccountsServiceClient.create(accountsServiceSettings)) {

      CreateAndConfigureAccountRequest request =
          CreateAndConfigureAccountRequest.newBuilder()
              .setAccount(
                  Account.newBuilder()
                      .setAccountName("Demo Business")
                      .setAdultContent(false)
                      .setTimeZone(TimeZone.newBuilder().setId("America/New_York").build())
                      .setLanguageCode("en-US")
                      .build())
              .addService(
                  AddAccountService.newBuilder()
                      .setProvider(parent)
                      .setAccountAggregation(AccountAggregation.getDefaultInstance())
                      .build())
              .build();

      System.out.println("Sending Create SubAccount request");
      Account response = accountsServiceClient.createAndConfigureAccount(request);
      System.out.println("Inserted Account Name below");
      // Format: `accounts/{account}
      System.out.println(response.getName());
    } catch (Exception e) {
      System.out.println(e);
    }
  }

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

    createSubAccount(config);
  }
}

Recuperare i subaccount

Per elencare tutti i subaccount di un determinato account multi-cliente, utilizza il metodo accounts.listSubaccounts.

Ecco una richiesta di esempio:

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}:listSubaccounts

Ecco un esempio di risposta di una chiamata andata a buon fine:

{
  "accounts": [
    {
      "name": "accounts/{ACCOUNT_ID}",
      "accountId": "{ACCOUNT_ID}",
      "accountName": "{ACCOUNT_NAME}",
      "timeZone": {
        "id": "America/Los_Angeles"
      },
      "languageCode": "en-US"
    },
    {
      "name": "accounts/{ACCOUNT_ID}",
      "accountId": "{ACCOUNT_ID}",
      "accountName": "{ACCOUNT_NAME}",
      "timeZone": {
        "id": "America/Los_Angeles"
      },
      "languageCode": "en-US"
    }
  ]
}

Eliminare un subaccount

Per eliminare un subaccount, utilizza il metodo accounts.delete. L'esecuzione di questo metodo richiede l'accesso amministrativo.

Ecco una richiesta di esempio:

DELETE https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}

In caso di esito positivo, il corpo della risposta è un oggetto JSON vuoto.

Accetta i Termini di servizio

I subaccount ereditano i Termini di servizio (TdS) di Merchant Center sottoscritti dall'account principale.

Aggiornare le informazioni sull'attività

Puoi utilizzare l'API Merchant Accounts per modificare le informazioni sulla tua attività.