migration, compatibility

Migrate region management

This guide explains how to migrate your integration from the RegionsService in Content API for Shopping to the RegionsService within the Accounts sub-API.

The Regions service lets you define custom geographic areas for use cases such as regional pricing and shipping overrides. You can use regions with services like RegionalInventory and ShippingSettings .

Key differences

  • API structure:The Regions service is now part of the Accounts sub-API in Merchant API (for example, merchantapi.googleapis.com/accounts/v1/... ).
  • Resource names:Merchant API uses resource names ( accounts/{account}/regions/{region} ) instead of separate merchant_id and region_id parameters in the URL path for Get, Update, and Delete operations.
  • AIP compliance:Merchant API methods follow standard API Improvement Proposal patterns (such as using parent for List/Create, name for Get/Delete, and standard update_mask usage).
  • Wrapper types:Fields that previously used google.protobuf.StringValue or google.protobuf.BoolValue in Content API now use standard optional fields in Merchant API.
  • New features:
    • Merchant API introduces a RadiusArea type within the Region resource to define regions based on a radius around a point (initially with TRUST_TESTER visibility).
    • Batch methods - BatchCreateRegions , BatchUpdateRegions , BatchDeleteRegions - are available.
  • Error handling:Error codes and messages provide more specific feedback.

Requests

Here's how request patterns change:

Item Content API for Shopping Merchant API Description
Endpoint
https://shoppingcontent.googleapis.com https://merchantapi.googleapis.com The base domain changes.
Get Path
/content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} Merchant API uses the accounts sub-API and a resource name .
List Path
/content/v2.1/{merchant_id}/regions /accounts/v1/{parent=accounts/*}/regions Merchant API uses parent to specify the account.
Create Path
/content/v2.1/{merchant_id}/regions /accounts/v1/{parent=accounts/*}/regions Merchant API uses parent . region_id is a field in the request body.
Update Path
/content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} The resource name in Merchant API is part of the region object in the body.
Delete Path
/content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} Uses resource name .

Identifiers

Change your use of identifiers as follows:

Item Content API for Shopping Merchant API Description
Account
merchant_id (integer) account (integer, part of name or parent string) Find the account ID embedded in the resource name string, for example, accounts/{account} .
Region
region_id (string) {region} (string, part of name string) Find the region ID embedded in the resource name string, for example, accounts/{account}/regions/{region} .
Resource Name
Not strictly used for requests. name : accounts/{account}/regions/{region} Standard identifier for Get/Update/Delete requests.
Parent Name
Not strictly used for requests. parent : accounts/{account} Standard identifier for List/Create requests.

Resources

The Region resource structure has minor changes:

Item Content API for Shopping Merchant API Description
Resource Identifier
region_id (string), merchant_id (int64) name (string): accounts/{account}/regions/{region} Merchant API uses a single name field as the resource identifier.
display_name
google.protobuf.StringValue optional string Wrapper type removed.
radius_area
Not Available (N/A) RadiusArea This new type defines regions by radius. Includes region_code , lat_lng , radius , radius_units . By default, visibility is restricted.
regional_inventory_eligible
google.protobuf.BoolValue (output only) optional bool (output only) Wrapper type removed.
shipping_eligible
google.protobuf.BoolValue (output only) optional bool (output only) Wrapper type removed.

Methods

Change your use of methods as follows:

Item Content API for Shopping Merchant API Description
Get Region
GetRegion GetRegion The request uses name .
Create Region
CreateRegion CreateRegion The request takes the parent from the URL, while the request body includes the region object and the region_id .
Update Region
UpdateRegion UpdateRegion The request uses region (which must include region.name ) and update_mask .
Delete Region
DeleteRegion DeleteRegion The request uses name .
List Regions
ListRegions ListRegions The request uses parent . page_size and page_token behavior is consistent.
Batch Create
N/A BatchCreateRegions This is a new method.
Batch Update
N/A BatchUpdateRegions This is a new method.
Batch Delete
N/A BatchDeleteRegions This is a new method.

Renamed fields

Item Content API for Shopping Merchant API Description
Account ID
merchant_id account (part of name or parent ) Integrated into resource name strings. This affects Region (response) and protobuf messages used to make API requests, such as CreateRegionRequest, GetRegionRequest, UpdateRegionRequest, DeleteRegionRequest and ListRegionsRequest .
Region ID
region_id region (part of name ), region_id Integrated into name for most, separate region_id field in CreateRegionRequest . This affects Region (response) and protobuf messages used to make API requests, such as CreateRegionRequest, GetRegionRequest, UpdateRegionRequest, DeleteRegionRequest and ListRegionsRequest .
Region Name (Output)
region_id name The primary identifier field in the response is now the full resource name . This affects Region .
Display Name
display_name display_name The type changes from StringValue to optional string . This affects Region .
Eligibility flags
...eligible ...eligible The type changes from BoolValue to optional bool . This affects Region .
Update Mask
update_mask update_mask Region field paths. This affects UpdateRegionRequest .

Learn more

Create a Mobile Website
View Site in Mobile | Classic
Share by: