Служба 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”
}