SJRubel Product Feed Generator

Plugin Banner

SJRubel Product Feed Generator

by MD RUBEL MIA

Download
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.

  1. Upload the plugin files to the /wp-content/plugins/ directory, or install the plugin directly through the WordPress Plugins screen.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. Make sure WooCommerce is installed and active.
  4. Open Feed Generator in your WordPress admin sidebar.
  5. Click Add New to launch the feed wizard: choose a marketplace and format, map your fields, set your filters, and generate.
  6. Copy the generated feed URL and submit it to Google Merchant Center, Meta Commerce Manager, Shopify, or your destination platform.
  7. Optional: turn on scheduled auto-regeneration so the feed stays current without manual work.
General

What does SJRubel Product Feed Generator do?

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.

Do I need WooCommerce for this plugin to work?

Yes. This plugin generates feeds from WooCommerce product data, so an active WooCommerce installation is required.

Is this plugin free?

Yes, the plugin is free and licensed under GPLv2 or later.

Will this work with any theme?

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.

Does the plugin modify my products or store front-end in any way?

No. It only reads existing WooCommerce product data to build feed files; it does not change your products, prices, or storefront.

Can I run multiple feeds at the same time?

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.

Feed Creation

How do I create my first feed?

Go to Feed Generator Add New, pick a marketplace and feed format, map your product fields, set any filters you want, then click Generate.

Can I edit a feed after creating it?

Yes. Every saved feed configuration can be reopened, edited, and regenerated from the main Feed Generator dashboard.

Where are generated feed files stored?

Inside your WordPress uploads directory, in a dedicated sjrubel-product-feeds folder, so files are served directly by your site.

Does the feed URL change every time I regenerate?

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.

Can I delete a feed configuration?

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.

Can I download a generated feed file directly?

Yes, both the main dashboard and the Generated Feeds page provide a direct download link for each feed file.

Google Shopping / Google Merchant Center

Does this plugin create a valid Google Merchant Center feed?

Yes. Choosing the Google Shopping profile produces an RSS 2.0 XML feed with the g: namespace Google Merchant Center expects.

How do I map my WooCommerce categories to Google product categories?

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.

What if I don’t map a category?

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.

Does the feed include shipping information for Google Shopping?

Yes, for flat-rate and free-shipping methods configured in your WooCommerce shipping zones, the plugin resolves and includes real shipping costs.

Why would Google reject some of my products?

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.

Facebook / Meta Catalog

Can I generate a Facebook or Instagram product catalog feed?

Yes, choose the Facebook/Meta marketplace profile when creating a feed — it provides the relevant field set for catalog and ad use.

What format should I use for Facebook Catalog?

CSV or XML both work with Meta Commerce Manager’s catalog import; choose whichever your workflow already expects.

Can I map a Facebook product category separately from Google’s?

Yes. Category Mapping stores a Google category and a Facebook category independently for each WooCommerce category, using Facebook’s own bundled taxonomy list.

Does it support Facebook-specific fields like condition and identifier existence?

Yes, condition, brand, GTIN/MPN/SKU, and identifier presence are resolved automatically per product for the Facebook and Google Shopping profiles.

Shopify Feed

Does this plugin generate a real Shopify import file?

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.”

Can I use this to migrate WooCommerce products into 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.

Do variable products export correctly to the Shopify format?

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.

Does the Shopify feed update automatically?

Yes, like any other feed, you can enable scheduled regeneration so your Shopify CSV stays current with your WooCommerce catalog.

XML Feed

What does the XML feed look like?

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.

Can I use the XML feed for platforms other than Google?

Yes, any platform that accepts an RSS/XML-based product feed with namespaced fields can typically consume it.

Is special-character handling safe in the XML output?

Yes, all text values are escaped for safe XML output automatically.

CSV Feed

What’s included in the CSV feed?

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.

Can I open the CSV feed in Excel or Google Sheets?

Yes, it’s a standard comma-separated file readable by any spreadsheet application.

Does CSV support the same filters as XML?

Yes, every filter (stock, category, price, custom rules, etc.) applies the same way regardless of which output format you choose.

TXT / JSON Lines Feed

What format is the “.txt” feed?

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.

When should I use JSON Lines instead of JSON?

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.

OpenAI / AI Shopping Feeds

What is the OpenAI feed format for?

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.

Does this plugin use AI to rewrite my product titles or descriptions?

No. The OpenAI profile formats your existing product data into a clean, structured JSON schema; it does not generate or rewrite content with AI.

Why does availability get normalized in the OpenAI feed?

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.

Can I use the OpenAI feed for other AI or API-based platforms?

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.

Is my product data sent to OpenAI or any third party when I use this feed?

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.

Product Filters

Can I export only products that are on sale?

Yes, there’s a dedicated “sale only” toggle in the filter settings.

Can I exclude out-of-stock products automatically?

Yes, filter by stock status and choose to include only “in stock” (and optionally “on backorder”) products.

Can I include or exclude specific categories?

Yes, both categories and tags support an include or exclude mode, so you can build either an allow-list or a block-list.

