Home
Wiki
Home
Wiki
  1. Home
  • Back to home
  • 3. Feeds
  • Feed Creation
  • Feed Simulation
  • Feed Execution
  • Google Merchant Feed
  1. Home

Google Merchant Feed

Ready-Made Google Merchant Center Feed in Shopranos Platform#

The Google Merchant feed type produces a product feed that Google Merchant Center can fetch as it is: RSS 2.0 with every product attribute in the g: namespace, following Google's product data specification. It needs no transformation and no field mapping.

Getting the Feed URL#

1.
Create a feed: navigate to the Feeder section and create a new feed, or open an existing one. Set its status to Active; inactive feeds are not generated.
2.
Select the store: when the company has more than one store, select it under Stores. The feed's links use that store's domain, and its prices use that store's currency.
3.
Select the products: under Conditions, choose the rule that selects the products to include.
4.
Set the refresh interval: Expires every sets how often the feed is regenerated.
5.
Leave Customer and Api Key empty: Merchant Center shows the products to every shopper, and an API key in the URL would be shared with Google.
6.
Build the URL: the admin shows no card for this feed type. Copy the URL from the Skroutz Feeder card and replace Skroutz with Google, so that it has the form https://<platform API>/api/feeders/feed/Google/<company id>/<feeder id>.
7.
Open the URL once: the first request starts building the feed and returns {"Response":"This feed is not available right now. It will be generated in a few minutes"}. Wait until the URL returns XML.
8.
Add the URL in Merchant Center as a product source with a scheduled fetch.
Every request returns the last generated file at once. When that file has expired, the request also queues a regeneration. If a regeneration fails, the previous file keeps being served.

Feed Format#

The feed holds one <item> per product variant. An attribute with no value is left out instead of being sent empty.
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
    <title>shop.example.com</title>
    <link>https://shop.example.com</link>
    <description>Product feed</description>
    <item>
      <g:id>VARIANT_ID</g:id>
      <g:title>Cotton T-shirt Red M</g:title>
      <g:description>A soft cotton T-shirt with a classic fit.</g:description>
      <g:link>https://shop.example.com/product/cotton-t-shirt?variantId=VARIANT_ID</g:link>
      <g:image_link>https://cdn.example.com/t-shirt-red.jpg</g:image_link>
      <g:additional_image_link>https://cdn.example.com/t-shirt-back.jpg</g:additional_image_link>
      <g:availability>in_stock</g:availability>
      <g:price>24.90 EUR</g:price>
      <g:sale_price>19.90 EUR</g:sale_price>
      <g:brand>Example Brand</g:brand>
      <g:mpn>TS-RED-M</g:mpn>
      <g:condition>new</g:condition>
      <g:product_type>Clothing &gt; T-shirts</g:product_type>
    </item>
  </channel>
</rss>

Field Mapping#

AttributeValue
g:idThe variant ID. It stays the same for the life of the variant, unlike its SKU, which can be edited or shared by several variants.
g:titleThe variant title, or the product title when the variant has none. At most 150 characters.
g:descriptionThe product description as plain text, at most 5,000 characters. The title is used when the product has no description.
g:linkThe product page on the store's domain: its custom domain, or its platform subdomain when it has none. For a product with more than one variant, ?variantId= and the variant ID are appended.
g:image_linkThe variant image, or the first product image when the variant has none.
g:additional_image_linkThe other product images, up to 10. Videos and attachments are skipped.
g:availabilityin_stock when the variant can be ordered, otherwise out_of_stock.
g:priceThe retail price including VAT. For a discounted variant, the price before the discount.
g:sale_priceThe discounted retail price. Sent only for discounted variants.
g:brandThe brand name, at most 70 characters.
g:gtinThe variant GTIN, when it is a GTIN-8, GTIN-12, GTIN-13 or GTIN-14 with a correct check digit.
g:mpnThe variant MPN, at most 70 characters.
g:conditionAlways new.
g:product_typeThe category path, for example Clothing > T-shirts, at most 750 characters.
Prices have two decimals and the store's currency code, for example 19.90 EUR. When the store has no currency set, EUR is used.
A variant counts as discounted when its initial retail price is higher than its retail price.
Text values are sent on a single line: HTML is removed from descriptions, runs of whitespace become one space, and characters that XML can't carry are dropped.
Merchant Center keeps an item's status and performance history under its g:id. Editing a variant's SKU, price or title keeps the item, while deleting a variant and creating it again makes it a new item.
Products that Merchant Center already holds under other IDs, for example SKUs sent by an earlier feed, appear as new items and start without history.

Products Left Out#

A variant is left out of the feed when:
it has no retail price above zero;
its product has no link, or neither the variant nor its product has a title;
its variant ID is longer than 50 characters;
another variant in the feed has the same variant ID, compared without regard to case. This points to a catalog data error, and every variant with that ID stays out until it is fixed.
Products without variants are left out as well. A product that appears twice in the selection is sent once.

Things to Know#

Retail prices only. Merchant Center requires the landing page to show the feed's price without a login. The feed uses the retail price, so a store that sells only at wholesale prices produces an empty feed.
Prices calculated on the page. When the storefront shows a price calculated as the page loads, such as a live price from the ERP or an offer, it can differ from the feed's price, and Merchant Center reports a price mismatch.
Language. Titles, descriptions, categories and links use the store's default language.
Variants. Each variant is sent as a separate item that links to the product page with its own ?variantId=. Variants are not grouped with g:item_group_id, because Google requires grouped variants to carry the attributes that tell them apart, such as color and size, and the feed doesn't send those. The storefront doesn't select the variant from ?variantId= yet, so the page opens on the default variant.
Availability. A variant that can be ordered is sent as in_stock, including one that is sold while out of stock. preorder, backorder and availability_date are not sent.
Master products. Products linked to a master product are sent as separate items, not as an item group. Merchant Center disapproves an item whose page doesn't show its price, so leave such products out of the feed.
Attributes not sent. google_product_category, color, size, gender, age_group, item_group_id, identifier_exists and shipping are not sent. Set shipping in Merchant Center, and add other attributes there with a supplemental data source or attribute rules.
Products without identifiers. For products that have no GTIN or MPN, such as custom or handmade goods, set identifier_exists to no in Merchant Center. The feed doesn't set it, because Google warns when it is no for a product that has identifiers, and a missing or invalid GTIN in the catalog doesn't show that the product has none.
Modified at 2026-10-27 11:09:16
Previous
Feed Execution
Built with