Urgent.News

What's breaking now, across thousands of outlets.

Tech

7 Ways a Google Merchant API Migration Can Fail Even When the Code Compiles

Seven failure modes a source-code inventory should catch before migrating custom Content API integrations to Google Merchant API.

7 Ways a Google Merchant API Migration Can Fail Even When the Code Compiles

Google's Content API for Shopping will be discontinued on August 18, 2026, making migration critical for custom integrations. A common mistake is assuming the migration is just a client-library or hostname change. In reality, it affects method contracts, resource identity, data-source ownership, money representation, batching, quota behavior, and input vs. processed product distinctions.

To avoid failure, a team must create a source-code dependency inventory that maps each Content API call to its corresponding Merchant API replacement, testing each one. This inventory should include details about the callsite, runtime, owner, request/response shapes, and retirement decisions.

One major pitfall is mistaking endpoint search for comprehensive dependency discovery. Other hidden dependencies may include generated client libraries, wrapper functions, advanced services in Google Ads Scripts, or scheduled jobs that could fail unexpectedly. Similarly, treating a method name as the entire contract can lead to issues, as certain operations now have different contracts and data sources.

For instance, product writes now use productInputs, while processed state is read through products, and customBatch has been replaced by individual asynchronous calls or HTTP batching.

Another mistake is assuming resource names and data sources are easily reconstructed. Merchant API resources have specific names and parent relationships that must be stored from Google's responses, not assumed. Additionally, decimal prices are represented in micros, and incorrect conversion can lead to silent errors, particularly for fractional or large values.

When implementing batch responses, it's crucial to account for the fact that a successful HTTP response doesn't guarantee all product mutations succeeded. Each operation should have its own identity, result, and retry decision, with the migration test including mixed-result fixtures and demonstrating retry capabilities without replaying successful calls.

Pagination and quota accounting should also be thoroughly tested, ensuring every nextPageToken is consumed and 429 backoff with jitter is implemented. Finally, a successful input write doesn't equate to product approval or serving, as there's a processing delay. The integration must read the processed product, inspect productStatus, destination status, and item-level issues, and move to a small production canary with predetermined stop and rollback thresholds.

Written by urgent.news from HackerNoon's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at hackernoon.com →

More in Tech

MoonPay Launches PayBox

MoonPay's PayBox lets ChatGPT and Claude users trade crypto and pay for real purchases through chat, without giving up custody of funds.

More from Thursday 13 August →