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. |