Khu vực

Dịch vụ regions cho phép bạn tạo và quản lý các khu vực địa lý mà bạn có thể sử dụng làm mục tiêu bằng cả dịch vụ regionalinventoryshippingsettings. Bạn có thể xác định khu vực là tập hợp các mã bưu chính hoặc trong một số quốc gia, sử dụng đích địa lý được xác định trước. Hướng dẫn này cung cấp các ví dụ về cách xác định từng loại khu vực, cũng như cách tạo mức giá thay thế theo khu vực. Để biết thêm thông tin về dịch vụ regions, bao gồm tất cả các phương thức và tham số có sẵn, hãy xem tài liệu tham khảo.

Khu vực đủ điều kiện

Khi bạn tạo một khu vực, dịch vụ khu vực sẽ xác định xem bạn có thể sử dụng khu vực đó với các dịch vụ Content API khác hay không. Đối tượng phản hồi được trả về cho một lệnh gọi regions.create thành công bao gồm hai trường boolean, regionalInventoryEligibleshippingEligible, cho biết liệu bạn có thể sử dụng vùng với các dịch vụ regionalinventoryshippingsettings hay không.

regionalInventoryEligible

Để đủ điều kiện sử dụng với dịch vụ regionalinventory, một khu vực phải đáp ứng các tiêu chí sau:

  • regionId mà bạn chỉ định khi tạo một khu vực chỉ được chứa chữ số và phải chứa ít nhất 6 chữ số.
  • Khu vực đó phải đáp ứng các yêu cầu tối thiểu về quy mô địa lý và dân số trực tuyến.

shippingEligible

Để đủ điều kiện sử dụng với dịch vụ shippingsettings, một khu vực phải đáp ứng các tiêu chí sau:

  • Bạn phải xác định khu vực bằng mã bưu chính.
  • Khu vực phải thuộc một quốc gia được dịch vụ shippingsettings hỗ trợ.

Mẫu

Dưới đây là mã mẫu đầy đủ mà bạn có thể sử dụng để tạo một khu vực mới trong 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();
  }
}

Tạo khu vực bằng mã bưu chính

Bạn có thể sử dụng phương thức regions.create để tạo một khu vực được xác định là một tập hợp mã bưu chính. Ví dụ dưới đây tạo một khu vực mới cho tiểu bang Arizona của Hoa Kỳ bằng cách chỉ định một dải mã bưu chính.

Để tạo vùng, hãy tạo một yêu cầu POST bằng URL và nội dung yêu cầu sau:

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

Mỗi tài khoản Merchant Center có hạn mức cứng là 2 MB dữ liệu cho regionsshippingsettings. Chế độ cài đặt thông tin vận chuyển và khu vực được sao chép nội bộ từ một tài khoản người bán đa kênh (MCA) sang tất cả tài khoản phụ của tài khoản đó. Vì vậy, đối với các MCA lớn hơn, bạn có thể nhanh chóng đạt đến hạn mức bộ nhớ. Trong trường hợp này, giải pháp là quản lý regionsshippingsettings ở cấp mã người bán. Không có cách nào để tăng hạn mức của các khu vực vượt quá giới hạn 2 MB.

Tạo khu vực bằng tiêu chí nhắm mục tiêu theo vị trí địa lý

Đối với các khu vực ở Brazil và Nga, bạn cũng có thể sử dụng phương thức regions.create để tạo một khu vực được xác định là một tập hợp các mục tiêu địa lý, là các khu vực địa lý được xác định trước. Ví dụ về các loại tiêu chí nhắm mục tiêu theo vị trí địa lý bao gồm quốc gia, tiểu bang, thành phố, khu dân cư và sân bay. Tuy nhiên, dịch vụ regions hiện chỉ hỗ trợ loại "Tiểu bang" cho Brazil và loại "Khu vực" cho Nga. Để tải tệp CSV chứa tất cả mã mục tiêu theo vị trí địa lý xuống, bao gồm cả các mục tiêu theo vị trí địa lý có thể sử dụng với dịch vụ regions, hãy xem phần Mục tiêu theo vị trí địa lý. Ví dụ dưới đây sẽ tạo một khu vực mới bằng cách cung cấp mã nhận dạng mục tiêu theo vị trí địa lý của ba tiểu bang Brazil.

Để tạo vùng, hãy tạo một yêu cầu POST bằng URL và nội dung yêu cầu sau:

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

Sử dụng khu vực để tạo chính sách thay thế giá theo khu vực

Khi bạn tạo một khu vực, dịch vụ regions sẽ trả về một đối tượng phản hồi bao gồm regionId và hai trường trạng thái eligibility (đủ điều kiện). Nếu giá trị regionalInventoryEligibletrue, bạn có thể sử dụng dịch vụ regionaliventory để tạo một giá trị ghi đè đặt giá khác cho khu vực. Ví dụ bên dưới tạo một giá ghi đè theo khu vực bằng cách sử dụng khu vực dựa trên mã bưu chính được tạo trong ví dụ ở trên, có regionId là "456789".

Để tạo cơ chế ghi đè, hãy tạo một yêu cầu POST bằng URL và nội dung yêu cầu sau:

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