This guide helps you migrate from Merchant API v1beta
to v1
, the first
version for General Availability. The v1 version introduces several updates and
a few changes that might require code updates. These changes are designed to
simplify the API and improve management of your Merchant Center account.
Key differences
Here are the most important changes to be aware of when migrating from v1beta
to v1
:
- One-time registration of at least one API developer to use Merchant API:You will need to call the
registerGcpmethod (only once for each Google Cloud project used for authentication) to provide your contact details, which lets you to use the API and to receive updates and announcements related to Merchant API. You won't be able to use anyv1orv1alphaAPI until this step is completed. For directions, see Register as a developer -
Product.attributesrenamed: TheProduct.attributesfield has been renamed toProduct.productAttributes. - Product-level tax information removal:The
taxesandtaxCategoryfields have been removed from theProduct.productAttributesobject. Check the Google Merchant Center Help article on tax for more info - Changes to the GTIN field:The
gtinfield in theProduct.productAttributesobject has been renamed togtinsto better reflect that it can hold multiple values. Thegtinfield in theOrderTrackingSignals.lineItemDetailsobject is now anarrayand has been renamed togtinsas well. - Channel field removal:The
channelfield has been removed from products, product inputs, and data sources. A new boolean field,legacyLocal, has been introduced to clearly designate products sold exclusively in physical stores. Note: ThelegacyLocalfield is an auxiliary field to help the migration and will eventually be deprecated once Online and Local marketing methods can be fully targeted with a single product source. Check the table in the following section for more informations. - New fields for regional and local inventory attributes:
- All
RegionalInventoryfields exceptname,accountandregionare now wrapped under a new object calledregionalInventoryAttributes. For example, theRegionalInventory.priceattribute is now underRegionalInventory.regionalInventoryAttributes.price. - All
LocalInventoryfields exceptname,accountandstoreCodeare now wrapped under a new object calledlocalInventoryAttributes. For example, theLocalInventory.priceattribute is now underLocalInventory.localInventoryAttributes.price.
- All
- Removal of
customAttributesfrom regional and local inventories:ThecustomAttributesfield has been removed from bothRegionalInventoryandLocalInventoryresources. - Refined account creation:The redundant
usersfield has been removed from theCreateAndConfigureAccountRequest. Use the singularuserfield to associate an initial user with a new account. - Certain attribute types were changed from strings to enums:Some fields
within
ProductandInventoryresources with defined short list of values were changed fromstringtype toenumtype for better data validation (for example, theProduct.ProductAttributes.conditionfield is now anenum). - Online return policy update method removal:The
onlineReturnPolicy.updatemethod is removed inv1. Create an online return policy usingonlineReturnPolicy.createmethod instead.
How to migrate
The v1beta
version of the Merchant API is scheduled to be sunset on February
28, 2026.
For more information on the deprecation schedule, see the Merchant API versioning guide
.
-
Your first step in migrating is to perform a one-time developer registration (See Register as a developer ). You must call the
registerGcpmethod for each Google Cloud project you use for authentication before anyv1methods will work. -
Regardless on how you call the APIs (with REST, gRPC or by using client libraries ), you can migrate in stages. This means you can update and migrate your code one API at a time (for example, moving the
ProductsAPI tov1while keeping theAccountsAPI onv1beta) without having to update your entire integration at once.
Detailed field changes
This table provides a detailed comparison of the fields that have changed
between the v1beta
and v1
versions.
| v1beta | v1 | Description |
|---|---|---|
Product.gtin
|
Product.gtins
|
The field for GTINs has been renamed. |
Product.taxes
|
Removed | The taxes
field has been removed |
Product.taxCategory
|
Removed | The taxCategory
field has been removed |
Product.channel
|
Removed | The channel
field has been removed. Use the legacyLocal
field for local use cases. |
Product.attributes
|
Product.productAttributes
|
The attributes
field has been renamed to productAttributes
. |
availability
, condition
, gender
, includedDestinations
and excludedDestinations
in Product
fields are represented as strings
(or array
of strings
) |
These fields are now enums
(or array
of enums
) |
Fields with defined short list of values were changed from string
type to enum
. |
price
, salePrice
, salePriceEffectiveDate
and availability
in RegionalInventory
|
Moved to RegionalInventory.regionalInventoryAttributes
|
These fields have been moved under regionalInventoryAttributes
. |
RegionalInventory.availability
field is a string
|
RegionalInventory.regionalInventoryAttributes.availability
is now an enums
|
Availability changed type from string
to enum
. |
price
, salePrice
, salePriceEffectiveDate
, availability
, quantity
, pickupMethod
, pickupSla
and instoreProductLocation
in LocalInventory
|
Moved to LocalInventory.localInventoryAttributes
|
These fields have been moved under localInventoryAttributes
. |
LocalInventory.availability
field is a string
|
LocalInventory.localInventoryAttributes.availability
is now an enums
|
Availability changed type from string
to enum
. |
LocalInventory.customAttributes
|
Removed | Custom attributes are no longer supported for local inventory. |
RegionalInventory.customAttributes
|
Removed | Custom attributes are no longer supported for regional inventory. |
ProductInput.channel
|
Removed | The channel
field has been removed. Use the legacyLocal
field for local use cases. |
DataSource.channel
|
Removed | The channel
field has been removed. Use the legacyLocal
field for local use cases. |
|
Not available
|
ProductInput.legacyLocal
|
A new boolean field to indicate that a product can only target local marketing methods. The product resource ID will have "local~" prefix. |
|
Not available
|
Product.legacyLocal
|
A new boolean field to indicate that a product is sold only in local stores and is not available for online purchase. |
|
Not available
|
DataSource.legacyLocal
|
A new boolean field to indicate that a data source contains products sold only in local stores. |
OrderTrackingSignals.LineItemDetails.gtin
|
OrderTrackingSignals.LineItemDetails.gtins
|
The gtin
field has been renamed to gtins
and
it's now an array of strings (instead of a string). |
CreateAndConfigureAccountRequest.users
|
Removed | The users
field has been removed. Use the user
field to add the initial administrator to the account. |

