How Google groups attributes
Rogus follows Google’s own requirement levels, because they mean genuinely different things.Required
id, title, description, link, image_link, availability, price.
These seven decide whether an item exists in the feed at all. All of them are pre-mapped for you.
Identifiers
brand, gtin, mpn.
brand defaults to your product vendor. gtin defaults to the variant barcode — it resolves per item, so only variants that actually have a barcode publish one.
Rogus does not map
mpn to your SKU. An MPN is the part number the manufacturer uses; a SKU is your own code. Sending one as the other claims an identifier you do not have, which causes rejections later. Map it only if you genuinely hold manufacturer part numbers.Conditional
condition, availability_date, age_group, gender, color, size, material, pattern, item_group_id, adult.
Google requires these for particular cases — apparel needs age_group and gender, a preorder needs availability_date. Rogus cannot know which rule applies to your catalog, so it never skips an item over one. Where your other values suggest one is owed, you get a warning on the Feed health tab.
item_group_id is what ties the variants of one product together, so Google shows them as a single listing with options. Rogus fills it in for you.
Recommended
google_product_category, product_type, sale_price, additional_image_link.
sale_price matters more than “recommended” suggests — see the warning about prices below.
Where a value can come from
Each attribute takes one source:- A product or variant field — the usual choice
- A metafield — for data you keep in a custom field
- A fixed value — the same text on every item, for something that never varies
- Nothing — leave the attribute out of the feed entirely
Product fields
Variant fields
Three things worth getting right
Prices are named the other way round from Shopify
Google’sprice is the full, regular price. The discounted amount goes in sale_price. Shopify uses the opposite convention: its price field is what the shopper pays today.
Map Google’s price to Shopify’s price on a discounted product and you advertise a sale from £20 to £20 — Google sees the same number twice and the discount does nothing for you.
Rogus therefore defaults price to Regular price (compare-at when discounted) and sale_price to Sale price (only when discounted). Leave both alone unless you know why you are changing them.
A Shopify category is not a Google category
They are two different systems with different names and different codes. Sending your Shopify category where Google expects its own makes Google treat the attribute as missing. Use Shopify category → Google category, which is the default. Rogus does the translation. Shopify category (full name) is the raw text, and is the right answer only forproduct_type, which is your own labelling and not Google’s.
If a product has no Shopify category, nothing is sent. Set the category on the product in Shopify, or map google_product_category to a fixed value if the whole feed is one category.