Régions

Le service regions vous permet de créer et de gérer des régions géographiques que vous pouvez utiliser comme cibles avec les services regionalinventory et shippingsettings. Vous pouvez définir des régions comme des ensembles de codes postaux ou, dans certains pays, à l'aide de cibles géographiques prédéfinies. Ce guide fournit des exemples expliquant comment définir chaque type de région et créer un remplacement de prix régional. Pour en savoir plus sur le service regions, y compris sur l'ensemble des méthodes et paramètres disponibles, consultez la documentation de référence.

Éligibilité de la région

Lorsque vous créez une région, le service "regions" détermine si vous pouvez l'utiliser avec d'autres services Content API. L'objet de réponse renvoyé pour un appel regions.create réussi inclut deux champs booléens, regionalInventoryEligible et shippingEligible, qui indiquent si vous pouvez utiliser la région avec les services regionalinventory et shippingsettings, respectivement.

regionalInventoryEligible

Pour qu'une région puisse être utilisée avec le service regionalinventory, elle doit répondre aux critères suivants:

  • La valeur regionId, que vous spécifiez lors de la création d'une région, ne doit contenir que des chiffres et au moins six.
  • La région doit respecter les exigences minimales de taille pour la zone géographique et la population en ligne.

shippingEligible

Pour qu'une région puisse être utilisée avec le service shippingsettings, elle doit répondre aux critères suivants:

  • La région doit être définie à l'aide de codes postaux.
  • La région doit faire partie d'un pays dans lequel le service shippingsettings est disponible.

Samples

Voici un exemple de code complet permettant de créer une région en 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();
  }
}

Créer une région à l'aide de codes postaux

Vous pouvez utiliser la méthode regions.create pour créer une région définie comme un ensemble de codes postaux. L'exemple ci-dessous crée une région pour l'État américain de l'Arizona en spécifiant une plage de codes postaux.

Pour créer la région, exécutez une requête POST à l'aide de l'URL et du corps de requête suivants:

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

Une limite stricte de 2 Mo de données s'applique par compte Merchant Center pour regions et shippingsettings. Les paramètres de livraison et de région sont copiés en interne depuis un MC vers tous ses sous-comptes. Pour les MC plus importants, vous pouvez donc atteindre rapidement votre limite de stockage. Dans ce cas, une solution consiste à gérer regions et shippingsettings au niveau de la référence marchand. Il n'existe aucun moyen d'augmenter le quota de vos régions au-delà de la limite de 2 Mo.

Créer une région à l'aide de cibles géographiques

Pour les régions du Brésil et de Russie, vous pouvez également utiliser la méthode regions.create afin de créer une région définie comme un ensemble de cibles géographiques, qui sont des zones géographiques prédéfinies. Les pays, les États, les villes, les quartiers et les aéroports sont des exemples de types de cibles géographiques. Toutefois, le service regions n'est actuellement compatible qu'avec le type "État" pour le Brésil et le type "Région" pour la Russie. Pour télécharger un fichier CSV de tous les ID de cible géographique, y compris les cibles géographiques pouvant être utilisées avec le service regions, consultez la section Cibles géographiques. L'exemple ci-dessous crée une région en fournissant les ID de cible géographique de trois États brésiliens.

Pour créer la région, exécutez une requête POST à l'aide de l'URL et du corps de requête suivants:

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

Créer des remplacements de prix régionaux à l'aide du service "regions"

Lorsque vous créez une région, le service regions renvoie un objet de réponse qui comprend un regionId et deux champs d'état d'éligibilité. Si la valeur regionalInventoryEligible est définie sur true, vous pouvez utiliser le service regionaliventory afin de créer un remplacement qui définit un prix différent pour la région. L'exemple ci-dessous crée un remplacement de prix régional à l'aide de la région basée sur des codes postaux créée dans l'exemple ci-dessus, dont le regionId est "456789".

Pour créer le forçage, exécutez une requête POST à l'aide de l'URL et du corps de requête suivants:

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