Un groupe d'établissements Google est semblable à un dossier partagé pour vos établissements. Un groupe d'établissements vous permet de partager en toute sécurité la gestion de vos établissements avec plusieurs utilisateurs. Pour en savoir plus, consultez À propos des groupes d'établissements.
Avant d'importer votre inventaire en magasin, spécifiez le groupe d'établissements que votre compte Merchant Center doit gérer. Vous pouvez obtenir la liste des groupes d'établissements éligibles à partir de la fiche d'établissement à l'aide de l'API Merchant, mais pour y accéder, vous devez d'abord associer votre compte à une fiche d'établissement.
Demander l'accès à une fiche d'établissement
Pour accéder à une fiche d'établissement, utilisez la méthode gbpAccounts.LinkGbpAccount :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts:linkGbpAccount
{
"gbpEmail": "admin@example.com",
}
Remplacez les éléments suivants :
ACCOUNT_ID: identifiant unique de votre compte Merchant CenterGBP_EMAIL: adresse e-mail de l'administrateur de la fiche d'établissement
Lorsque vous appelez cette méthode, le service envoie un e-mail à l'administrateur spécifié, lui demandant d'accepter ou de refuser la demande d'accès. Si l'administrateur ne répond pas dans les sept jours, la demande expire automatiquement.
Lister les groupes d'établissements disponibles
Une fois que l'administrateur a approuvé la demande, vous pouvez vérifier les groupes d'entreprises disponibles à l'aide de la méthode gbpAccounts.List.
Voici un exemple de requête et de réponse positive :
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
}
Vous pouvez utiliser cet exemple de code pour récupérer tous les groupes d'entreprises éligibles :
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()
Spécifier le groupe d'établissements pour le compte Merchant Center
Une fois que vous avez la liste des groupes d'établissements disponibles, vous pouvez associer le groupe d'établissements à votre compte Merchant Center. Par exemple, si vous souhaitez choisir le groupe d'établissements dont le compte Fiche d'établissement Google a l'ID 12345 (renvoyé à l'étape précédente), vous pouvez utiliser 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 {}
}
}
Notez que le champ provider doit être providers/GOOGLE_BUSINESS_PROFILE. Vous devez définir un champ LocalListingManagement vide dans la requête.
Envoyer des données produit et d'inventaire
Maintenant que vous avez associé votre compte Merchant Center à un groupe d'établissements, vous pouvez importer vos données produit et d'inventaire en magasin. Pour en savoir plus, consultez