1C-Bitrix Integration with Google Merchant Center
Google Merchant Center accepts product feeds in Google Shopping XML format — this is neither YML nor arbitrary XML. Tag structure, mandatory attributes, and validation rules differ from Yandex.Market. If you already export catalog to Yandex, you can't reuse feed directly — you need separate export profile.
Google Shopping Feed Format
Google expects XML with namespace http://base.google.com/ns/1.0 and <item> elements inside RSS wrapper <channel>. Main product attributes:
| Google Attribute | Description | Field in Bitrix |
|---|---|---|
g:id |
Unique product ID | ID of element or article |
g:title |
Title | NAME |
g:description |
Description | PREVIEW_TEXT or DETAIL_TEXT |
g:link |
Product URL | Generated from DETAIL_PAGE_URL |
g:image_link |
Main photo URL | DETAIL_PICTURE |
g:price |
Price with currency | 120.00 RUB |
g:availability |
Availability | in stock / out of stock |
g:brand |
Brand | Infoblock property |
g:gtin |
Barcode EAN/UPC | Infoblock property |
g:condition |
Condition | new for most |
g:google_product_category |
Category from Google taxonomy | Manual mapping |
g:google_product_category — key difference from YML. Google uses its own taxonomy of ~5700 categories. Example: Electronics > Phones and Accessories > Mobile Phones. Specified either as text or numeric ID. Without this attribute, product may fall into wrong category, and for some product types (clothing, food) — won't pass moderation.
Feed Generation in 1C-Bitrix
1C-Bitrix standard distribution has no ready export profile for Google Shopping. Three paths:
1. Marketplace module. Solutions like "Google Merchant — product export" (itsfera.google_merchant) add export profile to Shop → Settings → Export catalog. Setup: select infoblock, map properties to Google attributes, set feed URL. Module generates file via cron.
2. Custom export handler. File in /bitrix/php_interface/include/catalog_export/. Class implements export interface, forming XML in Google format. Plus — full control over logic, filtering, formatting. Minus — Bitrix update support is your responsibility.
3. XML transformation of existing YML. If YML feed exists, XSLT transformation converts it to Google format. Works for simple catalogs, but complex SKU structure loses data.
Deep Configuration: Trade Offers and Variants
Google Shopping handles product variants (size, color) through item_group_id — analog of group_id in YML. All variants of one product should have same item_group_id and differ by attributes:
-
g:color— color -
g:size— size -
g:material— material -
g:pattern— pattern
In Bitrix, trade offers are stored in separate infoblock linked to main via PROPERTY_CML2_LINK. When generating feed you need to:
- Walk through trade offers infoblock.
- For each offer — get parent product (
CML2_LINK). - Form
<item>withitem_group_id= parent product ID. - Substitute offer properties (size, color) into corresponding Google attributes.
Marketplace modules don't always handle multiple offer properties correctly. Check feed manually for products with 3+ variants.
Feed Upload and Diagnostics
Feed uploads to Merchant Center: Products → Feeds → Add feed. Specify URL, update schedule (Google retrieves feed on schedule, minimum — once daily).
After upload Merchant Center shows error report:
- Disapproved — product rejected. Reasons: missing mandatory attribute, site price doesn't match feed, image doesn't meet requirements (minimum 100×100 px, for clothing — 250×250).
-
Warning — product shown with restrictions. Usually — missing
gtinorbrand. - Pending — product under review.
Price matching check (price crawling). Google bot visits site and compares feed price with product page price. Mismatch — cause for blocking. Ensure export profile uses same price type displayed on site. If site has coupon discounts — feed contains pre-coupon price.
Multi-currency and Regional Settings
Merchant Center is tied to target country. For Russia: prices in RUB, currency specified in each <g:price>. For multi-language stores on Bitrix (multiple sites in one installation) you need to generate separate feed for each country/language — different product URLs, different prices, different g:google_product_category.
Integration Timeline
| Scenario | Timeline |
|---|---|
| Simple catalog up to 1000 products, Marketplace module | 3–5 days |
| Catalog with SKU, custom handler | 1–1.5 weeks |
| Multi-language catalog, multiple feeds | 1.5–2 weeks |







