WordPress.org

Plugin Directory

Product Feed Manager for WooCommerce – CTX Feed – Support 220+ Shopping, AI & Social Channels

Product Feed Manager for WooCommerce – CTX Feed – Support 220+ Shopping, AI & Social Channels

Description

🏆 The #1 WooCommerce Product Feed Manager Plugin trusted by 80,000+ online stores worldwide.

Stop losing sales to rejected product feeds. CTXFeed is the most powerful product feed plugin for WooCommerce, designed to generate optimized, error-free feeds for Google Shopping, Facebook Catalog, Instagram Shopping, TikTok Shop, Pinterest, Bing, and 220+ global marketing channels.

Whether you’re managing 100 products or 100,000+ SKUs, CTXFeed handles your entire WooCommerce product feed with zero limits. Our intelligent batch processing ensures your XML, CSV, and JSON feeds are created flawlessly without crashing your server.

2026 Google Merchant Center Compliant – Ready for the March 2026 multi-channel product ID requirements and subscription product support.

Why 80,000+ WooCommerce Stores Choose CTXFeed?

  • 95 Pre-Built Templates for 220+ channels – Instant setup for Google Merchant Center, Meta (Facebook/Instagram), TikTok Shop, Amazon, eBay, Snapchat, Pinterest, and more
  • 6 Export Formats – XML, CSV, TSV, XLS, TXT, JSON (more file format options than any competitor)
  • Smart Category Mapping – Auto-map WooCommerce categories to Google’s official taxonomy to prevent feed errors
  • Real-Time Auto-Sync – Scheduled cron updates keep your ads accurate with correct pricing and availability
  • Variable Product Support – Perfectly handle complex product variations that other plugins miss
  • Zero Server Crashes – Intelligent batch processing for stores with 50,000+ products

Upgrade to Pro | View Demo | Complete Documentation | Video Tutorials | Get Support

Google Shopping Feed Manager

CTXFeed is the ultimate Google Shopping feed manager for WooCommerce. Create Google Shopping feeds that get approved fast with automatic attribute mapping for all required fields:

  • Product Title, Description, Link, Image Link
  • Price, Sale Price, Availability, Condition
  • Brand, GTIN, MPN, SKU, EAN, UPC
  • Google Product Category (automatic taxonomy mapping)
  • Shipping, Tax, and Custom Labels
  • Color, Size, Material, Pattern, Gender, Age Group
  • Local Inventory Ads support
  • Google Promotions feed support

Fix “Missing Required Attribute” errors instantly with our built-in attribute mapping tool. No more Google Merchant Center rejections!

Facebook Product Feed & Instagram Shopping

Generate Facebook product feeds and Instagram Shopping catalogs compatible with Meta Commerce Manager. CTXFeed creates the perfect WooCommerce Facebook product feed for:

  • Dynamic Product Ads (DPA) support
  • Facebook Pixel integration ready
  • Instagram Shopping checkout is compatible
  • Advantage+ catalog campaigns optimized
  • Facebook Marketplace listings
  • All Meta required attributes are included automatically

TikTok Shop & Social Commerce Feed Manager

Reach younger shoppers with TikTok Shop integration. CTXFeed is your complete shopping feed manager for social commerce:

  • TikTok Seller Center compatible feeds
  • Product certification fields included
  • Brand Authority attributes mapped
  • Avoid “Under Review” status with optimized data
  • Snapchat Product Catalog support
  • Pinterest Shopping feed ready

Complete Channel & Marketplace Support

CTXFeed supports more channels than any other WP product feed manager:

Google Feeds:

  • Google Shopping
  • Google Local Inventory
  • Google Promotions
  • Google Dynamic Remarketing
  • Google Local Products
  • Google Manufacturer Center
  • Google Express

AI Commerce:

  • ChatGPT Merchant
  • Perplexity’s AI-powered shopping

Shopping & Comparison Sites:

  • Bing Shopping
  • Yahoo Shopping
  • PriceGrabber
  • Shopzilla
  • PriceRunner
  • PriceSpy
  • Kelkoo
  • Idealo
  • Billiger.de
  • Trovaprezzi
  • Skroutz
  • Heureka
  • Ceneo
  • Beslist
  • Vergelijk

Social Commerce:

  • Facebook Catalog/ Meta Catalog
  • Instagram Shop
  • X.com Dynamic Product Ads
  • Pinterest Catalog Feed
  • TikTok Shop
  • Snapchat Data Feed Catalog
  • Reddit Dynamic Product Ads

Marketplaces:

  • Amazon
  • eBay
  • Walmart
  • Etsy
  • Rakuten
  • Wish
  • Fruugo
  • Bonanza
  • Newegg
  • Jet

Affiliate Networks:

  • Commission Junction
  • ShareASale
  • Awin
  • Rakuten Advertising
  • AvantLink
  • Pepperjam

Regional Marketplaces:

  • Bol.com (Netherlands)
  • Allegro (Poland)
  • Fnac (France)
  • Otto (Germany)
  • Coolblue
  • Marktplaats

…Make product feed for 220+ shopping channels

Upgrade to Pro | Complete Documentation | Video Tutorials | Get Support

Built for Large Catalogs – The Best Product Feed Tool

