SJRubel Product Feed Generator
SJRubel Product Feed Generator
Description
SJRubel Product Feed Generator turns your WooCommerce catalog into ready-to-submit product feeds for Google Shopping, Meta / Facebook Catalog, Shopify, and OpenAI-compatible AI shopping feeds — without spreadsheets, manual exports, or custom code.
Build a feed once with the guided feed wizard, and the plugin keeps it fresh on a schedule you control. Every feed is written in the structure its destination actually expects: a real Google Merchant XML feed with the g: namespace, a genuine Shopify product-import CSV using Shopify’s own column headers, a structured JSON schema built for AI shopping agents, and plain CSV / JSON for any other platform that accepts structured product data.
Quick facts — Plugin type: WooCommerce extension · Feed formats: XML, CSV, JSON, JSON Lines (.txt) · Built-in marketplace profiles: Google Shopping, Facebook/Meta Catalog, Shopify, OpenAI · Automation: scheduled WP-Cron regeneration · Compatibility: WooCommerce High-Performance Order Storage (HPOS) · License: GPLv2+
Why store owners use it
- One catalog, every channel. Map your WooCommerce products once and export them to Google Shopping, Facebook/Instagram, Shopify, and AI shopping surfaces from a single dashboard.
- No guesswork on formatting. Each marketplace profile ships with the correct field names and file structure out of the box — Google’s
g:namespace tags, Shopify’s exact CSV headers, a structured OpenAI/AI-agent JSON schema. - Filter before you export, not after. Send only the products each channel should see — in stock, on sale, above a price floor, missing no required data — instead of hand-editing a spreadsheet.
- It stays current on its own. Turn on scheduled regeneration per feed and the file at your feed URL updates automatically; marketplaces polling that URL always see fresh data.
Feed formats & where they go
Format
What it produces
Typical destination
XML
Google Merchant–style RSS 2.0 feed with g: namespace tags
Google Shopping / Google Merchant Center
CSV (Shopify profile)
Shopify’s own product-import column set (Handle, Body (HTML), Variant SKU, Variant Grams, etc.)
Shopify catalog import
CSV (generic)
Plain, column-mapped CSV built from your field mapping
Facebook/Meta Catalog bulk upload, spreadsheets, custom tools
JSON (OpenAI profile)
Structured {schema_version, updated_at, products[]} payload with normalized availability and numeric fields
OpenAI-style / AI shopping agent feeds
JSON (generic)
Plain array-of-products JSON
Custom marketplaces, internal tools, API-based integrations
JSON Lines (.txt)
One JSON object per line
Log-style ingestion pipelines, streaming imports
Powerful product filtering
Build the exact product set each feed should contain:
- Stock status, product type (simple, variable, variation, grouped, external), and catalog visibility
- Sale-only, featured-only, virtual-only, downloadable-only, variations-only, “has SKU,” and “has image” toggles
- Category and tag filters, each with its own include or exclude mode
- Price range and stock-quantity range
- Date created / date modified range
- Data-quality rules — automatically skip products missing a title, image, price, SKU, weight, brand, GTIN, MPN, or other required field, so incomplete listings never reach a marketplace
- Include or exclude specific products by ID, or exclude by SKU list
- A custom field rule builder — combine any standard field, attribute, or custom meta key with operators like equals, contains, starts with, greater than, or is empty, for filtering logic beyond the built-in toggles
Field, attribute & category mapping
- A field-mapping table per marketplace profile (Google Shopping, Facebook, OpenAI, Shopify), pulling from your real WooCommerce fields, product attributes, and custom meta keys
- Attribute Mapping — combine several WooCommerce attributes into a single feed value with a separator of your choice (e.g. combine size + color into one variant label)
- Dynamic Attribute Mapping — build named, reusable mapping blocks that can populate several feed fields at once
- Category Mapping with the official Google product taxonomy and Facebook product taxonomy bundled in, plus live search-as-you-type lookup, so each WooCommerce category resolves to the correct marketplace category automatically
Product condition, brand & identifiers
Condition (new/used/refurbished), brand, SKU, GTIN, and MPN are resolved per product — with automatic fallback from a product variation to its parent product when a value isn’t set at the variation level — so variable products export cleanly without manual field entry per variation.
Real per-zone shipping data
Feeds can include live shipping cost data pulled from your actual WooCommerce shipping zones (flat rate and free shipping methods), so Google Shopping and similar channels receive real shipping figures instead of a placeholder.
Scheduled, automatic feed regeneration
Turn on automatic updates per feed and choose how often it refreshes — from every hour up to once a week. Regeneration reuses the same feed file and URL, so the link you submit to a marketplace keeps working as your catalog changes.
Built for large catalogs
Feeds generate in configurable batches (10–2,000 products per batch) instead of one long-running request, so large WooCommerce catalogs generate reliably without server timeouts.
WooCommerce compatibility
Declares compatibility with WooCommerce High-Performance Order Storage (HPOS). Works alongside the standard WooCommerce product catalog (simple, variable, variation, and grouped products) — no changes to your existing store setup required.
Installation
- Upload the plugin files to the
/wp-content/plugins/directory, or install the plugin directly through the WordPress Plugins screen. - Activate the plugin through the Plugins menu in WordPress.
- Make sure WooCommerce is installed and active.
- Open Feed Generator in your WordPress admin sidebar.
- Click Add New to launch the feed wizard: choose a marketplace and format, map your fields, set your filters, and generate.
- Copy the generated feed URL and submit it to Google Merchant Center, Meta Commerce Manager, Shopify, or your destination platform.
- Optional: turn on scheduled auto-regeneration so the feed stays current without manual work.
Faq
It reads your WooCommerce product catalog and exports it as a structured feed file (XML, CSV, or JSON) formatted for Google Shopping, Facebook/Meta Catalog, Shopify, or an OpenAI-style AI shopping feed, with filtering and field mapping along the way.
Yes. This plugin generates feeds from WooCommerce product data, so an active WooCommerce installation is required.
Yes, the plugin is free and licensed under GPLv2 or later.
Yes. Feed generation runs entirely in the WordPress admin area and reads product data directly from the database — your active theme has no effect on it.
No. It only reads existing WooCommerce product data to build feed files; it does not change your products, prices, or storefront.
Yes. You can create unlimited feed configurations — for example, a Google Shopping feed and a Shopify feed — each with its own filters, mapping, and schedule.
Go to Feed Generator Add New, pick a marketplace and feed format, map your product fields, set any filters you want, then click Generate.
Yes. Every saved feed configuration can be reopened, edited, and regenerated from the main Feed Generator dashboard.
Inside your WordPress uploads directory, in a dedicated sjrubel-product-feeds folder, so files are served directly by your site.
No. Regenerating a feed in the same format reuses its existing file and URL, so a marketplace already polling that URL keeps receiving updates without you needing to resubmit a new link.
Yes, from the Feed Generator dashboard — deleting a configuration removes its saved settings; you can separately delete the generated file from the Generated Feeds page.
Yes, both the main dashboard and the Generated Feeds page provide a direct download link for each feed file.
Yes. Choosing the Google Shopping profile produces an RSS 2.0 XML feed with the g: namespace Google Merchant Center expects.
Use the built-in Category Mapping page — it includes Google’s official product taxonomy with search-as-you-type, so you can map each WooCommerce category to the correct Google category once.
The plugin falls back to your product’s WooCommerce category path, so the field is never left empty — mapping it to Google’s taxonomy simply improves accuracy and approval rates.
Yes, for flat-rate and free-shipping methods configured in your WooCommerce shipping zones, the plugin resolves and includes real shipping costs.
Usually missing required data (price, image, GTIN/MPN/brand, or availability). Use the built-in data-quality filters to exclude incomplete products from the feed before submission.
Yes, choose the Facebook/Meta marketplace profile when creating a feed — it provides the relevant field set for catalog and ad use.
CSV or XML both work with Meta Commerce Manager’s catalog import; choose whichever your workflow already expects.
Yes. Category Mapping stores a Google category and a Facebook category independently for each WooCommerce category, using Facebook’s own bundled taxonomy list.
Yes, condition, brand, GTIN/MPN/SKU, and identifier presence are resolved automatically per product for the Facebook and Google Shopping profiles.
Yes. The Shopify profile writes an actual Shopify product-import CSV using Shopify’s own column headers (Handle, Body (HTML), Variant SKU, Variant Grams, and more) — not a generic CSV relabeled as “Shopify.”
Yes, the generated CSV is structured for Shopify’s product import tool, making it a practical starting point for a WooCommerce-to-Shopify migration or for keeping a secondary Shopify catalog updated.
Yes, variation-level data (SKU, weight, price fields) is included per Shopify’s expected variant columns, with fallback to parent-product data when a variation doesn’t set its own value.
Yes, like any other feed, you can enable scheduled regeneration so your Shopify CSV stays current with your WooCommerce catalog.
It’s an RSS 2.0 feed using the Google Merchant g: namespace convention — the same structure Google Shopping and many comparison-shopping engines expect.
Yes, any platform that accepts an RSS/XML-based product feed with namespaced fields can typically consume it.
Yes, all text values are escaped for safe XML output automatically.
Whichever fields you’ve mapped in the field-mapping table — the CSV columns are generated directly from your mapping, so you control exactly what’s exported.
Yes, it’s a standard comma-separated file readable by any spreadsheet application.
Yes, every filter (stock, category, price, custom rules, etc.) applies the same way regardless of which output format you choose.
It’s a JSON Lines file — one JSON object per product, one product per line — with a .txt extension. It’s a lightweight option for line-by-line ingestion rather than a plain delimited text file.
JSON Lines is convenient for pipelines or scripts that read a feed one line/record at a time rather than parsing one large JSON array.
It produces a structured JSON payload — schema_version, updated_at, total_products, and a products array with normalized fields — designed for AI shopping agents and OpenAI-style product feed ingestion.
No. The OpenAI profile formats your existing product data into a clean, structured JSON schema; it does not generate or rewrite content with AI.
Fields like stock status are converted to consistent snake_case values (in_stock / out_of_stock) and numeric fields are output as real JSON numbers, which is the structured format AI shopping integrations expect.
Yes — because it’s clean, structured JSON, it’s also a reasonable starting point for any custom API or AI-driven integration, not only OpenAI-branded tools.
No. The plugin only writes a JSON file to your own server; nothing is transmitted to OpenAI or any external service by the plugin itself.
Yes, there’s a dedicated “sale only” toggle in the filter settings.
Yes, filter by stock status and choose to include only “in stock” (and optionally “on backorder”) products.
Yes, both categories and tags support an include or exclude mode, so you can build either an allow-list or a block-list.
Yes, set a minimum and/or maximum price and only matching products are included.
Yes, date-created and date-modified range filters are both available.
Yes, the feed form shows a live matching-product count as you adjust filters, so you can confirm your filter set before running a full generation.
It lets you build filter conditions beyond the standard toggles — pick any standard field, product attribute, or custom meta key, choose an operator (equals, contains, starts with, ends with, greater than, less than, is empty, is not empty), and a value.
Yes, multiple rules can be added and are combined together (AND logic) to build precise product sets.
Yes, the custom field rule builder accepts any meta key, including ones added by other plugins, as long as it’s stored as WooCommerce product/post meta.
Yes, the built-in data-quality filters handle the common cases automatically — missing title, image, price, SKU, weight, brand, GTIN, and MPN — without needing a custom rule for each one.
Yes, minimum and maximum price filters apply to the WooCommerce product price.
Yes, a stock-quantity range filter is available in addition to the in-stock/out-of-stock status filter.
No. The plugin filters products by price and stock; it exports your actual WooCommerce prices as-is rather than applying markup or discount rules.
Each WooCommerce category can be mapped to a specific Google product category and a specific Facebook product category, using bundled official taxonomy lists with search.
The plugin checks a product’s most specific category first and works upward, using the first mapped category it finds.
No, unmapped categories automatically fall back to your WooCommerce category path so the feed always has a value.
Yes, category mappings are stored globally and apply automatically to any feed using the Google Shopping or Facebook profile.
It combines two or more WooCommerce attributes (or fields like product name, SKU, or price) into a single feed value, joined by a separator you choose.
It’s a more advanced version that lets you build named mapping “blocks” that can each feed a different target field, so one configuration can populate several feed fields at once instead of just one.
Yes, a common use is combining attributes like size and color into a single readable variant label for the feed.
Yes, saved attribute mappings and dynamic attribute mappings are available to select from when mapping fields on any feed.
Yes, you can choose to export the variable parent, all individual variations, only specific variations (cheapest, most expensive, first, or last), or both parent and variations together.
The plugin automatically falls back to the parent product’s value, so variations still export complete data.
Yes, “Default Variation” is one of the available product-selection modes.
Yes, the plugin explicitly declares HPOS compatibility.
Yes, all standard WooCommerce product types are supported by the filtering and generation engine.
No additional plugin is required — WooCommerce is the only dependency.
Not currently — there is no dedicated WPML or Polylang integration in this version. If your translation plugin stores translated content on the same product record, mapped fields may still export correctly, but this isn’t guaranteed for every setup.
Feeds use your store’s single active WooCommerce currency. Dedicated multi-currency feed support is not currently included.
Yes, feeds are generated in configurable batches instead of one long request, which is designed specifically to handle large catalogs without timing out.
Yes, batch size is adjustable (10–2,000 products) in the feed’s performance settings.
Feed generation runs in the admin area and reads product data via standard WooCommerce queries; very large batch sizes on limited hosting can use more server resources, so start with a moderate batch size and adjust based on your server’s performance.
Each batch writes to a temporary file before the feed is finalized, so you can simply regenerate the feed if a run is interrupted.
Yes, enable automatic updates on a feed and choose an interval — from every hour up to once a week — and WP-Cron will regenerate it for you.
Every 1, 2, 3, 4, 6, 8, 12, 24, or 48 hours, every 3 days, or every week.
Yes, like all WordPress scheduled tasks, WP-Cron relies on visits to your site to trigger due events; low-traffic sites may want a real server cron calling wp-cron.php for reliable timing.
Yes, the schedule toggle can be switched off for any feed at any time from the dashboard.
Review your filters — an overly narrow combination (for example, a category filter with no matching products, or a data-quality rule excluding everything) is the most common cause. The live match-count preview helps confirm this before generating.
If scheduled updates aren’t enabled, feeds only regenerate when you manually click Generate/Regenerate; enable automatic scheduling if you want changes reflected without manual action.
Lower the batch size in the feed’s performance settings so each request processes fewer products at a time.
Check your data-quality exclusion rules and any custom field rules — a product missing a required field (like price or image) is silently excluded by design so incomplete listings don’t reach the marketplace.
Use the plugin’s WordPress.org support forum — please include your feed’s marketplace/format and a description of your filters when asking for help, as this speeds up diagnosis.
Yes, all feed and mapping management screens require the WordPress manage_options capability, which by default only Administrators have.
Yes, by design — marketplaces need to fetch the feed URL directly, so generated files are served from your uploads directory like any other public media file. Don’t include sensitive internal data in a feed’s mapped fields.
Yes, filter and mapping input is sanitized before being saved.
Not in the current version. Feed configuration is managed through the WordPress admin UI only.
Not in the current version — there is no public hook/filter API yet for extending feed generation from custom code.
Strings are wrapped for translation using the plugin’s text domain, though a bundled .pot/language pack is not yet included in this version.
Check the Changelog section of this readme for the most recent release notes and version history.
Feed configurations are stored as WordPress options and are preserved across plugin updates under normal circumstances; always keep a backup before major updates, as with any plugin.
Reviews
Changelog
1.0.0
- Initial public release.
- Multi-marketplace feed generation for Google Shopping, Facebook/Meta Catalog, Shopify, and OpenAI-compatible AI shopping feeds, in XML, CSV, JSON, and JSON Lines (.txt) formats.
- Guided feed creation wizard with field mapping per marketplace profile.
- Advanced product filtering: stock, type, category/tag include-exclude, price and stock range, date range, data-quality exclusion rules, and a custom field rule builder.
- Attribute Mapping and Dynamic Attribute Mapping for combining WooCommerce attributes into feed fields.
- Category Mapping with bundled official Google and Facebook product taxonomies and search.
- Scheduled automatic feed regeneration via WP-Cron, with configurable intervals from hourly to weekly.
- Batch-based generation for large catalogs, with adjustable batch size.
- WooCommerce High-Performance Order Storage (HPOS) compatibility declared.