اطلاعات منطقه ای را به روز نگه دارید

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

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

قیمت و در دسترس بودن را بر اساس منطقه به روز کنید

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

مناطق موجود خود را مشاهده کنید

این بخش نحوه مشاهده مناطق مرتبط با یک محصول یا حساب را توضیح می دهد.

بر اساس محصول

از regionalInventories.list برای فهرست کردن تمام موجودی های منطقه ای متصل به یک محصول خاص در حساب خود استفاده کنید. از فیلد region برای شناسایی منطقه ای که هر موجودی منطقه ای به آن اشاره می کند استفاده کنید.

در اینجا نمونه‌ای وجود دارد که می‌توانید از آن برای فهرست کردن موجودی‌های منطقه‌ای یک محصول استفاده کنید:

جاوا

  public static void listRegionalInventories(Config config, String productId) throws Exception {
    GoogleCredentials credential = new Authenticator().authenticate();

    RegionalInventoryServiceSettings regionalInventoryServiceSettings =
        RegionalInventoryServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String parent = getParent(config.getMerchantId().toString(), productId);

    try (RegionalInventoryServiceClient regionalInventoryServiceClient =
        RegionalInventoryServiceClient.create(regionalInventoryServiceSettings)) {

      //  The parent product has the format: accounts/{account}/products/{product}
      ListRegionalInventoriesRequest request =
          ListRegionalInventoriesRequest.newBuilder().setParent(parent).build();

      System.out.println("Sending list regional inventory request:");
      ListRegionalInventoriesPagedResponse response =
          regionalInventoryServiceClient.listRegionalInventories(request);

      int count = 0;

      // Iterates over all rows in all pages and prints the regional inventory
      // in each row.
      for (RegionalInventory element : response.iterateAll()) {
        System.out.println(element);
        count++;
      }
      System.out.print("The following count of elements were returned: ");
      System.out.println(count);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

CURL

  curl --location
  'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/regionalInventories' \
  --header 'Authorization: Bearer <API_TOKEN>'

PHP

class ListRegionalInventories
{

    // ENSURE you fill in the merchant account and product ID for the sample to
    // work.
    private const PARENT = 'accounts/[INSERT_ACCOUNT_HERE]/products/[INSERT_PRODUCT_HERE]';

    /**
     * Lists all the regional inventories of a given product.
     *
     * @param string $parent The `name` of the parent product to list `RegionalInventory`
     *     resources for.
     *     Format: `accounts/{account}/products/{product}`
     */
    function listRegionalInventoriesSample(string $parent): 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.
        $regionalInventoryServiceClient = new RegionalInventoryServiceClient($options);

        // Calls the API and catches and prints any network failures/errors.
        try {
            // Page size is set to the default value. If you are returned more
            // responses than your page size, this code will automatically
            // re-call the service with the `pageToken` until all responses
            // are returned.
            $parameters = ['pageSize' => 25000];

            /** @var PagedListResponse $response */
            $response =
                $regionalInventoryServiceClient->listRegionalInventories($parent, $parameters);

            /** @var RegionalInventory $element */
            foreach ($response as $element) {
                printf('RegionalInventory data: %s%s', $element->serializeToJsonString(), PHP_EOL);
            }
        } catch (ApiException $ex) {
            printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
        }
    }

    // Helper to execute the sample.
    function callSample(): void
    {
        // Lists all the regional inventories of the parent product.
        $this->listRegionalInventoriesSample($this::PARENT);
    }
}

پایتون

from examples.authentication import generate_user_credentials
from google.shopping import merchant_inventories_v1beta

# ENSURE you fill in the merchant account and product ID for the sample to
# work.
_ACCOUNT = "[INSERT_ACCOUNT_HERE]"
_PRODUCT = "[INSERT_PRODUCT_HERE]"
_PARENT = f"accounts/{_ACCOUNT}/products/{_PRODUCT}"


def list_regional_inventories():
  """Lists the `RegionalInventory` resources for the given product.

  The response might contain fewer items than specified by
  `pageSize`. If `pageToken` was returned in previous request, it can be
  used to obtain additional results.

  `RegionalInventory` resources are listed per product for a given account.
  """

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
      credentials=credentials)

  # Creates the request.
  # Page size is set to the default value.
  request = merchant_inventories_v1beta.ListRegionalInventoriesRequest(
      parent=_PARENT,
      page_size=25000
  )

  try:
    # Makes the request and catch and print any error messages.
    # If you are returned more responses than your page size, this code
    # will automatically re-call the service with the `pageToken` until all
    # responses are returned.
    page_result = client.list_regional_inventories(request=request)

    # Print the response.
    for response in page_result:
      print(response)

  except Exception as e:
    print("List failed")
    print(e)

با حساب

می‌توانید از روش regions.list در Content API برای خرید برای مشاهده همه مناطق حساب خود استفاده کنید.

مناطق را حذف کنید

در اینجا نحوه حذف مناطقی که دیگر محصولاتی در آنها نمی فروشید، آمده است.

