Google Merchant Center

Push your catalog to Google Merchant Center through the Google app, with one install per store and one Merchant Center account per sales channel.

Google Merchant Center is one capability of the Google app (slug google-youtube). There is no app named "Google Merchant Center" in the marketplace, and the same install also covers Google Ads campaigns and GA4 conversion tracking. It pushes your Brainerce product catalog to Google Shopping so it appears across Google Search, YouTube, and Discover.

Per-storefront connections

Google is a CHANNEL-scoped app, so you install it once per store, then from inside the app's settings page you connect each storefront to its own Google Merchant Center account:

  1. Open the MarketplaceGoogleInstall. One AppInstallation row is created.
  2. Open the installed app from your Apps page. Scroll to the Connected sales channels panel.
  3. Click Connect channel → pick the storefront → a new pending channel connection is created.
  4. Complete the OAuth handshake → choose the Merchant Center account → pick the target country and language. The tokens land on the channel connection row, not the install itself.
  5. Repeat for each additional storefront. A merchant running shop-il.com and shop-us.com ends up with one Google install holding two channel connections, each connected to its own Merchant Center account with the right currency, language, and tax policies.

Once a channel is connected, the connector only pushes products that are published to that channel (via Sales Channel publishing). Products published to channel A only won't show up in channel B's Google feed.

Product URLs

Each pushed product carries a link attribute that points back to the bound storefront, and Brainerce builds this from the channel's domain + productUrlTemplate. To make sure the link is correct:

  1. Open the Sales Channel's settings.
  2. Set Domain to the public https URL of the storefront (e.g. https://shop-il.com).
  3. Set Channel mode to LIVE. This is a Brainerce-side gate, not a Google one: the sync short-circuits on a non-LIVE channel and returns skipped: 'test-mode' without contacting Google at all. Nothing is pushed, nothing is rejected, and there is nothing to find in Merchant Center diagnostics. If a feed is empty, check the channel mode first.
  4. Set Product URL template to the path your storefront uses for product detail pages (default: /products/{slug}).

The connector substitutes {slug}, {id}, {handle}, and {domain} tokens automatically. Slugs with non-ASCII characters (Hebrew, Arabic, …) are percent-encoded to satisfy Google's RFC 3986 requirement.

Domain verification

Google requires you to claim your storefront before a feed is approved. The connector exposes a /merchant/claim-homepage endpoint that automates this. It pulls the bound channel's domain from the install and submits the verification request to Google. (/sync/claim-homepage belongs to the retired standalone google-merchant-connector service and is not routed.)

If you ever change a channel's domain, re-run Claim homepage from the app's settings page.

Disconnecting and uninstalling

  • Disconnect one channel from the Connected sales channels panel inside the app. The channel's encrypted OAuth tokens are dropped; other connected channels keep running.
  • Uninstall the whole app (from the marketplace card or the danger zone in the app's settings) removes the AppInstallation and cascades-deletes every channel connection under it. It also cascades away every ExternalResourceMapping row, which is the Brainerce-product-to-Merchant-Center-offer map. A reinstall therefore starts with no knowledge of what was already pushed and will re-create offers rather than update them, so clear the Merchant Center account (or expect duplicates) before reconnecting.
  • Deleting a Sales Channel that has an attached connection cascades the connection row away. The Google account tokens are gone with it, so re-add the channel and reconnect to get back.