Product Feed Generator —
Build Google/Meta/Bing shopping feeds (XML/CSV) with field mapping
Hand-maintained shopping feeds drift out of date the moment your catalogue changes, causing rejected products and lost sales on Google, Meta and Bing. This module generates channel-ready feeds directly from your Odoo products: pick a channel and the right format (Google RSS XML, Meta CSV or Bing TSV), map each feed attribute to a product field, computed value or fixed value, and export one row per variant with tax-aware pricing, computed availability and image URLs. A token-protected public URL lets channels poll the feed live, validation flags missing required attributes and a coverage report surfaces data-quality gaps before you submit. Built for UK and international eCommerce shops on Odoo website_sale.
Key Features
Per-Channel Feed Definitions
gb.product.feed targets Google Merchant (RSS/XML), Meta Commerce (CSV) or Microsoft/Bing (TSV); the file_format is set automatically from the channel. A product_domain (default sale_ok) and Only Website-Published flag pick exactly which product templates are exported.
Configurable Field Mapping
gb.feed.mapping maps each feed attribute (id, title, price, availability, image_link, gtin, brand and more) to a product field path, a computed value or a fixed value. New feeds are seeded with a sensible default mapping via _create_default_mapping, editable per line.
Native Google & Delimited Builders
The gb.feed.generator builds a valid Google RSS 2.0 XML with the g: namespace, or CSV/TSV with a header row, honouring your mapping order, currency and base URL. _compute_value derives link, image_link, availability, price and sale_price per variant.
Variant-Level Rows
_selected_products expands to product.product variants, emitting one feed row each. Availability is computed from qty_available and product type, item_group_id groups variants of a template, and colour/size/material variant attributes are appended as extra columns.
Tax-Aware & Sale Pricing
_gross_price optionally grosses the list price up with the product's taxes via compute_all, while _sale_price reads the company pricelist and only emits a sale_price attribute when there is a genuine discount below list price, keeping the feed honest for the channel.
Token-Protected Public URL
Each feed gets a secret access_token and a stable /shopping/feed// public route that renders the feed live for Google, Meta or Bing to poll. New Token rotates the secret, and Generate Now stores the rendered file as a downloadable ir.attachment.
Validation & Coverage Checks
action_validate flags any missing required attribute and broken field paths before you submit, while feed_coverage counts products lacking an image, GTIN, price or description, so a merchandiser fixes data quality issues before the merchant centre rejects them.
Run Logging & Per-Product Overrides
Every generation writes a gb.feed.run log with item count, warnings, byte size, duration and trigger (manual, cron or public). product.template carries feed_brand, feed_gtin, feed_google_category and a feed_exclude flag so merchandisers override or omit products without touching the mapping.
Use Cases
Screenshots
Feeds
Mappings
Run History
Why Choose This Module
Hand-maintained product feeds drift out of date the moment your catalogue changes. This module generates channel-ready feeds directly from your products with configurable field mapping, per-variant lines, computed availability and pricing, and a token-protected public URL the channels can poll — with validation that flags missing required attributes before you submit.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: product, website_sale
- Support: support@pokutsoft.com
Update date: 2026-07-02