CTXFeed is engineered for WooCommerce stores of any size. As a professional product feed tool, it handles:

  • Unlimited products per feed
  • Unlimited feeds
  • Batch processing prevents timeouts
  • Effortless background feed generation
  • No server capabilty limitation
  • Works perfectly with shared hosting
  • Memory-efficient processing
  • Works on shared hosting
  • Optimized for 200,000+ products
  • Server resource management

WooCommerce Data Feed Features

CTXFeed provides comprehensive WooCommerce data feed management:

Smart Filtering:

  • Include/exclude products by category
  • Filter by stock status
  • Filter by price range
  • Filter by product type
  • Custom condition filters
  • Exclude specific products
  • Conditional filtering to reduce ads cost

Dynamic Attributes:

  • Create custom attributes on-the-fly
  • Combine multiple fields
  • Price manipulation (markup/markdown)
  • String replacement
  • Conditional logic
  • Pattern-based transformations

Feed Optimization:

  • Auto-remove HTML from descriptions
  • Image URL optimization
  • Price formatting by locale
  • Availability status mapping
  • Category path customization
  • UTM parameter support

Complete WooCommerce Compatibility

Works with all WooCommerce product types and popular extensions:

Product Types:

  • Simple Products
  • Variable Products (with all variations)
  • Grouped Products
  • External/Affiliate Products
  • WooCommerce Subscriptions (Pro Feature)
  • WooCommerce Bundles (Pro Feature)
  • WooCommerce Composite Products (Pro Feature)

Multi-Vendor Plugins (Pro Feature):

  • Dokan Multivendor
  • WCFM Marketplace
  • WC Vendors
  • MultiVendorX
  • WC Marketplace

Multilingual & Multi-Currency (Pro Feature):

  • WPML (WordPress Multilingual)
  • Polylang
  • TranslatePress
  • Weglot
  • CURCY – Multi Currency for WooCommerce
  • Aelia Currency Switcher
  • WooCommerce Multi Currency

SEO & Custom Fields:

  • Yoast SEO (product data)
  • Rank Math SEO
  • All in One SEO
  • ACF (Advanced Custom Fields)
  • Custom Product Tabs
  • WooCommerce Custom Fields

Other Integrations (Pro Feature):

  • WooCommerce Brands
  • Perfect Brands for WooCommerce
  • YITH WooCommerce Brands
  • WooCommerce Product Add-Ons
  • WooCommerce Measurement Price Calculator

2026 Google Compliance Features

CTXFeed is fully prepared for Google’s 2026 policy updates:

March 2026 Multi-Channel Product ID Requirement:

  • Separate product IDs for online vs in-store items
  • Local Inventory Ads compliance
  • Multi-channel feed generation
  • Unique identifier management

January 2026 Subscription Products:

  • subscription_cost attribute support
  • Billing period mapping
  • Recurring price feeds
  • WooCommerce Subscriptions integration

AI-Ready Semantic Data:

  • Clean, structured product data
  • HTML/shortcode stripping
  • Google SGE optimized feeds
  • Schema-compliant output

Upgrade to Pro | Complete Documentation | Video Tutorials | Get Support

CTXFeed Pro – Premium Features

Upgrade to CTXFeed Pro for advanced capabilities:

  • Dynamic Attribute Creation – Create custom attributes on-the-fly
  • Advanced Filtering – Include/exclude products by any condition
  • Multi-Vendor Feeds – Generate vendor-specific feeds
  • Custom XML Templates – Build any complex feed structure
  • FTP/SFTP Auto-Upload – Automatically push feeds to channels
  • Google Content API – Direct Merchant Center integration
  • Priority Support – Expert assistance with email

What Store Owners Say

“CTXFeed is the ONLY plugin that handled our 45,000 product catalog without crashing. We tried 3 other plugins before finding this gem.” – WooCommerce Store Owner

“Finally got our Google Shopping feed approved after weeks of rejections with other plugins. CTXFeed’s category mapping feature saved us!” – E-commerce Manager

“The support team is incredible. They helped us set up feeds for 12 different marketplaces in one day.” – Digital Marketing Agency

“Best WooCommerce product feed plugin we’ve used. The batch processing feature is a game-changer for large stores.” – Online Retailer

Documentation & Support

Our Other Free Plugins

Screenshots

Installation

Automatic Installation

  1. Go to Plugins > Add New in your WordPress dashboard
  2. Search for “CTX Feed”
  3. Click Install Now then Activate
  4. Go to CTX Feed > Make Feed to create your first product feed

Manual Installation

  1. Download the plugin ZIP file
  2. Go to Plugins > Add New > Upload Plugin
  3. Upload the ZIP file and click Install Now
  4. Activate the plugin
  5. Navigate to CTX Feed in your dashboard

Creating Your First Google Shopping Feed

  1. Go to CTX Feed > Make Feed
  2. Select “Google Shopping” from the template dropdown
  3. Choose XML as your file format
  4. Click Update and Generate Feed
  5. Copy the feed URL
  6. Add to Google Merchant Center via Scheduled Fetch

Creating a Facebook Catalog Feed

  1. Go to CTX Feed > Make Feed
  2. Select “Facebook Catalog / Instagram” template
  3. Choose CSV or XML format
  4. Generate your feed
  5. Upload to Meta Commerce Manager

FAQ

How do I create a Google Shopping feed for WooCommerce?

With CTX Feed, creating a Google Shopping feed takes just 3 clicks:
1. Select the Google Shopping template from 220+ options
2. Configure your product attributes (pre-filled automatically)
3. Click “Generate Feed”

