- The feed URL returns 404 or shows an old file
- "Plugin doesn't have access to..." appears in red
- The feed is empty or missing products
- The scheduled update does not run on time
- Generation times out or runs out of memory on a large store
- Template tags show as text instead of data
- Products with a custom status are missing
- The custom meta filter only works with "="
- A custom_function attribute stopped working after an update
- Still stuck?
Most feed problems in Product XML Feeds Manager for WooCommerce come from file permissions, scheduling, or a template detail. If the feed URL returns 404 or an old file, open WPFactory > Product XML Feeds, click Save changes, then Create now. If a red access warning appears, make the target directory writable or change the XML file path and name.
The feed URL returns 404 or shows an old file #
- Open the feed section at WPFactory > Product XML Feeds (also reachable at WooCommerce > Settings > Product XML Feeds).
- Click Save changes, then Create now to generate the file immediately.
- Check the XML file path and name. The URL shown on screen is where the file is served from; make sure that is the URL you gave your marketplace.
“Plugin doesn’t have access to…” appears in red #
The plugin writes the feed file into your WordPress root by default. If that directory is not writable, the settings screen shows a red warning and no file is created. Ask your host to make the target directory writable, or set XML file path and name to a folder the web server can write to.
The feed is empty or missing products #
- Confirm the feed’s Enable/Disable toggle is on.
- Review Products Filtering Options. An include filter (products, categories or tags) restricts the feed to only those items; clear it to include everything.
- Check Total products: a non-zero value caps the number of products. Set it to 0 for all.
- For variable products, set Variable products to match what your marketplace expects (variable only, variations only, or both).
The scheduled update does not run on time #
Automatic updates use WordPress cron (WP-Cron), which only fires when your site receives traffic. On a quiet store, “Update every minute” or “Hourly” may lag. For reliable timing, use the Manual Cron Job Command shown in the feed section with a real server cron, and enable Turn off WP schedule for that feed. Note that changing the update frequency requires Pro; the free version updates weekly.
Generation times out or runs out of memory on a large store #
- Go to the General section and open Advanced Options.
- Lower Block size for products query (for example from 512 to 128) so fewer products are processed per loop.
- Raise PHP time limit (or set it to 0 for no limit) and, if your host allows it, PHP memory limit.
- Enable Ajax feed creation so the file is built in the background with a progress bar.
Template tags show as text instead of data #
Templates use shortcodes. If a shortcode appears literally in the output, check the spelling against the Shortcodes for generating XML fields reference. If your XML tags are being stripped, review the “Raw” input option: when it is enabled, write real < and > tags; when disabled, use { and }.
Products with a custom status are missing #
By default a feed includes published products only. If you use an extra product status, for example a “Discontinued” status added by another plugin, open the feed and select that status in General Options > Products status. The list shows every status registered on your site. Leave it empty to include products of all statuses. This option is free.
The custom meta filter only works with “=” #
Custom meta filter (Pro, in Extra Products Filtering Options) takes a meta key, a comparison and a value separated by commas. Write it without spaces around the commas, for example _stock,>,0. The parts are not trimmed, so a comparison typed as > with spaces is not recognized and WordPress falls back to an “equals” match, which is why only = seems to work.
- Values are compared as text, not numbers.
_stock,>,0is reliable for “has stock”, but a test such as_stock,>,9can skip products with 10 or more. - To export only products that track stock and have units left, combine Stock status set to In stock with
_stock,>,0. Stock status alone also includes in-stock products that do not track a quantity.
A custom_function attribute stopped working after an update #
For security, the custom_function attribute now runs only functions that you allow-list. Any other function name is ignored and the shortcode prints its normal value, for example the plain product ID for [alg_product_id custom_function="my_function"]. Add your function to the allow-list in your theme’s functions.php or a code snippets plugin:
add_filter( 'alg_allowed_custom_functions', function ( $functions ) {
$functions[] = 'my_function';
return $functions;
} );
The function receives the shortcode’s value as its only argument and its return value is printed. To output a calculated value, such as price minus cost, use [alg_product_id custom_function="my_function"] and calculate everything inside my_function( $product_id ). The allow-list is also listed in the developer hooks and filters reference.
Still stuck? #
Our team answers every ticket on the Product XML Feeds support forum. Include your feed settings and a link to the generated file so we can reproduce the issue quickly.
