محدودیت‌های Merchant Center

Merchant Center علاوه‌بر سهمیه فراخوانی میانای برنامه‌سازی کاربردی، محدودیت‌های دیگری را نیز بر منابع اعمال می‌کند. این محدودیت‌ها اغلب با سهمیه‌های API اشتباه گرفته می‌شوند، اما بخشی از محدودیت‌های Merchant Center هستند. برای اطلاعات بیشتر، آشنایی با سهمیه‌ها در Google Merchant Center را ببینید.

حدود محصول

برای بررسی حدود محصول، از روش‌های accounts.limits.get و accounts.limits.list استفاده می‌کنید.

برای بازیابی محدودیت محصولی خاص، مثلاً برای دریافت سهمیه Ads EEA حساب، باید شناسه حساب و شناسه محدودیت را در تماس با accounts.limits.get مشخص کنید. شناسه محدودیت ترکیبی از نوع و محدوده محدودیت است. برای مثال، products~ADS_EEA برای محصولاتی که آگهی‌ها را در منطقه اقتصادی اروپا هدف‌یابی می‌کنند، و products~ADS_NON_EEA برای محصولاتی که آگهی‌ها را در خارج از منطقه اقتصادی اروپا هدف‌یابی می‌کنند.

در اینجا یک درخواست نمونه برای دریافت حد products~ADS_EEA برای یک حساب مشخص آورده شده است:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits/products~ADS_EEA

نمونه زیر نشان می‌دهد که چگونه یک حد حساب خاص را بازیابی کنید:

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.quota.v1.AccountLimit;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceSettings;
import com.google.shopping.merchant.quota.v1.GetAccountLimitRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to get a single account limit for a given Merchant Center account.
 */
public class GetAccountLimitSample {

  public static void getAccountLimit(String accountId, String limitId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    AccountLimitsServiceSettings accountLimitsServiceSettings =
        AccountLimitsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (AccountLimitsServiceClient accountLimitsServiceClient =
        AccountLimitsServiceClient.create(accountLimitsServiceSettings)) {

      GetAccountLimitRequest request =
          GetAccountLimitRequest.newBuilder()
              .setName(String.format("accounts/%s/limits/%s", accountId, limitId))
              .build();

      System.out.println("Sending get account limit request:");
      AccountLimit response = accountLimitsServiceClient.getAccountLimit(request);

      System.out.println("Retrieved account limit below");
      System.out.println(response);

    } catch (Exception e) {
      System.out.println("Failed to get account limit.");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // The limit ID is a combination of the limit type and the scope, for example:
    // `products~ADS_NON_EEA`
    getAccountLimit(config.getAccountId().toString(), "products~ADS_EEA");
  }
}

برای آشنایی با شناسه‌های حد استفاده موجود برای حسابتان، از accounts.limits.list با فیلتری برای type="products" استفاده کنید:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/limits?filter=type%3D%22products%22

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

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.quota.v1.AccountLimit;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceClient.ListAccountLimitsPagedResponse;
import com.google.shopping.merchant.quota.v1.AccountLimitsServiceSettings;
import com.google.shopping.merchant.quota.v1.ListAccountLimitsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to list account limits for a given Merchant Center account. */
public class ListAccountLimitsSample {

  public static void listAccountLimits(String accountId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    AccountLimitsServiceSettings accountLimitsServiceSettings =
        AccountLimitsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    try (AccountLimitsServiceClient accountLimitsServiceClient =
        AccountLimitsServiceClient.create(accountLimitsServiceSettings)) {

      ListAccountLimitsRequest request =
          ListAccountLimitsRequest.newBuilder()
              .setParent(String.format("accounts/%s", accountId))
              .setFilter("type = \"products\"")
              .build();

      System.out.println("Sending list account limits request:");
      ListAccountLimitsPagedResponse response =
          accountLimitsServiceClient.listAccountLimits(request);

      int count = 0;

      // Iterates over all rows in all pages and prints the account limit in each row.
      // Automatically uses the `nextPageToken` if returned to fetch all pages of data.
      for (AccountLimit accountLimit : response.iterateAll()) {
        System.out.println(accountLimit);
        count++;
      }
      System.out.print("The following count of account limits were returned: ");
      System.out.println(count);

    } catch (Exception e) {
      System.out.println("Failed to list account limits.");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    listAccountLimits(config.getAccountId().toString());
  }
}

حدود نمایش منابع

محدودیت‌های زیر محدودیت‌های قابل‌توجهی را برای مقادیر رشته‌ای خاص و فیلدهای آرایه در نمایش منابع مورداستفاده در Merchant API شرح می‌دهند. این محدودیت‌ها هم برای Merchant API و هم برای ویژگی متناظر آن‌ها در Merchant Center یکسان است.

منبع فیلد حد
shippingsettings

سرویس‌های ارسال کالا برای هر کشور (services).

گروه‌های ارسال برای هر سرویس ارسال (rateGroups).

برچسب برای هر گروه ارسال کالا (applicableShippingLabels).

زیرجدول‌ها برای هر گروه ارسال (subtables).

تعداد ردیف‌ها یا ستون‌ها در یک جدول نرخ.

طول برچسب‌های ارسال کالا.

20

20

30

100

۱۵۰

100

تعداد ردیف‌ها یا ستون‌ها در جدول نرخ بر فیلدهای آرایه زیر تأثیر می‌گذارد:

  • فیلدهای آرایه در rowHeaders یا columnHeaders:
    • prices[]
    • weights[]
    • numberOfItems[]
    • postalCodeGroupNames[]
    • locations[]
    • rows[]
    • cells[]