The plugin automatically maps your WooCommerce product data to all Google required attributes including title, description, price, availability, GTIN, brand, and image links.

How do I fix “Missing Required Attribute” errors in Google Merchant Center?

CTX Feed’s Category Mapping tool instantly links your WooCommerce categories to Google’s official taxonomy. For missing attributes like brand or GTIN, use our Attribute Mapping feature to:
– Pull data from custom fields or ACF
– Use Yoast SEO or Rank Math data
– Set static values for your entire catalog
– Create dynamic attributes based on conditions

Can CTX Feed handle large stores with 50,000+ products?

Absolutely! Unlike plugins that timeout, CTX Feed uses intelligent batch processing. Adjust the “Products Per Batch” setting (recommended: 200-500 products) to match your server capacity. This prevents memory limit errors and ensures 100% feed completion for massive catalogs.

Is CTX Feed ready for Google’s March 2026 multi-channel product requirements?

Yes. CTX Feed fully supports Google’s new requirement for separate product IDs when online and in-store attributes differ (price, availability, condition). Our Local Inventory Ads template helps you generate compliant feeds with unique identifiers for multi-channel products.

How do I create a Facebook/Instagram product catalog feed?

Select the “Facebook Catalog / Instagram” template from CTX Feed’s 220+ pre-built options. The plugin generates a feed compliant with Meta Commerce Manager requirements, including all required fields for:
– Dynamic Product Ads (DPA)
– Instagram Shopping
– Advantage+ catalog campaigns

Does CTX Feed support WooCommerce Subscriptions for Google Shopping?

Yes! Following Google’s January 2026 policy update allowing subscription products in Shopping ads, CTX Feed Pro supports the subscription_cost attribute mapping required for:
– Subscription boxes
– Replenishment/auto-ship products
– Membership products

How do I sync my feed to TikTok Shop?

  1. Create a new feed using the TikTok Shop template
  2. Include all required attributes (product certification, brand authority)
  3. Generate the feed and copy the URL
  4. Add the feed URL to TikTok Seller Center
  5. Set up a scheduled sync for automatic updates

Can I exclude out-of-stock products from my feed?

Yes! Use the Filter option when creating your feed:
1. Click “Filter” in the feed settings
2. Add condition: “Availability” + “is not” + “out of stock”
3. Generate your filtered feed

Pro tip: Use CTX Feed Pro’s advanced filtering for complex conditions.

Does CTX Feed work with WPML for multilingual feeds?

Yes. CTX Feed is fully compatible with WPML, Polylang, and TranslatePress. Create separate feeds for each language to target international markets with localized product data.

How often should I update my product feed?

We recommend daily updates for most stores. CTX Feed’s scheduled cron feature can automatically regenerate your feed every 1, 6, 12, or 24 hours. For stores with frequently changing inventory, use the Auto Update feature to sync changes immediately.

What file formats does CTX Feed support?

CTX Feed supports 6 file formats – more than any other WooCommerce feed plugin:
– XML (most common for Google, Facebook)
– CSV (spreadsheet compatible)
– TSV (tab-separated)
– XLS (Excel)
– TXT (text)
– JSON (API integrations)

Is there a product limit in the free version?

No! CTX Feed free version supports unlimited products and unlimited feeds. There are no artificial limits. The Pro version adds advanced features like dynamic attributes, custom XML templates, and multi-vendor support.

How do I add GTIN, MPN, or Brand to my products?

CTX Feed adds custom fields for GTIN, MPN, EAN, UPC, and Brand to your WooCommerce products. Simply:
1. Edit any product
2. Scroll to the “CTX Feed” tab
3. Enter your product identifiers
4. These will automatically be included in your feeds

Can I create feeds for multiple countries?

Yes! Create separate feeds for each target country with:
– Localized pricing and currency
– Country-specific shipping information
– Translated product data (with WPML/Polylang)
– Region-specific availability

How do I troubleshoot feed generation errors?

If your feed fails to generate:
1. Reduce “Products Per Batch” to 100-200
2. Increase PHP memory limit in wp-config.php
3. Check for plugin conflicts by disabling other plugins
4. Enable WordPress debug mode to identify errors
5. Contact our support team for assistance

Reviews

September 8, 2026
Works well, even the free version is sufficient for most of my projects.
September 6, 2026
I have a 300+ product catalogue and the feeds for Google merchant are now generating in a couple of seconds after the recent version 8.x plugin redesign. Previously they would take 1+ minutes to generate. I guess that even smaller servers and shops can now handle generating any feed very smootly. Excellent job, well done.
September 3, 2026
Iwas facing issue in CTX feed and I contacted to live chat support Ansary replied me instantly and resolve my issue within minutes. Ctx has also updated their customer service with thier new version of CTX plugin which are really impressive and user friendly I really appriciate their work and customer care.
Read all 832 reviews

Contributors & Developers

“Product Feed Manager for WooCommerce – CTX Feed – Support 220+ Shopping, AI & Social Channels” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

