Créer et gérer des sous-comptes

Dans l'API Merchant, les comptes avancés peuvent avoir une relation de sous-compte avec un autre compte. Les sous-comptes aident les entreprises qui gèrent plusieurs vendeurs et domaines à grande échelle, comme les marchands qui opèrent dans plusieurs pays. Pour connaître les types d'entreprises éligibles à un compte avancé, consultez Entreprises éligibles à l'accès aux paramètres de compte avancés.

Vous pouvez utiliser l'API Merchant Accounts pour créer des sous-comptes dans votre compte avancé. Vous devez disposer d'un compte avancé pour effectuer cet appel. Vous ne pouvez pas utiliser l'API Merchant pour transférer des comptes marchands autonomes existants vers votre compte.

Pour convertir votre compte Merchant Center en compte avancé, vous devez en être l'administrateur. Vous devez également vous assurer que votre compte ne présente aucun problème en attente. Pour savoir comment obtenir un compte avancé, consultez Demander un compte avancé.

Les fournisseurs tiers peuvent utiliser Merchant Accounts API pour développer une interface permettant aux marchands de créer et de gérer les informations de leur compte.

Créer un sous-compte

Pour créer un sous-compte dans votre compte avancé, appelez accounts.createAndConfigure:

  1. Indiquez les informations du sous-compte dans le champ account.
  2. Spécifiez les nouveaux utilisateurs autorisés dans le champ users. L'accès des utilisateurs est également hérité du compte parent.
  3. Spécifiez accountAggregation dans le champ service.

    Voici un exemple de création d'un sous-compte sous le compte account/123, qui est un agrégateur pour le sous-compte:

    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"
        }
      ]
    }
    

L'exemple suivant montre comment utiliser le package CreateAndConfigureAccountRequest pour créer un sous-compte.

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);
  }
}

Récupérer des sous-comptes

Pour lister tous les sous-comptes d'un compte multiclient donné, utilisez la méthode accounts.listSubaccounts.

Voici un exemple de requête:

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

Voici un exemple de réponse à un appel réussi:

{
  "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"
    }
  ]
}

Supprimer un sous-compte

Pour supprimer un sous-compte, utilisez la méthode accounts.delete. Pour exécuter cette méthode, vous devez disposer d'un accès administrateur.

Voici un exemple de requête:

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

Si la requête aboutit, le corps de la réponse est un objet JSON vide.

Accepter les conditions d'utilisation

Les sous-comptes héritent des conditions d'utilisation (CGU) de Merchant Center signées par le compte parent.

Mettre à jour les informations sur votre établissement

Vous pouvez utiliser l'API Merchant Accounts pour modifier les informations sur votre entreprise.