| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• eCommerce (website_sale) • Discuss (mail) • Website (website) • Invoicing (account) |
| Lines of code | 908 |
| Technical Name |
twn_website_feed |
| License | LGPL-3 |
| Website | https://twn.ro/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• eCommerce (website_sale) • Discuss (mail) • Website (website) • Invoicing (account) |
| Lines of code | 908 |
| Technical Name |
twn_website_feed |
| License | LGPL-3 |
| Website | https://twn.ro/ |
Custom Website Product Feed
Configure stable public product feeds for Website channels and external catalog consumers in Odoo 19.
Key Features
- Dedicated backend feed definitions under Website Configuration > TWN
- Configurable platform, language, websites, public categories, pagination, and output format
- Language selection from active Odoo system languages with English fallback
- Include active products only, inactive products only, or both
- Automatic public path generation with safe normalization and extension alignment
- Public responses under /twn/feed/<custom-url-path> with 1-hour caching
- Quick icon in the list view to open the live feed directly
- Shared product extraction for JSON, CSV, and XML serializers
Supported Outputs
- Google Merchant Center: JSON, CSV, XML
- Facebook and Instagram Shop: CSV
- TikTok Catalog Ads: CSV aligned with the workspace sample columns
- Auglio Try-On XML: XML
- General RSS: XML
- Stock Feed: JSON, CSV, XML
TikTok CSV Mapping
The TikTok export includes the sample-driven columns for main image, additional image, variant attributes, price and sale price, brand, product type, group ID, Google product category, and shipping weight. Optional values stay empty when Odoo does not provide them.
How It Works
- Open Website > Configuration > TWN > Custom Feed.
- Create a feed and choose the platform, format, language, and active-state inclusion mode.
- Add optional website filters, public category filters, and pagination if needed.
- Leave Public Feed Path empty to auto-generate a stable slug.
- Save and open the public route in a browser or use the list icon to open it directly.
Include Items
Use Active for products with active = true, Inactive for products with active = false, or Any for both. This changes only the active-state filter. Website publication, website scope, and public category scope still apply.
Pagination
When pagination is enabled, the feed accepts URLs such as ?page=2 and returns page-based results. JSON responses include pagination metadata, while all response types expose pagination through response headers. This can affect product coverage for Google, Facebook, and TikTok feeds.
Screenshots
Custom Website Product Feed

Overview
This module adds configurable public product feeds to Odoo 19 Website settings. Each feed definition stores its own platform, language, public path, optional website scope, optional public-category scope, optional pagination settings, active-state inclusion mode, and a supported response format.
Features
- Dedicated backend model for custom feed definitions.
- Feed management under Website configuration.
- Automatic placement under Website > Configuration > TWN with shared-root reuse when available.
- Active system-language dropdown with English fallback.
- Include Items selector for active, inactive, or any active state.
- Public controller route at /twn/feed/<custom-url-path>.
- Automatic public path generation with save-time normalization.
- Quick list-view icon to open the public feed directly.
- Shared product extraction with deterministic ordering by id asc.
- JSON, CSV, and XML serializers where the platform mapping is defined.
- Optional pagination with configurable page size.
- 1-hour cache headers on public responses.
Supported Platforms
- Google Merchant Center: JSON, CSV, XML
- Facebook and Instagram Shop: CSV
- TikTok Catalog Ads: CSV aligned with the workspace sample column set
- Auglio Try-On XML: XML
- General RSS: XML
- Stock Feed: JSON, CSV, XML
TikTok CSV Mapping
- Includes the sample columns for product link, cover image, additional image, availability, color, material, pattern, size, price, sale price, brand, product type, item group, Google product category, and shipping weight.
- Leaves optional values empty when the source field is not available in Odoo.
Language Handling
- Language is selected from the active Odoo system languages.
- Feed extraction runs in the selected language context.
- If no active language is available, the module falls back to en.
Pagination
- Enable pagination to limit the number of products returned per request.
- Set a positive page size.
- When enabled, use ?page=2 or another page number on the public URL.
- JSON responses include pagination metadata.
- All response types expose pagination through response headers.
- Pagination may reduce product coverage for Google Merchant Center, Facebook and Instagram Shop, and TikTok Catalog Ads exports.
Include Items
- Active returns only products with active = true.
- Inactive returns only products with active = false.
- Any returns both active and inactive products.
- This selector only changes the active-state filter. Website publication and the optional website/category scopes still apply.
Configuration
- Install the module.
- Open Website > Configuration > TWN > Custom Feed.
- Create a feed definition.
- Select the platform, format, and language.
- Select Include Items.
- Optionally set Websites, Website Categories, and pagination.
- Leave Public Feed Path empty to auto-generate a stable public slug.
- Save and load the public route in a browser.
- Use the list-view feed icon to open the live URL quickly.
Testing
- TransactionCase coverage for defaults, normalization, validation, filtering, serialization, pagination, and list action behavior.
- HttpCase coverage for public access, paginated requests, content types, and cache headers.
Screenshot Placeholders
- Placeholder: backend custom feed list screenshot
- Placeholder: backend custom feed form screenshot
- Placeholder: public JSON, CSV, and XML feed screenshot
Support
- Author/Maintainer: TWN Team
- Website: https://twn.ro/
- Support: odoo@twn.ro
Please log in to comment on this module