Регионы

Служба regions позволяет создавать географические регионы и управлять ими, которые можно использовать в качестве целевых объектов как для regionalinventory , так и для служб shippingsettings . Вы можете определить регионы как наборы почтовых индексов или, в некоторых странах, используя предопределенные геотаргеты . В этом руководстве приведены примеры определения каждого типа региона, а также создания переопределения региональных цен. Дополнительную информацию о сервисе regions , включая все доступные методы и параметры, смотрите в справочной документации.

Право на участие в регионе

Когда вы создаете регион, служба регионов определяет, можете ли вы использовать этот регион с другими службами Content API. Объект ответа, возвращаемый при успешном вызове regions.create , включает в себя два логических поля: regionalInventoryEligible и shippingEligible , которые указывают, можете ли вы использовать регион со службами regionalinventory и shippingsettings соответственно.

региональныйИнвентарьДопускается

Чтобы иметь право на использование службы regionalinventory , регион должен соответствовать следующим критериям:

  • regionId , который вы указываете при создании региона, должен содержать только цифры и содержать не менее 6 цифр.
  • Регион должен соответствовать минимальным требованиям к размеру географической территории и численности онлайн-населения.

ДоставкаДопускается

Чтобы иметь право на использование со службой shippingsettings , регион должен соответствовать следующим критериям:

  • Регион необходимо определять с помощью почтовых индексов.
  • Регион должен быть частью страны, поддерживаемой службой shippingsettings .

Образцы

Вот полный пример кода, который вы можете использовать для создания нового региона в 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 со следующим URL-адресом и телом запроса:

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

Для regions и shippingsettings существует жесткое ограничение в 2 МБ данных для каждого аккаунта Merchant Center. Настройки доставки и региона копируются из MCA во все его дочерние учетные записи, поэтому для более крупных MCA вы можете быстро исчерпать лимит хранилища. В этом случае обходным решением является управление regions и shippingsettings на уровне идентификатора продавца. Невозможно увеличить квоту вашего региона сверх лимита в 2 МБ.

Создайте регион, используя геотаргеты

Для регионов в Бразилии и России вы также можете использовать метод regions.create чтобы создать регион, определенный как набор геоцелей, которые представляют собой предопределенные географические области. Примеры типов геоцелей включают страны, штаты, города, районы и аэропорты. Однако служба regions в настоящее время поддерживает только тип «Штат» для Бразилии и тип «Регион» для России. Чтобы загрузить CSV-файл со всеми идентификаторами геоцелей, включая геоцели, которые можно использовать со службой regions , см. раздел Геоцели . В приведенном ниже примере создается новый регион путем предоставления идентификаторов геоцелей трех штатов Бразилии.

Чтобы создать регион, сделайте запрос POST , используя следующий URL-адрес и тело запроса:

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 , используя следующий URL-адрес и тело запроса:

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