Cómo crear y administrar cuentas secundarias

En Merchant API, las cuentas avanzadas pueden tener una relación de cuenta secundaria con otra cuenta. Las cuentas secundarias ayudan a las empresas que administran varios vendedores y dominios a gran escala, como minoristas que operan en varios países. Para conocer los tipos de empresas que son aptas para una cuenta avanzada, consulta Empresas que cumplen con los requisitos para acceder a la configuración de cuenta avanzada.

Puedes usar la API de Merchant Accounts para crear cuentas secundarias nuevas en tu cuenta avanzada. Debes tener una cuenta avanzada existente para realizar esta llamada. No puedes usar la API de Merchant para mover cuentas de comercios independientes existentes a tu cuenta.

Para convertir tu cuenta de Merchant Center en una cuenta avanzada, debes ser un administrador de la cuenta. También debes asegurarte de que tu cuenta no tenga problemas pendientes. Para obtener información sobre cómo obtener una cuenta avanzada, consulta Solicita una configuración de cuenta avanzada.

Los proveedores externos pueden usar la API de Merchant Accounts para desarrollar una interfaz que les permita a los comercios crear y administrar los detalles de sus cuentas.

Cómo crear una cuenta secundaria

Para crear una cuenta secundaria nueva en tu cuenta avanzada, llama a accounts.createAndConfigure:

  1. Proporciona los detalles de la cuenta secundaria en el campo account.
  2. Especifica los usuarios autorizados nuevos en el campo users. El acceso de los usuarios también se hereda de la cuenta superior.
  3. Especifica accountAggregation en el campo service.

    A continuación, se muestra un ejemplo para crear una cuenta secundaria en la cuenta account/123, que es un agregador para la cuenta secundaria:

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

En el siguiente ejemplo, se muestra cómo puedes usar el paquete CreateAndConfigureAccountRequest para crear una cuenta secundaria nueva.

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

Cómo recuperar cuentas secundarias

Para enumerar todas las cuentas secundarias de una cuenta de varios clientes determinada, usa el método accounts.listSubaccounts.

Esta es una solicitud de ejemplo:

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

Esta es una respuesta de ejemplo de una llamada correcta:

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

Cómo borrar una cuenta secundaria

Para borrar una cuenta secundaria, usa el método accounts.delete. Para ejecutar este método, se requiere acceso de administrador.

Esta es una solicitud de ejemplo:

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

Si se ejecuta correctamente, el cuerpo de la respuesta es un objeto JSON vacío.

Acepta las Condiciones del Servicio

Las cuentas secundarias heredan las Condiciones del Servicio (CS) de Merchant Center que firmó la cuenta principal.

Actualiza la información de tu empresa

Puedes usar la API de Merchant Accounts para editar la información de tu empresa.