Version 8.0.17

  • Added: paste a list of IDs or SKUs straight into the product picker. Copy a comma-separated list from a spreadsheet into the include/exclude product search and every entry is looked up at once — all-numeric lists are matched as product IDs first with SKU fallback, alphanumeric lists as SKUs (variation SKUs included), and anything unmatched is listed so nothing silently drops.
  • Fix: private variations no longer export from publish-only feeds. The status filter applied only to parent products, so a private variation under a published parent still shipped — and Google advertised variants a customer can’t actually select on the product page.
  • Fix: an “empty” include filter saved as an empty string no longer silently zeroes the feed. Older configurations sometimes stored an empty category/tag/product-ID selection as an empty string instead of a true empty list; those feeds generated 0 products with no clue why. All list filters now treat both shapes as “no filter”.
  • Change: the “All Images” attribute is gallery-only again, like the old engine. Since 8.0.0 it also included the main image, which duplicated the main image into g:additional_image_link (Google asks for additional images only) and — because the value was never empty — quietly disabled the “parent if empty” command on variation image rows. The main image remains available through the Main Image and Featured Image attributes.
  • Fix: new-feed templates use the store currency in price values. The Idealo, Miinto.de and Etsy templates hardcoded a USD suffix — a new feed on a EUR store shipped “12.50 USD” until hand-edited.
  • Improved: brand columns in new-feed templates read the WooCommerce Brands taxonomy (the top-level Parent Brand), falling back to the site name — instead of a value parsed from the domain, which shipped “Com” as the brand on .com.au stores. Affects newly created feeds only.
  • Fix: ChatGPT (OpenAI) feeds ship the exact availability values OpenAI accepts. Backordered products now export “backorder” (they were mislabeled “preorder”), and pre-orders export OpenAI’s “pre_order” spelling — OpenAI rejects rows carrying unrecognized values.
  • Fix: custom code using the old engine’s woo_feed_get_…attribute filters works again. The new engine only bridged the woo_feed_filter_product* family, so snippets built on the second V5 filter family (for example woo_feed_get_short_description_attribute) silently stopped after the upgrade. All four variants now fire with their original order and signatures.

Version 8.0.16

  • Fix: SEO titles and descriptions now work inside Attribute Mapping. Combining a Rank Math, Yoast or All in One SEO field with other attributes in an Attribute Mapping printed the field’s internal name (e.g. “rank_math_title”) into the feed instead of the actual SEO value; the same fix applies to Dynamic Attributes.
  • Fix: prices ignore the store’s display separators in every formatting stage. On stores with European number settings (comma decimals), a €9.80 product could ship as “980.00” — the dot was mistaken for a thousands separator and stripped. Feeds now always parse and format numbers machine-style unless separators are configured explicitly in the feed.
  • Fix: Free Text values keep safe HTML. Line breaks, links and other harmless markup entered in a Free Text field survived saving only partially; scripts and other unsafe markup are still removed.
  • Added: a clear warning when a feed generates with 0 products. Filters combine with AND — a product must match ALL of them — so an include-category filter plus an include-product-IDs filter that don’t overlap silently produced a valid empty feed. Instead of “generated successfully”, you now get a warning naming the filters so you can fix the settings yourself.
  • Added: a “Default Language ID” attribute (WPML sites). It exports the default-language catalog ID for translated products — what Meta and Google language feeds need so items match your primary catalog. The old engine’s “Parent Id” quietly did this; the new attribute does it under an honest name, and “Parent Id” keeps meaning the variation’s parent product.
  • Improved: View and Download always fetch the current feed file. Hosts that serve uploads with long browser-cache headers made “View Feed” show a stale copy for months while the file on the server was fine; the buttons now bypass the browser cache (the feed URL you submit to merchants is unchanged).
  • Performance: exclude-mode category filters now cut at the database level, the same way include-mode filters do since 8.0.14 — feeds excluding large categories no longer scan the excluded products at all.

Version 8.0.15

  • Fix: category mappings resolve the most specific mapped category again. On stores whose older categories were later re-organised under new parent categories, mapped subcategories shipped an empty value — or the parent’s generic value — because the “deepest category” was guessed from the newest category ID instead of the real hierarchy. The product’s deepest mapped category now always wins (the ctxfeed_cmapping_v5_max_id filter restores the previous pick if a feed depended on it).
  • Fix: a feed could be reported “failed — one of these products is likely crashing PHP” minutes after it had published successfully. With the admin page open, the in-browser batch runner could execute the same batches WP-Cron had already claimed, so the whole run raced itself; a leftover batch then flagged the finished run as still generating and the watchdog eventually declared it dead. The runner now leaves claimed batches to WP-Cron, a leftover batch from an already-finished run is discarded on sight (this also closes a rare path where a partial file could overwrite the good feed), and the “gave up” message now names what actually kept failing instead of blaming a product.
  • Fix: the deactivation feedback dialog now also appears when deactivating CTX Feed Pro, and the survey records which of the two plugins was deactivated.
  • Added: a “Check for updates” button on the Version Control page’s Pro card — it asks webappick.com immediately instead of waiting out the 12-hour update cache after a new Pro release.

