Un grupo de ubicaciones de la empresa de Google es como una carpeta compartida para tus ubicaciones. Un grupo de ubicaciones de la empresa proporciona una forma segura de compartir la administración de tus ubicaciones con varios usuarios. Para obtener más información, consulta Acerca de los grupos de empresas.
Antes de subir tu inventario local, especifica el grupo de ubicaciones de la empresa del que se hará cargo tu cuenta de Merchant Center. Puedes obtener la lista de grupos de empresas aptos del Perfil de Negocio a través de la API de Merchant, pero, para obtener acceso, primero debes vincular tu cuenta a un Perfil de Negocio.
Cómo solicitar acceso a un Perfil de Negocio
Para acceder a un Perfil de Negocio, usa el método gbpAccounts.LinkGbpAccount:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts:linkGbpAccount
{
"gbpEmail": "admin@example.com",
}
Reemplaza lo siguiente:
ACCOUNT_ID: Es el identificador único de tu cuenta de Merchant Center.GBP_EMAIL: Es el correo electrónico del administrador del Perfil de Negocio.
Cuando se llama a este método, el servicio envía un correo electrónico al administrador especificado para que acepte o rechace la solicitud de acceso. Si el administrador no responde en un plazo de 7 días, la solicitud vencerá automáticamente.
Enumera los grupos de empresas disponibles
Una vez que el administrador apruebe la solicitud, podrás consultar los grupos de empresas disponibles con el método gbpAccounts.List.
A continuación, se muestran una solicitud de ejemplo y una respuesta correcta:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts
Response:
200 OK
{
"gbpAccounts": [
{
"name": "accounts/{ACCOUNT_ID}/gbpAccounts/12345",
"gbpAccountId": 12345,
"type": USER,
"gbpAccountName": "admin@example.com",
"listingCount": 15
}, {
"name": "accounts/{ACCOUNT_ID}/gbpAccounts/67890",
"gbpAccountId": 67890,
"type": BUSINESS_ACCOUNT,
"gbpAccountName": "Google My Business Account",
"listingCount": 23
}
],
"nextPageToken": 50
}
Puedes utilizar esta muestra de código para recuperar todos los grupos de empresas aptos:
Java
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.GbpAccount;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceClient.ListGbpAccountsPagedResponse;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.ListGbpAccountsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to get the list of GBP accounts for a given Merchant Center account
*/
public class ListGbpAccountsSample {
public static void listGbpAccounts(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.
GbpAccountsServiceSettings gbpAccountsServiceSettings =
GbpAccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String accountId = config.getAccountId().toString();
// Creates parent to identify the omnichannelSetting from which to list all Lfp Providers.
String parent = AccountName.newBuilder().setAccount(accountId).build().toString();
// Calls the API and catches and prints any network failures/errors.
try (GbpAccountsServiceClient gbpAccountsServiceClient =
GbpAccountsServiceClient.create(gbpAccountsServiceSettings)) {
ListGbpAccountsRequest request =
ListGbpAccountsRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list GBP accounts request:");
ListGbpAccountsPagedResponse response = gbpAccountsServiceClient.listGbpAccounts(request);
int count = 0;
// Iterates over all the entries in the response.
for (GbpAccount gbpAccount : response.iterateAll()) {
System.out.println(gbpAccount);
count++;
}
System.out.println(String.format("The following count of elements were returned: %d", count));
} catch (Exception e) {
System.out.println("An error has occured: ");
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
listGbpAccounts(config);
}
}
PHP
require_once __DIR__ . '/../../../../vendor/autoload.php';
require_once __DIR__ . '/../../../Authentication/Authentication.php';
require_once __DIR__ . '/../../../Authentication/Config.php';
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\GbpAccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\GbpAccount;
use Google\Shopping\Merchant\Accounts\V1\ListGbpAccountsRequest;
/**
* This class demonstrates how to get the list of GBP accounts for a given
* Merchant Center account.
*/
class ListGbpAccountsSample
{
/**
* A helper function to create the parent string.
*
* @param string $accountId The account ID.
*
* @return string The parent has the format: `accounts/{account_id}`
*/
private static function getParent(string $accountId): string
{
return sprintf('accounts/%s', $accountId);
}
/**
* Retrieves the list of GBP accounts for a given Merchant Center account.
*
* @param array $config The configuration data for authentication and account ID.
*
* @return void
*/
public static function listGbpAccounts(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$gbpAccountsServiceClient = new GbpAccountsServiceClient($options);
// Creates the parent account name to identify the merchant.
$parent = self::getParent($config['accountId']);
// Creates the request to list GBP accounts.
$request = new ListGbpAccountsRequest([
'parent' => $parent
]);
// Calls the API and catches and prints any network failures/errors.
try {
printf("Sending list GBP accounts request:%s", PHP_EOL);
$response = $gbpAccountsServiceClient->listGbpAccounts($request);
$count = 0;
// Iterates over all the GBP accounts in the response and prints them.
foreach ($response->iterateAllElements() as $gbpAccount) {
/** @var GbpAccount $gbpAccount */
print_r($gbpAccount->serializeToJsonString());
$count++;
}
printf(
"The following count of elements were returned: %d%s",
$count,
PHP_EOL
);
} catch (ApiException $e) {
printf("An error has occurred: %s%s", $e->getMessage(), PHP_EOL);
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
self::listGbpAccounts($config);
}
}
// Runs the script.
$sample = new ListGbpAccountsSample();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import GbpAccountsServiceClient
from google.shopping.merchant_accounts_v1 import ListGbpAccountsRequest
# Gets the merchant account ID from the configuration file.
_ACCOUNT = configuration.Configuration().read_merchant_info()
# Creates the parent resource name string.
_PARENT = f"accounts/{_ACCOUNT}"
def list_gbp_accounts() -> None:
"""Lists the Google Business Profile accounts for a given Merchant Center account."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = GbpAccountsServiceClient(credentials=credentials)
# Creates the request.
request = ListGbpAccountsRequest(parent=_PARENT)
# Makes the request and catches and prints any error messages.
try:
print("Sending list GBP accounts request:")
# Makes the request and retrieves the list of GBP accounts.
response = client.list_gbp_accounts(request=request)
count = 0
# Iterates over all the GBP accounts in the response and prints them.
for gbp_account in response:
print(gbp_account)
count += 1
print(f"The following count of elements were returned: {count}")
except RuntimeError as e:
print("An error has occured: ")
print(e)
if __name__ == "__main__":
list_gbp_accounts()
Especifica el grupo de ubicaciones de la empresa para la cuenta de Merchant Center
lista de grupos de ubicaciones de la empresa disponibles, puedes asociar el grupo de ubicaciones de la empresa con tu cuenta de Merchant Center. Por ejemplo, si deseas elegir el grupo de ubicaciones de la empresa con el ID de cuenta en GBP 12345 (que se devolvió en el paso anterior), puedes usar AccountServices.proposeAccountService:
POST
https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/services:propose
{
provider: "providers/GOOGLE_BUSINESS_PROFILE",
account_service: {
external_account_id: "12345",
local_listing_management {}
}
}
Ten en cuenta que el campo provider debe ser providers/GOOGLE_BUSINESS_PROFILE. Debes establecer un campo LocalListingManagement vacío en la solicitud.
Envía datos de productos y de inventario
Ahora que asociaste tu cuenta de Merchant Center a un grupo de ubicaciones de la empresa, puedes subir tus datos de productos y de inventario local. Para obtener más información, consulta