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
registerGcp
method (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 anyv1
orv1alpha
API until this step is completed. For directions, see Register as a developer Product.attributes
renamed: TheProduct.attributes
field has been renamed toProduct.productAttributes
.- Product-level tax information removal: The
taxes
andtaxCategory
fields have been removed from theProduct.productAttributes
object. Check the Google Merchant Center Help article on tax for more info - Changes to the GTIN field: The
gtin
field in theProduct.productAttributes
object has been renamed togtins
to better reflect that it can hold multiple values. Thegtin
field in theOrderTrackingSignals.lineItemDetails
object is now anarray
and has been renamed togtins
as well. - Channel field removal: The
channel
field 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: ThelegacyLocal
field 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
RegionalInventory
fields exceptname
,account
andregion
are now wrapped under a new object calledregionalInventoryAttributes
. For example, theRegionalInventory.price
attribute is now underRegionalInventory.regionalInventoryAttributes.price
. - All
LocalInventory
fields exceptname
,account
andstoreCode
are now wrapped under a new object calledlocalInventoryAttributes
. For example, theLocalInventory.price
attribute is now underLocalInventory.localInventoryAttributes.price
.
- All
- Removal of
customAttributes
from regional and local inventories: ThecustomAttributes
field has been removed from bothRegionalInventory
andLocalInventory
resources. - Refined account creation: The redundant
users
field has been removed from theCreateAndConfigureAccountRequest
. Use the singularuser
field to associate an initial user with a new account. - Certain attribute types were changed from strings to enums: Some fields
within
Product
andInventory
resources with defined short list of values were changed fromstring
type toenum
type for better data validation (for example, theProduct.ProductAttributes.condition
field is now anenum
). - Online return policy update method removal: The
onlineReturnPolicy.update
method is removed inv1
. Create an online return policy usingonlineReturnPolicy.create
method 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
registerGcp
method for each Google Cloud project you use for authentication before anyv1
methods 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
Products
API tov1
while keeping theAccounts
API 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. |