Version 8.0.14

  • Fix: CSV, TSV and TXT feeds stopped updating at their original URLs on current WordPress. A recent WordPress change renamed the feed’s file-type folder (google/tsv/ became google/unnamed-file.tsv/), so the file your merchant platform polls was never refreshed again — while a copy kept updating at a forked address. Feeds now write to their original folders again, the plugin cleans up the forked copies automatically after the next generation, and support-ticket attachments (which hit the same fault) find the feed file again. No reconfiguration needed in Merchant Center — the existing URL simply starts updating.
  • Performance: category-filtered feeds no longer scan the whole catalog. A feed whose category filter is in include mode now narrows the product list at the database level first — a 5-product category feed on a 500,000-product store finds its products in one small query instead of walking every product. Exclude-mode and advanced filters still evaluate per product, exactly as before.
  • Change: a variation’s additional images now come only from that variation’s own gallery — WooCommerce’s built-in variation gallery and all supported gallery plugins (Woo Variation Gallery, RT Variation Gallery, Woodmart, WooCommerce Additional Variation Images). A variation with 2 images ships 2 image fields and leaves the rest empty; the parent product’s gallery is no longer substituted automatically. To fall back to the parent’s images, use the “parent if empty” output command on the image attribute.
  • Added: the System status page now lists every product type in use on your site with its product count — Simple, Variable, Variations, and custom types like Auction or Bundle — even when the plugin that registered a type is deactivated. The same breakdown reaches support tickets automatically.
  • Improved: support tickets now attach diagnostics as files instead of pasting raw text — system-status.txt (the full System status page), system-status.log (the relevant generation log), and feed-config.txt (the selected feed’s configuration, credentials redacted) alongside the generated feed file.

