Google Merchant API Sync changelog
All notable changes to Google Merchant API Sync (kv_google_merchant) are documented here.
The format follows Keep a Changelog and the project uses Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”Release-gate fixes before the first release (audit 2026-11-07, all closed in 1.0.0):
- Developer registration of the Cloud project (
registerGcp) with a “Register API access” block, status check and clear 401 messages on the Connection page; documented that test accounts cannot register. - A refused login (token endpoint 400 / 401) stops the sync as a connection problem instead of marking every product as an error; a deleted data source is created again.
- Links are always https on the target’s host, independent of the cron context; Ultimate targets use their storefront’s domain and include shared products.
availabilityDatefor pre-order (and backorder with a date); backorder without a date is sent as out of stock by default.- Offer ids with
/,%or~use the unpadded base64url identifier in get and delete. - “Remove all from Google”, removal queue for deleted targets and changed identities, Offer ID prefix and a warning when a file feed add-on is active.
- Smaller fixes: quota back-off until 12:00 UTC with no push pile-up, lost-update guard, API-only data source adoption, upper-case feed labels, 50 character offer ids, item group id for variations, currency parameter on landing pages, PKCE, Ultimate storefront admins cannot manage the shared connection.
[1.0.0] - 2026-11-07
Section titled “[1.0.0] - 2026-11-07”- Initial release: product sync to Google Merchant Center through the Merchant API v1 (
productInputsinsert and delete), replacing the Content API for Shopping. - Connection with the merchant’s own Google Cloud project: OAuth 2.0 (refresh token) or service account (JWT); secrets stored encrypted.
- Targets (API data sources) per country and language, with currency, tax percent, shipping hint, category, vendor (Multi-Vendor) and storefront (Ultimate) filters.
- Full sync and incremental sync on product save, stock movement, disable and delete; unchanged products are skipped by hash and refreshed after 25 days.
- Idempotent sends: a retry after a timeout replaces the same offer; a data source is adopted before it is created; 404 on delete counts as done.
- Job queue with back-off (5 min to 12 h), quota aware (HTTP 429), cron by command line and secret address, log with CSV export.
- Attribute mapping (GTIN, MPN, brand, condition, colour, size, gender, age group) and Google product category per category, per storefront.
- Google status and item level issues read back and shown with filters and help links.