Skip to content

Settings

Open Add-ons > Manage add-ons > Google Merchant API Sync > Settings.

Setting Default Description
Enable On When off, no new work is started.
Debug log Off Also stores every HTTP call with masked request and response. Tokens, secrets and keys are never stored.
Log retention (days) 90 Older log entries are removed by the cron run.
Push interval (minutes) 5 How often the cron run queues a push for products that changed. Changes are queued the moment a product is saved or its stock moves.
Status check interval (hours) 6 How often Google status and item level issues are read back. Google needs a few minutes to process every change.
Offer ID source Product ID Product ID is always unique. Product code is used only for new offers and only when it is unique in the target. An offer ID never changes once it was queued.
Storefront URL empty Host the product links point to, always https (for example https://shop.example.com). Empty = the default storefront of the store. Links never depend on how the cron runs (console, web or the admin button). In Ultimate a target uses the host of its own storefront.
Offer ID prefix empty Up to 12 letters, digits, ., _, -. Use it when a file feed sends the same country and language, so the offer IDs differ. Applies to new offers only.
Backorder without a date Out of stock Google asks for an availability date with BACKORDER. Products that sell on backorder with no known future date are sent as out of stock (recommended) or as BACKORDER without a date (may be disapproved). Pre-order products (future availability date) are always sent as PREORDER with that date.
Remove disabled products from Google On A product that is disabled, deleted, filtered out of the target, or (with the target option) out of stock is deleted at Google at the next push.
Field Description
Content language Two-letter language code of the offers (en, de). With the feed label it identifies your offers in Merchant Center.
Feed label Usually the country code (US). Up to 20 uppercase letters, digits and -; lower case is converted and _ is dropped, as the API requires.
Target country Two-letter country code.
Currency Prices are converted from the store’s main currency.
Language The store language used for titles and descriptions.
Storefront (Ultimate) Only products of that storefront.
Vendors (Multi-Vendor) Only products of these vendors; empty = all active vendors.
Categories Only these categories and their subcategories; empty = all.
Add tax (%) Added to the price when your catalogue prices are net but Google expects gross prices.
Shipping price sent None (use the Merchant Center shipping settings), a flat price, or flat with free shipping above an amount.
Skip out-of-stock products Out-of-stock products are not sent (and are removed if they were).

Two targets cannot share the same content language and feed label.

Remove all from Google (on the Overview card and on the target page, with a confirmation) queues a delete for every offer of the target, pauses the target and starts the cleanup job. It is idempotent: a second click only removes what was sent in between. Change the status back to Active to send the products again. Deleting a target, and changing its language, feed label or country, remove the old offers from Google first, against the data source they were sent with.

Attribute Auto behaviour
GTIN A feature named GTIN, EAN, UPC, ISBN, barcode or JAN. Values are checked (length and check digit) and invalid ones are not sent.
MPN The product code.
Brand A brand feature, a feature named brand or manufacturer; in Multi-Vendor the vendor name.
Condition New.
Colour, size, gender, age group A feature with the matching name.

For each attribute you can choose a product feature, a product field, a fixed value or “do not send”. Without GTIN, or without brand and MPN, the product is sent with “identifier exists = false” so that Google does not disapprove it for that reason alone.

The Google product category is entered per category (numeric ID or path from Google’s product taxonomy); subcategories use their parent’s value.

Credentials are entered on the Connection page, stored encrypted (AES-256-GCM, key derived from your store’s own secret) and never shown again. Leave a secret field empty to keep the saved value. The same page has the mandatory Register API access step (see Installation). Changing the Merchant Center ID forgets the data sources of the old account and sends everything again to the new one; offers in the old account are not touched.

Use either the command line or the secret web address shown in the Cron section of the settings:

  • php /path/to/store/admin.php --dispatch=kv_google_merchant.cron
  • https://your-store.example/index.php?dispatch=kv_google_merchant.cron&key=<secret>
  • Log lists connection checks, pushes, errors and jobs with filters and a CSV export.
  • Jobs lists the queue. A job that fails is retried after 5 minutes, 15 minutes, 1 hour, 3 hours and 12 hours, then marked “Gave up”; use Retry to queue it again. Quota answers (HTTP 429) wait at least 2 minutes.

Times in the admin and the daily full check follow the shop time zone (Settings > Appearance). Google’s daily API quota resets at 12:00 UTC.