Version 8.0.13

  • Fix: a large feed could finish as a 1-byte file. When a slow finalization step was retried while the original was still running, the duplicate overwrote the freshly published feed with an empty one; a duplicated finalization is now recognised and skipped, and the published feed is left untouched.
  • Fix: turning auto-update OFF now actually stops the feed. Runs already queued kept starting on their own after the toggle was switched off; the toggle now cancels the feed’s queued batches and in-flight run on the spot, unblocking editing immediately — and after a plugin update, every feed with auto-update off gets its leftover queue cleared automatically.
  • Fix: feed prices no longer inherit the store’s display separators. A store showing prices as “2.169,00” on the front end shipped that formatting into machine-read feeds; feeds now always use dot-decimal with no thousands grouping unless you explicitly configure separators in the feed’s Number Format settings (an empty thousands separator now genuinely means none).
  • Fix: All in One SEO titles and descriptions rendered as raw templates (e.g. “#post_title #separator_sa #site_title”) in feeds; AIOSEO’s smart tags are now rendered through AIOSEO itself.
  • Added: the Version Control page shows a CTX Feed Pro card — installed version, latest release, and a one-click update (an active license is required to download; without one the card links to the License page). Release notes on the page now render as tagged change lists instead of a wall of text.
  • Security: the “Our Plugins” one-click installer now requires the real plugin-install capability and only accepts WebAppick’s own catalog; category-mapping data is unserialized with object instantiation disabled; the feed-log download path is additionally sanitised. None of these were publicly reported; all are defence-in-depth hardening.
  • Note (CTX Feed Pro 8.0.4): WPML secondary-language feeds no longer export 0 products when generation runs from a scheduled task or an admin session in another language — the product query now runs in the feed’s language, with translation mapping as a safety net. Pro 8.0.4 also adds in-dashboard update notifications for the Pro plugin (this is the last Pro update that must be installed manually).

Version 8.0.12

  • Fix: the ChatGPT (OpenAI) template now outputs the spec’s primary column names is_eligible_search and is_eligible_checkout (the old enable_search / enable_checkout are OpenAI’s legacy aliases and keep working for existing feeds), alongside the is_ads_eligible attribute required for OpenAI Ads.
  • Fix (with CTX Feed Pro 8.0.3): WPML secondary-language feeds now match the shop. When WPML’s product mode is “use translation if available or fallback”, products without a translation stay in the feed as their original-language post instead of disappearing — a 4,500-product store no longer exports a 558-product Danish feed.
  • Fix: the dashboard’s channel performance grid showed raw channel slugs (e.g. “Chatgpt” instead of “ChatGPT (OpenAI)”) and logged a harmless error per channel on every load.
  • Note (CTX Feed Pro 8.0.3): currency and multilingual integrations are now mutually exclusive — with two currency plugins or two multilingual plugins active, CTX Feed uses one, ignores the other, and shows a clear warning naming both, instead of converting prices twice or emptying the feed.

Version 8.0.11

  • Performance: feed generation is several times faster. On our 2,400-product test store a full run dropped from 42 to 9 seconds, and variation-heavy catalogs gain the most: a variation’s parent product data is now resolved once per parent instead of once per variation, product images are bulk-loaded per batch instead of queried one by one, and category/tag lookups are served from the already-warmed cache. Every value served from the new caches is spot-checked against a freshly computed one during the run; on any difference the plugin logs it and finishes the run on the slower, always-correct path.
  • Fix: a feed whose batch was killed by the server without any error (the run froze with no failure message) now restarts itself from the exact product it reached, with a smaller batch; if the same spot keeps dying the feed is marked failed and the log names the products to check. The performance trace now shows where each batch’s time went and names unusually slow products.
  • Fix: the “Feed generation is taking longer than expected” warning no longer interrupts a long feed that is still making progress — the page keeps watching as long as the product count moves, and only gives up after 4 hours.
  • Change: batches are capped at 2,000 products for manual generation and 1,000 for scheduled auto-updates, on top of the automatic sizing and the time limit — large stores get steady, predictable batches instead of ever-growing ones.
  • Fix: a batch now stops on its own before the background scheduler’s time limit and hands the remaining products to the next batch, so a large batch can no longer be stamped “failed” and run twice. The generation log shows the product count climbing inside a batch, and a run that really stops is reported in the log instead of a vanishing “stalled” message.
  • New: every feed writes its generation log — no need to turn on “error & debug logging” first, so support can always ask for the log of a failed run. The debug setting now only controls the extra system diagnostics log. (Sites that must not write logs can disable them with the ctxfeed_feed_log_enabled filter.)
  • Fix: an out-of-stock variation with quantity 0 no longer inherits its parent product’s total stock in the feed — zero stays zero, matching the classic engine.
  • Change: the first batch of a run is sized from the previous run’s measured speed instead of a fixed estimate, so slow stores no longer overshoot on batch one and fast stores ramp up sooner.
  • New: the performance trace in the log now breaks each batch down by attribute, counts database queries per pipeline stage, and records how long the background scheduler idled between batches — the numbers support needs to diagnose a slow feed on your host.

Version 8.0.10

  • New: “Parent Brand (WooCommerce)” and “Child Brand (WooCommerce)” attributes for the hierarchical WooCommerce Brands taxonomy (the top-level brand and the assigned sub-brand), and the WooCommerce Brands taxonomy is available to free users in the attribute dropdown.
  • Fix: “Test connection” on the FTP / SFTP tab did nothing when clicked; it now runs, fails fast on an unreachable host or port, and reports the actual reason (unreachable, wrong port for SFTP, sign-in rejected, cannot write to the directory). The “File will land at” preview shows the real feed file name.
  • Fix: batch sizing now also respects Action Scheduler’s 5-minute action limit, not only the PHP time limit — on hosts with a long PHP limit, batches grew until Action Scheduler stamped them “failed” and an hourly feed took most of the hour. The fixed 2,000-product batch cap is gone: a server with the memory and time can process larger batches.
  • Fix: the auto-update interval now counts from the start of a run, not from its end — a 1-hour feed whose generation takes 50 minutes no longer drifts to every ~2 hours — and a completed run no longer leaves a duplicate recurring schedule behind.
  • Fix: with the “Plain” permalink setting every CTX Feed admin request returned 404 since 8.0.5 (feed list, template list, settings) — the cache-buster was appended after a second “?” — now fixed.
  • Fix: TXT feeds honour the configured delimiter and enclosure again (V5 parity): with a double/single-quote enclosure every field is wrapped and inner quotes are doubled, so a title like 22 mm (7/8″) no longer breaks a strict TSV parser.
  • Change: in the attribute dropdown only the product taxonomies CTX Feed creates itself (Settings Product attributes: Brand, GTIN, MPN, …) are free; the store’s other taxonomies stay Pro but no longer hide the free ones.
  • Fix: clicking Regenerate while a feed was already generating (another tab, another admin, or during the scheduled run) started a second, parallel run of the same feed that wrote into the same file — it is now refused with “This feed is already generating”, and the feeds list shows the live log for a run started anywhere (cron, another tab).
  • Fix: Variations now inherit their parent product’s Tags (and the new Brand attribute) in the feed. Dynamic-attribute rules such as “Tags contains …” failed on every variation because variations carry no tags of their own.
  • Fix: Variation titles include ALL variation attributes again (e.g. “Locker – Large , Blue , Two doors”). WooCommerce itself drops the attribute summary from a variation’s name once it has three or more attributes, so products with size + colour + style shipped the bare parent title.
  • Fix: Rank Math’s primary product category exports the category name instead of its term ID (e.g. “Blenders” instead of “332”), and the value is read from the parent for variations.
  • New: “Brand (WooCommerce)” attribute — the WooCommerce core Brands taxonomy is now a first-class value in every plan.
  • Fix: an old CTX Feed Pro (below 8.0) beside CTX Feed 8 now raises a red notice on every CTX Feed page and a critical System status row, with a one-click “Update CTX Feed Pro now” button when the license is active or a link to your WebAppick account downloads otherwise.
  • Fix: CRITICAL for stores whose price format uses a thousand separator — prices of 1,000 and above could be silently corrupted in the feed (e.g. 1.499 exported as 1) because the price was number-formatted more than once along the pipeline. Every formatting stage now parses the already-formatted value back with the feed’s own separators first, so formatting is idempotent. Thanks to Käpprätt AB for the report.
  • Fix: A retried feed batch no longer duplicates products. When a batch fails and is retried at a smaller size, the rows the failed attempt had already written are rolled back first, so every product appears exactly once.
  • Fix: Product save, Quick Edit and checkout no longer touch the database on CTX Feed’s behalf. The cache clean-up that ran inline on those requests is now a single deferred background job, so CTX Feed adds no time to saving a product or completing an order.
  • New: Leftover temporary files from the previous feed engine (wf_store_* files that could grow to gigabytes and exhaust PHP memory) are removed automatically — once after updating, and before each feed generates.
  • New: The feed log now names the filter behind every product it leaves out (“3 excluded by filters (visibility: 3)”) and warns when a whole batch was filtered away, so an unexpectedly empty feed points straight at the setting responsible.
  • Changed: WooCommerce Status Logs now contains a single CTX Feed source, “ctxfeed”, and it carries PHP errors only — caught errors plus PHP fatal errors raised inside the plugin, with file and line. Progress and performance chatter is gone from WooCommerce logs; with “Enable error debugging” on, it is written to the plugin’s own uploads/woo-feed/logs/ctxfeed-system.log instead.
  • Changed: One log file per feed. Each feed’s log starts over on every run (no rotated copies), is downloadable from the feed’s row menu, and is deleted together with the feed.
  • Changed: Auto-update interval. A feed with auto-update on and no interval of its own now runs every 24 hours (the old global “Update interval” setting is no longer consulted). The Schedule column shows the interval the scheduler will actually use — feeds that previously read “Manual” while running daily now show “24h” — and “Manual” appears only when auto-update is off.
  • Fix: No more “Function _load_textdomain_just_in_time was called incorrectly” notices on every page load (WordPress 6.7+). Three early-translation paths in the plugin boot were deferred to init — this also removes the “Action Scheduler data store was not initialized” notices.
  • New: A live generation log console appears directly under a feed while it regenerates — batch progress dots, the current batch line (products written / skipped), a step counter and a progress bar. The “generation started” toast is gone (the console is the feedback now), and duplicate “generated successfully” toasts on one run are fixed.
  • New: One-click AI connect (with CTX Feed Pro 8.0.2): the AI assistant screen now leads with an OAuth server address — your AI app connects with a login + approval on your own site, no application password or header to copy. The header-based flow remains available under Advanced for AI apps without one-click sign-in.
  • Fix: “Generate your access header” now works for WordPress usernames in any language (non-Latin usernames previously failed silently), and a failed clipboard copy is now visible (“Copy failed — select the text”) instead of silently pasting nothing.
  • Improvement: Manage Feeds — long feed names truncate with an ellipsis (full name on hover) instead of breaking the layout, Schedule and Last Generated use compact time labels (24h, 2h ago), the Schedule column sits beside the Feed URL, and “Manual only” is now “Manual”.
  • Security: The CTXFEED_DEV_MODE wp-config constant no longer exists — feature gates are unlockable only by the Pro plugin’s license-checked filters.

Version 8.0.9

  • Fix: Mapping the “Shipping (Google Format)” attribute could kill feed generation on stores with many shipping methods — the batch silently died mid-run and the feed never finished. Shipping prices are now computed by pricing each configured shipping method directly against the product (no cart round-trip), which is 50-100x faster and immune to slowdowns from cart-aware checkout/marketing plugins. An 11,000-product store with 14 shipping methods that could not finish at all now completes in about a minute.
  • Fix: Product variations no longer show a wrong 0.00 shipping price — they are now priced with their own price and shipping class.
  • New: Shipping resolution has a safety time budget (filter: ctxfeed_shipping_time_budget, default 20s per batch) — if a shipping plugin is pathologically slow, remaining products emit their shipping entries without computed prices instead of the whole feed dying. For shipping plugins that genuinely require a real cart to price, the previous cart-based computation is available via the ctxfeed_shipping_use_cart_api filter.
  • Improvement: The per-batch start line in the feed log is written immediately, so a batch killed by the server stays visible in the log instead of vanishing.

Version 8.0.8

  • Fix: The feed generation progress bar now self-heals against a mis-configured CDN. It is driven from the always-fresh background-run response (which a CDN cannot cache) and only ever moves forward, so it can no longer sit frozen at a stale percentage (e.g. “stuck at 60%”) while the feed has actually progressed or already finished.

Version 8.0.7

  • New: A failing feed batch now automatically retries with a smaller batch size instead of aborting the whole feed. If a batch is too big for the server (a PHP timeout or memory-limit fatal), the plugin halves the batch and retries that same point — stepping down toward a safe size — so large catalogues on tighter hosts keep generating instead of stopping. It recovers from both catchable errors and uncatchable fatals (max-execution-time / out-of-memory), and only gives up once the size is already at the minimum.

Version 8.0.6

  • New: System status now shows a WARNING (instead of a neutral note) when WP-Cron is disabled AND scheduled feed jobs are genuinely piling up unprocessed — telling you that automatic feed updates won’t run until a working server cron is set up. It stays a quiet heads-up on servers that pair a disabled WP-Cron with a real cron (where auto-update works fine), so it never cries wolf.
  • New: System status shows a warning with fix-it instructions when it detects that Cloudflare is challenging the plugin’s own requests — the usual cause of a feed progress bar that looks “stuck” — pointing you to the WAF “Skip” and Cache “Bypass” rules to add for /wp-json/.

Version 8.0.5

  • Fix: The feed-generation progress bar could appear “stuck” behind a CDN that caches API responses (e.g. a Cloudflare “cache everything” rule) — the CDN served a frozen copy of the status even after generation had finished, and the same stale-cache could affect license status and settings. Live admin reads now carry a per-request cache-buster so the CDN can’t serve a stale response.
  • Note: This is a plugin-side safeguard; the fully reliable fix remains a CDN cache-bypass rule for /wp-json/ on sites that force-cache everything.

Version 8.0.4

  • New: Facebook (Meta) feeds output product videos as repeated … blocks in XML and JSON/API. Map the single “Video” attribute — once per video, to a meta field or product attribute — and each mapping becomes its own element.
  • Changed: The 20 fixed “Video URL 0…19” columns are replaced by one “Video” attribute; map it multiple times for multiple videos. Feeds that used the old Video URL columns need remapping to “Video”.
  • Note: The video attribute is available for XML and JSON/API feeds only — it is skipped for CSV/TSV/TXT, which have no nested-column form.

Version 8.0.3

  • Fix: Comparison-shopping channels (BestPrice, Skroutz, Pricerunner, Trovaprezzi) no longer force their own availability values onto products — availability now passes through exactly as it did in v5, so catalogs are no longer rejected for a mismatched in-stock / out-of-stock value.
  • Improved: Large catalogs generate faster and more reliably — the adaptive batch size no longer collapses to its minimum on big feeds, so generation keeps climbing toward the server’s capacity instead of crawling.
  • New: Feeds keep generating even when WordPress background tasks (WP-Cron) are disabled or blocked — while the Manage Feeds screen is open, the plugin drives the queued batches itself, so large catalogs finish instead of stalling.
  • New: A clearer, honest progress bar with a dedicated “finalizing” stage, driven by the real server-side status.
  • New: An all-pages notice warns when the background scheduler isn’t processing queued feed jobs, with a link to the cron setup guide — shown only when there is a genuine stalled backlog, so it stays quiet on servers with a working cron.
  • Improved: A disabled WP-Cron is now reported as a neutral heads-up (with a cron-setup guide) rather than an alarming warning — a real server cron is the recommended setup on many hosts.
  • Improved: More resilient to a CDN/WAF (e.g. Cloudflare) that intermittently challenges requests — REST calls automatically retry through admin-ajax when a challenge is detected. (A persistent firewall challenge still needs an allow rule on your CDN.)
  • Fix: License activation/deactivation now explains a firewall/CDN block clearly instead of failing silently.
  • Fix: The per-feed log opens inside the admin instead of showing a 404 page.

Version 8.0.0

  • Major update: CTX Feed 8.0 is a ground-up rewrite. Please back up your site and database before updating. Your existing feeds and settings are carried over automatically — no reconfiguration needed. Found any issue after updating? Contact our support team at support@webappick.com.
  • New: Ground-up V8 feed engine — up to 10x faster generation via cache priming, streaming output, and Action Scheduler batching; no open browser tab required, and large catalogs no longer time out.
  • New: Redesigned React admin under a single “CTX Feed” menu, with a performance dashboard, feed health scoring, and an in-app help centre.
  • New: 220+ merchant channels — Google, Meta (Facebook & Instagram), Bing, Pinterest, TikTok, Snapchat, Idealo, Skroutz, Pricerunner and many more — with every channel’s attributes and templates included free.
  • New: Six output formats (XML, CSV, TSV, TXT, JSON) plus Custom Template 1 and Custom Template 2 (XML pattern).
  • New: Feed scheduling and automatic updates, FTP/SFTP delivery, and downloadable per-feed logs.
  • Improved: Full V5 attribute parity — attribute mapping, category mapping, dynamic attributes, prefix/suffix, find & replace, conditional rules and WP-option attributes are all carried over.
  • Improved: More reliable product data — reads use WooCommerce built-in functions (no raw SQL), with better variable/grouped/bundle price, image, shipping-zone and tax-rate resolution; per-product errors are skipped and logged instead of failing the whole feed, and feed files are written atomically.
  • Note: Requires PHP 7.4 or higher. Sites on older PHP stay on 6.6.23 until PHP is updated.

Version 6.6.23 (February 09, 2026)

  • Compatibility Fix: PHP 8.3 compatibility issue

Version 6.6.22 (February 02, 2026)

  • Bug Fix: Subscription period attribute issue in Google shopping feed

Version 6.6.21 (January 27, 2026)

  • Documentation Update: Enhanced plugin information for better user guidance.

Version 6.6.20 (January 26, 2026)

  • Bug Fix: Checkout link template attribute issue
  • Documentation Update: Enhanced plugin information for better user guidance.

Version 6.6.19 (January 19, 2026)

  • Security Update: Fixed missing authorization (broken access control) vulnerability (CVE-2026-22461) to protect your store data.

Version 6.6.18 (January 13, 2026)

  • Compatibility Fix: Fixed conflict with the Ninja Forms plugin for seamless WordPress form integration.

Version 6.6.17 (January 6, 2026)

  • UI Cleanup: Removed Happy Holiday promotional banner.

Version 6.6.16 (January 5, 2026)

  • Performance Improvement: Refactored compatibility code for better WooCommerce integration and faster feed generation.

Version 6.6.15 (December 30, 2025)

  • WooCommerce 10.4 Compatible: Tested and verified compatibility with WooCommerce version 10.4 for reliable product feed management.

Version 6.6.14 (December 18, 2025)

  • Documentation Update: Enhanced plugin information for better user guidance.

Version 6.6.13 (December 16, 2025)

  • Seasonal Promotion: Added Happy Holiday discount banner.

Version 6.6.12 (December 11, 2025)

  • New Feature: Added Parent Description attribute for improved product data flexibility in Google Shopping and Facebook feeds.
  • Security Patch: Fixed a security vulnerability issue to ensure safe product feed generation.

Version 6.6.11 (December 8, 2025)

  • UI Cleanup: Removed Black Friday promotional banner.

Version 6.6.10 (December 2, 2025)

  • WordPress 6.9 Compatible: Verified full compatibility with WordPress 6.9 for stable product feed creation.

Version 6.6.9 (November 28, 2025)

  • Marketing Update: Updated discount banner UTM tracking links for better analytics.

= Version …