از محصولات

اگر محصولی دیگر در منطقه خاصی فروخته نمی شود، باید آن اطلاعات موجودی منطقه ای را از محصول حذف کنید. می توانید از regionalInventories.delete برای حذف یک ورودی موجودی منطقه ای خاص از یک محصول استفاده کنید.

در اینجا نمونه ای وجود دارد که می توانید برای حذف یک موجودی منطقه ای از یک محصول استفاده کنید:

جاوا

  public static void deleteRegionalInventory(Config config, String productId, String regionId)
      throws Exception {
    // TODO(brothman): Please add more line comments to explain what each significant step is doing.
    // For example:
    // Obtains OAuth tokens based on the configuration.
    // Creates service settings using the credentials above. Etc

    GoogleCredentials credential = new Authenticator().authenticate();

    RegionalInventoryServiceSettings regionalInventoryServiceSettings =
        RegionalInventoryServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String name =
        RegionalInventoryName.newBuilder()
            .setAccount(config.getMerchantId().toString())
            .setProduct(productId)
            .setRegion(regionId)
            .build()
            .toString();

    try (RegionalInventoryServiceClient regionalInventoryServiceClient =
        RegionalInventoryServiceClient.create(regionalInventoryServiceSettings)) {
      DeleteRegionalInventoryRequest request =
          DeleteRegionalInventoryRequest.newBuilder().setName(name).build();

      System.out.println("Sending deleteRegionalInventory request");
      regionalInventoryServiceClient.deleteRegionalInventory(
          request); // no response returned on success
      System.out.println(
          "Delete successful, note that it may take up to 30 minutes for the delete to update in"
              + " the system.");
    } catch (Exception e) {
      System.out.println(e);
    }
  }

CURL

  curl --location --request DELETE
  'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/regionalInventories/123456' \
  --header 'Authorization: Bearer <API_TOKEN>'

PHP

class DeleteRegionalInventory
{

    // ENSURE you fill in the merchant account, product, and region ID for the
    // sample to work.
    private const ACCOUNT = 'INSERT_ACCOUNT_ID_HERE';
    private const PRODUCT = 'INSERT_PRODUCT_ID_HERE';
    private const REGION = 'INSERT_REGION_ID_HERE';

    /**
     * Deletes a specific regional inventory of a given product.
     *
     * @param string $formattedName The name of the `RegionalInventory` resource
     * to delete.
     *     Format: `accounts/{account}/products/{product}/regionalInventories/{region}`
     *     Please see {@see RegionalInventoryServiceClient::regionalInventoryName()}
     *     for help formatting this field.
     */
    function deleteRegionalInventorySample(string $formattedName): 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.
         $regionalInventoryServiceClient = new RegionalInventoryServiceClient($options);

         // Calls the API and catches and prints any network failures/errors.
         try {
             $regionalInventoryServiceClient->deleteRegionalInventory($formattedName);
             print 'Delete call completed successfully.' . PHP_EOL;
         } catch (ApiException $ex) {
             printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
         }
    }

    /**
     * Helper to execute the sample.
     */
    function callSample(): void
    {
        // These variables are defined at the top of the file.
        $formattedName = RegionalInventoryServiceClient::regionalInventoryName(
            $this::ACCOUNT,
            $this::PRODUCT,
            $this::REGION
        );

        // Deletes the specific regional inventory of the parent product.
        $this->deleteRegionalInventorySample($formattedName);
    }
}

پایتون

from examples.authentication import generate_user_credentials
from google.shopping import merchant_inventories_v1beta

# ENSURE you fill in the merchant account and product ID and region ID
# for the sample to work.
_ACCOUNT = "[INSERT_ACCOUNT_HERE]"
_PRODUCT = "[INSERT_PRODUCT_HERE]"
_REGION = "[INSERT_REGION_HERE]"
_NAME = f"accounts/{_ACCOUNT}/products/{_PRODUCT}/regionalInventories/{_REGION}"


def delete_regional_inventory():
  """Deletes the specified `RegionalInventory` resource from the given product.

  It might take up to an hour for the `RegionalInventory` to be deleted
  from the specific product. Once you have received a successful delete
  response, wait for that period before attempting a delete again.
  """

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
      credentials=credentials)

  # Creates the request.
  request = merchant_inventories_v1beta.DeleteRegionalInventoryRequest(
      name=_NAME,
  )

  # Makes the request and catch and print any error messages.
  try:
    client.delete_regional_inventory(request=request)
    print("Delete successful")
  except Exception as e:
    print("Delete failed")
    print(e)

ممکن است تا 30 دقیقه طول بکشد تا یک ورودی RegionalInventory از یک محصول حذف شود.

این تماس فقط اطلاعات مربوط به region مشخص شده را از product مشخص شده حذف می کند.

از حساب ها

می‌توانید از روش regions.delete در Content API برای خرید استفاده کنید تا مناطقی را که دیگر محصولات خود را در آن‌ها نمی‌فروشید از کل حساب تاجر خود حذف کنید.