یک نمایه تجاری گوگل را لینک کنید

یک گروه تجاری گوگل مانند یک پوشه مشترک برای مکان‌های شماست. یک گروه تجاری راهی امن برای اشتراک‌گذاری مدیریت مکان‌های شما با چندین کاربر فراهم می‌کند. برای اطلاعات بیشتر، به «درباره گروه‌های تجاری» مراجعه کنید.

قبل از آپلود موجودی محلی خود، گروه تجاری که حساب مرکز فروشندگان شما مسئول آن خواهد بود را مشخص کنید. می‌توانید لیست گروه‌های تجاری واجد شرایط را از نمایه تجاری با استفاده از API فروشندگان دریافت کنید، اما برای دسترسی، ابتدا باید حساب خود را به یک نمایه تجاری پیوند دهید.

درخواست دسترسی به نمایه تجاری

برای دسترسی به یک نمایه تجاری، از متد gbpAccounts.LinkGbpAccount استفاده کنید:

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts:linkGbpAccount

{
  "gbpEmail": "admin@example.com",
}

موارد زیر را جایگزین کنید:

  • ACCOUNT_ID : شناسه منحصر به فرد حساب مرکز فروش شما
  • GBP_EMAIL : ایمیل مدیر برای نمایه تجاری

پس از فراخوانی این متد، سرویس ایمیلی به مدیر مشخص شده ارسال می‌کند و از او می‌خواهد که درخواست دسترسی را بپذیرد یا رد کند. اگر مدیر ظرف 7 روز پاسخ ندهد، درخواست به طور خودکار منقضی می‌شود.

گروه‌های تجاری موجود را فهرست کنید

پس از تأیید درخواست توسط مدیر سیستم، می‌توانید گروه‌های تجاری موجود را با استفاده از متد gbpAccounts.List بررسی کنید.

در اینجا یک نمونه درخواست و پاسخ موفقیت‌آمیز آمده است:

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
}

شما می‌توانید از این نمونه کد برای بازیابی تمام گروه‌های تجاری واجد شرایط استفاده کنید:

جاوا

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

پی اچ پی

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

پایتون

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()

گروه تجاری را برای حساب مرکز بازرگانان مشخص کنید

در لیست گروه‌های تجاری موجود، می‌توانید گروه تجاری را با حساب مرکز بازرگانان خود مرتبط کنید. برای مثال، اگر می‌خواهید گروه تجاری با شناسه حساب GBP 12345 (که از مرحله قبل برگردانده شده است) را انتخاب کنید، می‌توانید 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 {}
  }
}

توجه داشته باشید که فیلد provider باید providers/GOOGLE_BUSINESS_PROFILE باشد. شما باید یک فیلد LocalListingManagement خالی در درخواست تنظیم کنید.

ارسال اطلاعات محصول و موجودی

اکنون که حساب مرکز بازرگانان خود را با یک گروه تجاری مرتبط کرده‌اید، می‌توانید داده‌های محصول و موجودی محلی خود را آپلود کنید. برای اطلاعات بیشتر، به