區域

regions 服務可讓您建立及管理 可以當做指定目標 regionalinventoryshippingsettings 免費 Google Cloud 服務您可以將區域定義為郵遞區號集合 部分國家/地區的 指定地理區域。本指南提供 範例:如何定義各種區域,以及如何建立區域 。如要進一步瞭解 regions 服務, 包括所有可用方法和參數,請參閱參考說明文件。

區域資格條件

您在建立區域時,區域服務會決定您是否可以使用 與其他 Content API 服務整合針對 成功的 regions.create 呼叫包含兩個布林值欄位, regionalInventoryEligibleshippingEligible,用於指明 區域可搭配 regionalinventoryshippingsettings 服務使用。 。

regionalInventoryEligible

如要使用 regionalinventory 服務,區域必須符合 符合以下條件:

  • 建立區域時指定的 regionId,只能包含 長度必須至少為 6 個數字。
  • 區域必須符合地理區域和網路的最低尺寸規定 人口。

shippingEligible

如要使用 shippingsettings 服務,區域必須符合 符合以下條件:

  • 請使用郵遞區號定義區域。
  • 區域必須位於shippingsettings支援的國家/地區 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務

範例

以下是您可以在 Java 中建立新區域的完整程式碼範例:

// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package shopping.content.v2_1.samples.regions;

import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.services.content.model.Region;
import com.google.api.services.content.model.RegionPostalCodeArea;
import com.google.api.services.content.model.RegionPostalCodeAreaPostalCodeRange;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import shopping.content.v2_1.samples.ContentSample;

/**
 * Creates a region. The region created here can be used with the regional inventory service.
 * Regional availability and pricing lets you provide product availability and variable pricing
 * based on your business presence and the location of your customer base. Regional availability and
 * pricing is available for products advertised through Shopping ads on Google Search, and listed in
 * free listings on the Shopping tab.
 */
public class RegionCreateSample extends ContentSample {
  public RegionCreateSample(String[] args) throws IOException {
    super(args);
  }

  @Override
  public void execute() throws IOException {
    checkNonMCA();

    // Creates a List of Postal Code Area Postal Code Ranges.
    // This allows you to flexibly define regions as combinations of postal code
    // ranges. Each postal code range in the list has its own start and end zip code.
    List<RegionPostalCodeAreaPostalCodeRange> postalCodeRanges =
        new ArrayList<RegionPostalCodeAreaPostalCodeRange>();

    // Creates a new postal code range from two postal code values.
    // This range is equivalent to all postal codes in the USA state of New York (00501 - 14925)
    RegionPostalCodeAreaPostalCodeRange postalCodeRange =
        new RegionPostalCodeAreaPostalCodeRange().setBegin("00501").setEnd("14925");

    // Adds the NY State postal code range into the list of postal code ranges that a postal
    // code area accepts.
    postalCodeRanges.add(postalCodeRange);

    // Creates Postal Code Area for the Region that will be inserted, using the NY State postal code
    // ranges, and the US CLDR territory/country code that the postal code ranges applies to.
    RegionPostalCodeArea postalCodeArea =
        new RegionPostalCodeArea().setPostalCodes(postalCodeRanges).setRegionCode("US");

    // Creates a region with example values for displayName and postalCodeArea
    Region region = new Region().setDisplayName("NYState").setPostalCodeArea(postalCodeArea);

    // Tries to create the region, and catches any exceptions
    try {
      System.out.println("Creating region");
      Region result =
          content
              .regions()
              .create(this.config.getMerchantId().longValue(), region)
              .setRegionId("12345678") // User-defined, numeric, minimum of 6 digits
              .execute();
      System.out.println("Listing succesfully created region");
      System.out.println(result);
    } catch (GoogleJsonResponseException e) {
      checkGoogleJsonResponseException(e);
    }
  }

  public static void main(String[] args) throws IOException {
    new RegionCreateSample(args).execute();
  }
}

使用郵遞區號建立區域

您可以使用 regions.create 方法,建立定義為郵遞區號集合的區域。範例 下方為美國亞利桑那州建立新的區域,方法是指定 郵遞區號。

如要建立區域,請使用以下網址提出 POST 要求並要求 內文:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/regions?regionId=456789
{
  postalCodeArea: {
    regionCode: "US",
    postalCodes: [
      {
        begin: "850*",
        end: "860*"
      }
    ]
   }
}

regions」的資料有 2MB 的硬性限制 且每個 Merchant Center 帳戶均有 shippingsettings 個。運送和區域設定 是從 MCA 複製到所有子帳戶中 MCA 可能會快速達到儲存空間上限。在這種情況下,解決方法是 才能在商家 ID 層級管理 regionsshippingsettings。由於沒有 建議您提高區域配額超過 2 MB 的限制。

使用指定地理區域建立區域

針對巴西和俄羅斯的區域,您也可以使用 regions.create 方法 建立一組定義為多個指定地理區域的區域 地理區域。指定地理區域類型範例包括國家/地區、州/省、城市 例如鄰近區域和機場不過,目前只有 regions 服務 支援巴西的「州/省」類型,俄羅斯的「區域」類型。目的地: 下載內含所有指定地理區域編號的 CSV 檔案,包括可用的指定地理區域 與 regions 服務搭配使用,請參閱 指定地理區域。以下範例會建立 新的區域,方法是提供三個巴西州的指定地理區域 ID。

如要建立區域,請使用以下網址提出 POST 要求並要求 內文:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/regions?regionId=123456
{
  geoTargetAreas: {
    geotargetCriteriaId: [20106, 20102, 20101] //Sao Paulo, Rio de Janeiro, Parana
  }
}

使用區域來建立區域價格覆寫設定

建立區域時,regions 服務會傳回其回應物件 包含 regionId 和兩個資格狀態欄位。如果 regionalInventoryEligible 的值為 true,您可以使用 regionaliventory 服務來建立覆寫值,為該區域設定不同的價格。 以下範例使用郵遞區號,建立區域價格覆寫規則 新增的區域,其 regionId 為「456789」。

如要建立覆寫值,請使用以下網址發出 POST 要求,並 要求主體:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/{productId}/regionalinventory
{
  “regionId”: "456789"
  “price”: {
    value: 10
    currency: “USD”
  },
  “availability”: “in stock”
}