Can I filter by price range?

Yes, set a minimum and/or maximum price and only matching products are included.

Can I filter by when a product was created or last updated?

Yes, date-created and date-modified range filters are both available.

Can I see how many products match my filters before generating the feed?

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.

Advanced Filters & Custom Field Rules

What is the custom field rule builder?

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.

Can I combine multiple custom rules?

Yes, multiple rules can be added and are combined together (AND logic) to build precise product sets.

Can I filter on a custom meta field that isn’t in the default list?

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.

Can I exclude products that are missing required data instead of writing custom rules?

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.

Price & Stock Filtering

Can I set a minimum price so cheap items are excluded from a feed?

Yes, minimum and maximum price filters apply to the WooCommerce product price.

Can I filter by stock quantity, not just stock status?

Yes, a stock-quantity range filter is available in addition to the in-stock/out-of-stock status filter.

Does the plugin change prices in the feed, like applying a markup?

No. The plugin filters products by price and stock; it exports your actual WooCommerce prices as-is rather than applying markup or discount rules.

Category Mapping

How does category mapping work?

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.

What happens with subcategories?

The plugin checks a product’s most specific category first and works upward, using the first mapped category it finds.

Do I have to map every category before generating a feed?

No, unmapped categories automatically fall back to your WooCommerce category path so the feed always has a value.

Can I reuse the same category mapping across multiple feeds?

Yes, category mappings are stored globally and apply automatically to any feed using the Google Shopping or Facebook profile.

Attribute & Dynamic Attribute Mapping

What is Attribute Mapping used for?

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.

What is Dynamic Attribute Mapping, and how is it different?

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.

Can I use attribute mapping for variant titles?

Yes, a common use is combining attributes like size and color into a single readable variant label for the feed.

Are mapped attributes reusable across multiple feed configurations?

Yes, saved attribute mappings and dynamic attribute mappings are available to select from when mapping fields on any feed.

Product Variations

Does the plugin support variable products?

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.

What happens if a variation doesn’t have its own SKU, GTIN, or condition set?

The plugin automatically falls back to the parent product’s value, so variations still export complete data.

Can I export only the default variation of each variable product?

Yes, “Default Variation” is one of the available product-selection modes.

WooCommerce Compatibility

Is this plugin compatible with WooCommerce High-Performance Order Storage (HPOS)?

Yes, the plugin explicitly declares HPOS compatibility.

Does it work with simple, variable, and grouped products?

Yes, all standard WooCommerce product types are supported by the filtering and generation engine.

Do I need any other plugin besides WooCommerce for this to work?

No additional plugin is required — WooCommerce is the only dependency.

Multi-language & Multi-currency

Does this plugin translate product feeds for WPML or Polylang?

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.

Does the plugin support multiple currencies?

Feeds use your store’s single active WooCommerce currency. Dedicated multi-currency feed support is not currently included.

Performance & Large Catalogs

Will this plugin work with a large product catalog?

Yes, feeds are generated in configurable batches instead of one long request, which is designed specifically to handle large catalogs without timing out.

Can I control how many products are processed per batch?

Yes, batch size is adjustable (10–2,000 products) in the feed’s performance settings.

Will generating a feed slow down my live store?

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.

What happens if feed generation is interrupted partway through?

Each batch writes to a temporary file before the feed is finalized, so you can simply regenerate the feed if a run is interrupted.

Scheduling & Automatic Updates

Can feeds update automatically without me regenerating them by hand?

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.

What scheduling intervals are available?

Every 1, 2, 3, 4, 6, 8, 12, 24, or 48 hours, every 3 days, or every week.

Does WP-Cron require site traffic to run scheduled feed updates?

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.

Can I turn off automatic updates for a specific feed later?

Yes, the schedule toggle can be switched off for any feed at any time from the dashboard.

Troubleshooting

My feed shows zero products — what should I check first?

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.

The feed file didn’t update after I changed a product — why?

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.

I got a timeout while generating a large feed — what should I do?

Lower the batch size in the feed’s performance settings so each request processes fewer products at a time.

Why is a product missing from my feed even though it matches my category filter?

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.

Where can I get help if something isn’t working?

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.

Security

Are feed-management actions restricted to administrators?

Yes, all feed and mapping management screens require the WordPress manage_options capability, which by default only Administrators have.

Are the generated feed files publicly accessible?

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.

Does the plugin sanitize the filters and mapping values I enter?

Yes, filter and mapping input is sanitized before being saved.

Developer / API

Does this plugin expose a REST API?

Not in the current version. Feed configuration is managed through the WordPress admin UI only.

Does the plugin provide developer hooks or filters to customize feed output?

Not in the current version — there is no public hook/filter API yet for extending feed generation from custom code.

Is the plugin’s code translation-ready?

Strings are wrapped for translation using the plugin’s text domain, though a bundled .pot/language pack is not yet included in this version.

Updates

How often is this plugin updated?

Check the Changelog section of this readme for the most recent release notes and version history.

Will updating the plugin affect my existing feed configurations?

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.

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.
Back to top