Tested Updated Bestseller Documented

Product XML Feeds for WooCommerce

(21 customer reviews)

From: $29.99 / year

Automatic product XML feeds for WooCommerce.

$29.99 Single site1 year of updates and support30-day money-back guaranteeBuy
$34.99 Unlimited sites1 year of updates and support30-day money-back guaranteeBuy
$59.99Unlimited sitesLifetime updates and support30-day money-back guaranteeBuy
Clear

Description

Product XML Feeds for WooCommerce plugin lets you add multiple WooCommerce product XML feeds. Each feed can be configured separately. Feeds are automatically periodically regenerated using crons.

You can set custom XML templates for the feed – this way you can create XML feed according to any specifications. Feeds are created using plugin’s shortcodes. Different templates can be set for:

  • XML header.
  • XML item.
  • XML footer.

In addition you can set custom XML file path and name.

To include only certain products in feed, you can use these options:

  • Products to include/exclude.
  • Product categories to include/exclude.
  • Product tags to include/exclude.
  • Variable products: Variable products only; Variation products only; Both variable and variation products.
  • Products scope: All products; Only products that are on sale; Only products that are not on sale; Only products that are featured; Only products that are not featured.
  • Stock status: In stock products; Out of stock products; On backorder products.
  • Min and max product prices.
  • Catalog visibility: Shop and search results; Shop only; Search results only; Hidden products.
  • Custom taxonomy to include.
  • Attribute to include.

You can also choose the update (i.e. regeneration) period (weekly by default): Every minute; Hourly; Twice daily; Daily; Weekly.

Plugin is WPML compatible. I.e. you can create separate product feeds for each language.



Examples

Here is the example of “Google Merchant” compatible XML feed:

XML header

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
	<channel>
		<title>The name of your data feed</title>
		<link>http://www.example.com</link> 
		<description>A description of your content</description>

XML item

		<item>
			<title>[alg_product_title]</title>
			<link>[alg_product_url]</link>
			<description>[alg_product_short_description]</description>
			<g:image_link>[alg_product_image_url]</g:image_link>
			<g:price>[alg_product_price]</g:price>
			<g:condition>new</g:condition>
			<g:id>[alg_product_sku]</g:id>
		</item>

XML footer

	</channel>
</rss>

Another similar example with CDATA:

XML header

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
	<channel>
		<title><![CDATA[ The name of your data feed ]]></title>
		<link><![CDATA[ http://www.example.com ]]></link> 
		<description><![CDATA[ A description of your content ]]></description>

XML item

		<item>
			<g:id>[alg_product_sku]</g:id>
			<title>[alg_product_title cdata="yes"]</title>
			<description>[alg_product_short_description cdata="yes"]</description>
			<g:google_product_category>[alg_product_categories cdata="yes"]</g:google_product_category>
			<link>[alg_product_url]</link>
			<g:image_link>[alg_product_image_url]</g:image_link>
			<g:price>[alg_product_price]</g:price>
			<g:condition>new</g:condition>
		</item>

XML footer

	</channel>
</rss>
Although plugin is designed to create XML feeds, you can also output it in different formats, e.g. CSV, by setting XML item option to something like this (don’t forget to add a new line symbol at the end):

[alg_product_sku];[alg_product_title];[alg_product_url];[alg_product_price];

With “Product XML Feeds for WooCommerce” plugin you can create XML feeds for any specifications. For example, below you can see settings for a Facebook XML feed. Specifications can be found here and feed debug (validation) tool is here.

XML header

<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
	<channel>
		<title>The name of your data feed</title>
		<link>http://www.example.com</link> 
		<description>A description of your content</description>

XML item

		<item>
			<g:id>[alg_product_id]</g:id>
			<g:title>[alg_product_name cdata="yes"]</g:title>
			<g:description>[alg_product_short_description cdata="yes"]</g:description>
			<g:link>[alg_product_url]</g:link>
			<g:image_link>[alg_product_image_url]</g:image_link>
			<g:brand>Example</g:brand>
			<g:condition>new</g:condition>
			<g:availability>in stock</g:availability>
			<g:price>[alg_product_price] GBP</g:price>
		</item>

XML footer

	</channel>
</rss>

Shortcodes

Global Shortcode Attributes

In addition to shortcode specific attributes, which are listed in section below, there are common (i.e. global) shortcode attributes, which can be used with any of the shortcodes:

  • before – Will be added at the beginning of final result in case if the resulting value is not empty. Default value: None.
  • after – Will be added at the end of final result in case if the resulting value is not empty. Default value: None.
  • find – Should be used with “replace” attribute to make replacements in final result. Default value: None.
  • replace – Should be used with “find” attribute to make replacements in final result. Default value: None.
  • find_replace_sep – Should be used with “find” and “replace” attributes in case if you want to find and replace multiple values at once. Default value: None.
  • on_empty – Will be outputted instead of empty string, in case if final shortcode’s result is empty. Default value: None.
  • on_empty_apply_shortcodes – Set to yes if you want to process shortcodes in on_empty attribute. If set to yes, you need to replace [ and ] with { and }. Default value: no. E.g.:
    [alg_product_meta name="_some_meta_key" on_empty="{alg_product_name}" on_empty_apply_shortcodes="yes"]
  • strip_tags – Strips HTML and PHP tags from a shortcode output. Uses PHP strip_tags() function. Default value: yes.
  • strip_shortcodes – Deletes all shortcode tags from a shortcode output. When set to yes uses WordPress strip_shortcodes() function. When set to yes-force will delete all that “looks” like shortcodes, i.e. is wrapped in square brackets. Differently from yes this option will delete inactive shortcodes as well. Also it will leave the content inside shortcodes. Default value: no.
  • cdata – Wraps shortcode output in CDATA. Default value: no.
  • custom_function – If set will apply any custom function on a shortcode output. For example, you can make an output uppercase by setting custom_function="strtoupper". Default value: None.
  • product_id – Can be used in products shortcodes. Default value: current product’s ID.
  • use_parent_id – Can be used in products shortcodes. If set to yes will use parent’s ID instead of child’s ID for variations. Default value: no.
  • convert_currency_from – Currency to convert from. Can be used in numeric results only. Default value: None.
  • convert_currency_to – Currency to convert to. Default value: None.
  • convert_currency_precision – Defines the number of decimals when rounding the final result. Default value: 2.
  • When converting currency, the exchange rates are automatically retrieved from European Central Bank (ECB). Currency conversion example:

    <price_usd>[alg_product_price convert_currency_from="EUR" convert_currency_to="USD" convert_currency_precision="2"]</price_usd>

Shortcodes List

Dimensions
Taxonomies
Taxes
Shipping
Stock
Price & Currency
Title & Descriptions
Images
Custom Fields
Attributes
Formatting
Variations
General

Shortcode Descriptions

[alg_current_datetime]

Displays current date & time.

Attributes

datetime_format – Date & time format. Default value: your site date & time format.

Example
<time>[alg_current_datetime datetime_format="Y-m-d H:i:s"]</time>

[alg_shop_currency]

Displays shop’s currency code.

Example
<currency>[alg_shop_currency]</currency>

[alg_product_id]

Displays product’s ID.

Example
<product_id>[alg_product_id]</product_id>

[alg_product_type]

Displays product’s type, e.g.: simple, variable, external etc.

Example
<product_type>[alg_product_type]</product_type>

[alg_product_image_url]

Displays product’s image URL.

Attributes

image_size – Registered image size to retrieve. Default value: shop_thumbnail.

Example
<product_image_url>[alg_product_image_url image_size="full"]</product_image_url>

Displays product’s gallery image URL. In case if there is no image available, empty string will be outputted.

Attributes

image_nr – Number of gallery image to retrieve URL for. Default value: 1.

Example
<gallery_image_1>[alg_product_gallery_image_url image_nr="1"]</gallery_image_1>
<gallery_image_2>[alg_product_gallery_image_url image_nr="2"]</gallery_image_2>
<gallery_image_3>[alg_product_gallery_image_url image_nr="3"]</gallery_image_3>

[alg_product_url]

Displays product’s URL (i.e. permalink).

Example
<product_url>[alg_product_url]</product_url>

[alg_product_price]

Displays product’s price.

Attributes

multiply_by – Multiply price by this value before displaying. Default value: None.
hide_currency – Display price as number only, or format it with currency code. Default value: yes.
variable_price_type – Display variable product’s price as lowest variation price only (simple), or as all variations price range (range). Default value: range.

Example
<product_price>[alg_product_price multiply_by="1.25" hide_currency="no"]</product_price>

[alg_product_sku]

Displays product’s SKU.

Example
<product_sku>[alg_product_sku]</product_sku>

[alg_product_title]

Displays product’s title.

Example
<product_title>[alg_product_title]</product_title>

[alg_product_weight]

Displays product’s weight.

Example
<product_weight>[alg_product_weight]</product_weight>

[alg_product_excerpt]

Displays product’s excerpt.

Attributes

length – If not zero, will limit the excerpt length. Default value: 0.

Example
<product_excerpt>[alg_product_excerpt length="10"]</product_excerpt>

[alg_product_short_description]

Displays product’s short description.

Attributes

length – If not zero, will limit the short description length. Default value: 0.
apply_filters – Sets if woocommerce_short_description should be applied. Default value: no.

Example
<short_description>[alg_product_short_description length="10"]</short_description>

[alg_product_description]

Displays product’s (full) description.

Example
<description>[alg_product_description]</description>

[alg_product_custom_field]

Displays product’s custom field.

Attributes

name – Custom field’s name. Default value: None.

Example
<total_sales>[alg_product_custom_field name="total_sales"]</total_sales>

[alg_product_meta]

Displays product’s meta.

Attributes

name – Meta name (i.e. key). Default value: None.

Example
<total_sales>[alg_product_meta name="total_sales"]</total_sales>

[alg_product_you_save]

Displays product’s savings amount (i.e. regular price minus sale price amount).

Attributes

hide_if_zero – If set to yes will output empty string instead of numerical zero for products that are not on sale. Default value: no.
hide_currency – Display price as number only, or format it with currency code. Default value: yes.

Example
<you_save>[alg_product_you_save]</you_save>

[alg_product_you_save_percent]

Displays product’s savings amount in percent (i.e. regular price minus sale price amount in percent).

Attributes

hide_if_zero – If set to yes will output empty string instead of numerical zero for products that are not on sale. Default value: no.
reverse – If set to yes will reverse final result (i.e. 100 – percent). Default value: no.

Example
<you_save_percent>[alg_product_you_save_percent]</you_save_percent>

[alg_product_tags]

Displays product’s tags.

Attributes

add_links – Will add links to the tags page. Default value: yes.
sep – Separator. Default value: , .

Example
<tags>[alg_product_tags add_links="no"]</tags>

[alg_product_total_sales]

Displays product’s total sales number.

Attributes

hide_if_zero – If set to yes will output empty string instead of numerical zero. Default value: no.
offset – Will be added to final result. Default value: 0.

Example
<total_sales>[alg_product_total_sales]</total_sales>

[alg_product_shipping_class]

Displays product’s shipping class. “Standard” class is outputted as an empty string – if you want to change that, you can use on_empty attribute (which is available in all plugin’s shortcodes).

Example
<shipping_class>[alg_product_shipping_class on_empty="Standard"]</shipping_class>

[alg_product_dimensions]

Displays product’s dimensions.

Example
<dimensions>[alg_product_dimensions]</dimensions>

[alg_product_length]

Displays product’s length.

Attributes

to_unit – Will convert final result to this units. Default value: None.
round – Will round the final result. Default value: no.
precision – If round is set to yes, you can define rounding precision (i.e. number of decimals) here. Default value: 2.

Example
<length>[alg_product_length]</length>

[alg_product_width]

Displays product’s width.

Attributes

to_unit – Will convert final result to this units. Default value: None.
round – Will round the final result. Default value: no.
precision – If round is set to yes, you can define rounding precision (i.e. number of decimals) here. Default value: 2.

Example
<width>[alg_product_width]</width>

[alg_product_height]

Displays product’s height.

Attributes

to_unit – Will convert final result to this units. Default value: None.
round – Will round the final result. Default value: no.
precision – If round is set to yes, you can define rounding precision (i.e. number of decimals) here. Default value: 2.

Example
<height>[alg_product_height]</height>

[alg_product_formatted_name]

Displays product’s formatted name.

Example
<formatted_name>[alg_product_formatted_name]</formatted_name>

[alg_product_name]

Displays product’s name.

Example
<name>[alg_product_name]</name>

[alg_product_stock_availability]

Displays product’s stock availability.

Example
<stock_availability>[alg_product_stock_availability]</stock_availability>

[alg_product_tax_class]

Displays product’s tax class.

Example
<tax_class>[alg_product_tax_class]</tax_class>

[alg_product_average_rating]

Displays product’s average rating.

Example
<average_rating>[alg_product_average_rating]</average_rating>

[alg_product_categories]

Displays product’s categories.

Example
<categories>[alg_product_categories]</categories>

[alg_product_categories_names]

Displays product’s category names.

Attributes

sep – Separator. Default value: , .

Example
<categories_names>[alg_product_categories_names]</categories_names>

[alg_product_categories_urls]

Displays product’s category URLs.

Attributes

sep – Separator. Default value: , .

Example
<categories_urls>[alg_product_categories_urls]</categories_urls>

[alg_product_list_attributes]

Displays product’s attributes.

Example
<product_attributes>[alg_product_list_attributes]</product_attributes>

[alg_product_list_attribute]

Displays product’s (single) attribute.

Attributes

name – Required name of the attribute to display. Default value: None.

Examples
<product_attribute_size>[alg_product_list_attribute name="size"]</product_attribute_size>
<product_attribute_color>[alg_product_list_attribute name="pa_color"]</product_attribute_color>

[alg_product_stock_quantity]

Displays product’s stock quantity.

Example
<stock_quantity>[alg_product_stock_quantity]</stock_quantity>

[alg_product_sale_price]

Displays product’s sale price.

Attributes

hide_currency – Display price as number only, or format it with currency code. Default value: yes.

Example
<sale_price>[alg_product_sale_price]</sale_price>

[alg_product_regular_price]

Displays product’s regular price.

Attributes

hide_currency – Display price as number only, or format it with currency code. Default value: yes.
show_always – If set to no will display regular price only for products that are on sale. Default value: yes.

Example
<regular_price>[alg_product_regular_price]</regular_price>

[alg_product_time_since_last_sale]

Displays product’s time since last sale.

Attributes

order_status – Sets which order statuses to count as sale. Default value: wc-completed.
days_to_cover – Sets maximum number of days to check. Default value: 90.
hide_if_no_sales – If set to yes will display empty string, if there were no sales found. Otherwise will output “No sales yet.” string. Default value: no.

Example
<time_since_last_sale>[alg_product_time_since_last_sale]</time_since_last_sale>

[alg_product_price_including_tax]

Displays product’s price including tax.

Attributes

multiply_by – Optional multiplication coefficient. Default value: None.
hide_currency – Display price as number only, or format it with currency code. Default value: yes.
variable_price_type – Display variable product’s price as lowest variation price only (simple), or as all variations price range (range). Default value: range.

Example
<price_including_tax>[alg_product_price_including_tax]</price_including_tax>

[alg_product_price_excluding_tax]

Displays product’s price excluding tax.

Attributes

multiply_by – Optional multiplication coefficient. Default value: None.
hide_currency – Display price as number only, or format it with currency code. Default value: yes.
variable_price_type – Display variable product’s price as lowest variation price only (simple), or as all variations price range (range). Default value: range.

Example
<price_excluding_tax>[alg_product_price_excluding_tax]</price_excluding_tax>

[alg_product_available_variations]

Displays product’s available variations.

Attributes

sep – Separator for variation attributes. Default value: , .
sep2 – Separator for variation attributes and price. Default value: : .
sep3 – Separator for variations. Default value: | .

Example
<available_variations>[alg_product_available_variations]</available_variations>
Example Output
<available_variations>red, Any: €20.00 | green, Any: €20.00 | blue, Any: €15.00</available_variations>

[alg_product_terms]

Displays product’s taxonomy terms.

Attributes

taxonomy – Required name of the taxonomy to display. Default value: None.
sep – Separator. Default value: , .
parent – Optional parent ID. For example, to output top level terms only, set it to 0. Default value: None.
orderby – Sorts terms. Possible values: name, parent_id, term_id, hierarchy. Default value: name.

Examples
<brands>[alg_product_terms taxonomy="brand"]</brands>
<brands>[alg_product_terms taxonomy="pwb-brand"]</brands>

[alg_product_function]

Displays any product function’s result. For a list of available functions please check WC_Product class documentation.

Attributes

function – Required name of the function to call. Default value: None.

Examples
<description>[alg_product_function function="get_description"]</description>
<visible>[alg_product_function function="is_visible"]</visible>
<purchasable>[alg_product_function function="is_purchasable"]</purchasable>
<catalog_visibility>[alg_product_function function="get_catalog_visibility"]</catalog_visibility>

[alg_format_date]

Formats value as a date.

Attributes

format – Date format. Default value: your site’s date & time format.
is_timestamp – Is input value a timestamp (yes), or date/time string no. Default value: no.
do_localize – Do we need to localize outputted date. When set to yes, then date_i18n() function is used instead of date() function (no). Default value: no.

Example
<my_date>[alg_format_date format="m-d-Y"][alg_product_meta name="your_custom_field_name"][/alg_format_date]</my_date>

[alg_format_number]

Formats value as a number.

Attributes

decimals – Sets the number of decimal points. Default value: 0.
dec_point – Sets the separator for the decimal point. Default value: ..
thousands_sep – Sets the thousands separator. Default value: ,.

Example
<my_number>[alg_format_number decimals="2"][alg_product_meta name="your_custom_field_name"][/alg_format_number]</my_number>

[alg_to_timestamp]

Converts date/time string to timestamp.

Example
<my_timestamp>[alg_to_timestamp][alg_product_meta name="your_custom_field_name"][/alg_to_timestamp]</my_timestamp>

Options

Plugin options are located in “WooCommerce > Settings > Product XML Feeds”.

General Options

Product XML Feeds for WooCommerce - General Options

Total XML files (feeds)
Sets the number of different feeds you wish to create.
Default: 1
Block size for products query
Sets the number of products feed file creation script should process in single loop.
Default: 512
PHP memory limit
Sets PHP memory limit (in megabytes). Ignored if set to zero. In addition to this you may need to increase WP memory limit by setting WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT in your wp-config.php file.
Default: 0
PHP time limit
Sets the number of seconds feed file creation script is allowed to run. Set to zero for no time limit. Ignored if set to -1 (and server’s default time limit is used). Check set_time_limit() function documentation for more info. There is a number of other solutions for increasing PHP time limit.
Default: -1
'Raw' input
Affects “Template Options”. If disabled, use { and } instead of < and > accordingly.
Default: yes

XML Feed #X Options

Product XML Feeds for WooCommerce - Feed Main Options

Enabled
Enables/disables the current feed.
Default: yes
Admin title
Sets admin title for the current feed.
Default: XML Feed #X

Template Options

Product XML Feeds for WooCommerce - Template Options

XML header
Sets XML header template.
Default:
<?xml version = "1.0" encoding = "utf-8" ?>
<root>
<time>[alg_current_datetime]</time>
<title><![CDATA[ Products Feed ]]></title>
XML item
Sets each XML item template.
Default:
<item>
	<name>[alg_product_name cdata="yes"]</name>
	<short_description>[alg_product_short_description cdata="yes"]</short_description>
	<link>[alg_product_url]</link>
	<price>[alg_product_price]</price>
	<currency>[alg_shop_currency]</currency>
	<image_url>[alg_product_image_url]</image_url>
	[alg_product_gallery_image_url image_nr="1" before="<image_url_1>" after="</image_url_1>"]
	<sku>[alg_product_sku]</sku>
	<stock_quantity>[alg_product_stock_quantity]</stock_quantity>
	<categories>[alg_product_categories]</categories>
	<tags>[alg_product_tags]</tags>
	<total_sales>[alg_product_meta name="total_sales"]</total_sales>
</item>
XML footer
Sets XML footer template.
Default:
</root>

General Options

Product XML Feeds for WooCommerce - Feed General Options

XML file path and name
Please note that destination folder must be writable.
Default: products.xml or products_X.xml
Update period
Possible values: Update every minute; Update hourly; Update twice daily; Update daily; Update weekly.
Default: Update weekly
WPML language
Option is shown only if you have multiple (WPML) languages installed on your site.
Default: None
Sorting: Order by
Possible values: Product ID; Title; Slug; Date; Last modified date; Number of comments; Author; Random; None.
Default: Date
Sorting: Order
Possible values: Ascending; Descending.
Default: Descending

Products Filtering Options

Product XML Feeds for WooCommerce - Products Filtering Options

Products to include
To include selected products only, enter products here. Leave blank to include all products.
Default: None
Products to exclude
To exclude selected products, enter products here. Leave blank to include all products.
Default: None
Categories to include
To include products from selected categories only, enter categories here. Leave blank to include all products.
Default: None
Categories to exclude
To exclude products from selected categories, enter categories here. Leave blank to include all products.
Default: None
Tags to include
To include products from selected tags only, enter tags here. Leave blank to include all products.
Default: None
Tags to exclude
To exclude products from selected tags, enter tags here. Leave blank to include all products.
Default: None
Variable products
Possible values: Variable product only; Variation products only; Both variable and variations products.
Default: Variable product only
Products scope
Possible values: All products; Only products that are on sale; Only products that are not on sale; Only products that are featured; Only products that are not featured.
Default: All products
Offset products
Number of products to pass over.
Default: 0
Total products
Set to zero to include all products.
Default: 0
Stock status
Possible values (multiselect): In stock, Out of stock, On backorder. Leave blank to include all products.
Default: None
Min price
Ignored if empty.
Default: None
Max price
Ignored if empty.
Default: None
Catalog visibility
If empty, then all products will be included in the feed. Possible values: Shop and search results (i.e. visible); Shop only; Search results only; Hidden.
Default: None
Custom taxonomy to include
To include products from selected taxonomy only, enter taxonomy slug here. Leave blank to include all products. E.g.: pwb-brand
Default: None
Custom taxonomy to include: slugs
Set as comma separated list of slugs. E.g.: sony,lg,samsung
Default: None
Attribute to include
To include products from selected attribute only, enter attribute slug here. Leave blank to include all products. E.g.: color
Default: None
Attribute to include: values
Attribute values (comma separated). E.g.: Red,Green
Default: None

21 reviews for Product XML Feeds for WooCommerce

  1. Apostolos

    The plugin works great and the support is awesome. I definitely recommend it. My thanks especially to Omar for being so helpful!

  2. Leonard

    Great plugin – easy to configure how you want your feed. Had a question regarding the size attribute – dev quickly got back with a solution. We are able to submit the feed to Google Shopping.

  3. Charles (verified owner)

    Really responsive, polite and great service. Very much appreciated.

  4. Madis Kess

    Works like a charm!
    I would like to see the option to sort by the attribute “brand” though.
    I.E include only items of following brands.

    Also is it possible to add “wholesale price” to items XML?
    I.E under 279 is 237.15 ?
    In certains feeds to discount % for wholesale is fixxed so just need to add the % somewhere.

    • WPWhale

      Hi Madis,
      Thanks for the great feedback & 5 stars, both requests can be done, please reach us at [email protected] and we can help setting this up for you.
      Omar

  5. VITAMAG (verified owner)

    We are using this product xml plugin for more than 6 months already for our website https://vitamag.bg/ . The plugin helped us to expand our wholesale business as we facilitated our distributors with the products feed. In short – this is an effective plugin to grow along with your online partners.

  6. Gavin Gillham

    Omar is an absolute legend and always goes above and beyond to provide 5 star support!

  7. Tine Smuk (verified owner)

    Very helpful support! I recomand this plugin, simple to use and very good documented.

  8. Andrei

    The plugin is great!
    Not only that, but support is superb, way above our average plugin support! Omar is very helpful and prompt!
    Could not recommend more!

  9. vk

    Great plugin. Works perfectly with no issues.

  10. kantze

    A wonderful plugin. After many years using it I have saved a lot of time and money! It is very easy to customize and use. Has many options and can create as many xml files you want. I ‘m using it in a 3-languages website without any problem. Definitely one of the most value-for-money plugins I have bought!

  11. David

    Hi there, I just installed the plugin to my multisite wp installation but when I try to access the xml feed at https://www.tokentrezor.com/products.xml it shows “The page doesn’t exist”. Have any clue?

    • WPWhale

      Hi David,

      Sorry to hear the trouble, please note that this is the reviews section.

      Contact me at [email protected] with details on what you’ve done after installing the plugin (you should build & generate the XML file first).

      Omar

  12. endre (verified owner)

    Great plugin!
    However I would like an option to disable the bottom comment saying:

    <!--  Product XML Feeds for WooCommerce  -->
    <!-- Served from: https://wpfactory.com/item/product-xml-feeds-woocommerce/ @ 2020-09-14 11:27:53 -->

    I have purchased the lifetime unlimited license so I think I did my best for supporting you.
    I know this is just a comment and does not matter for parsers, but it is misleading as the feed is not server from wpfactory.com server.
    Besides this it is a really useful tool with good options to create just about any kind of feeds.
    Thank you!
    🙂

    • WPWhale

      Hi Endre,

      Thanks for the feedback, we listened 🙂

      You have now an option to remove that part from the XML, please upgrade to 1.9.4 to have that option.

      Sorry for any convenience made, very thankful for the feedback.

      Omar

  13. Dimitrios Fekas (verified owner)

    The best plugin for creating xml feeds… Basically you can build whatever you want for any platform…It’s for simple and also experienced users with a very good documentation…Just read it and you can build everything. The support is awsome and very quick.

  14. Florin (verified owner)

    Purchased this plugin a while ago and I want to share with the rest of the community that it makes its purpose. It is very easy to generate different feeds for different platforms using all sorts of shortcode combinations. The only thing I would like to see is the option of saving the feed in another format like .txt, beside this everything is good.

    • WPWhale

      Thanks Florin for the great feedback, and actually your request is on our roadmap for the plugin, expect it to be available soon.

      Omar

  15. Pluisher

    Great plugin!
    Great support!
    The guys added some complicated shortcodes for me.
    Thank you for your patience and special thanks to Omar!

  16. poysit

    Bu eklenti çok pahalı dostum. Türkiye’de dolar 7 TL oldu mk . Kupon ver bana satın alayım :+

  17. George Kantze (verified owner)

    Great plugin. It does the job and it is very easy to customize it. Also too cheap! (I ‘m developing websites/eshops and the full version with lifetime support/updates is very cheap).

    It supports wpml, it exports as many xml files as you want. It supports many currencies. It works with shortcodes that are so easy to understand and to put them in place.
    I have bought it yesterday and today I am ready to give the final xml to my client!

  18. napat (verified owner)

    not have support

  19. Dimitris Georgiadis (verified owner)

    Great plugin! Excellent support.

  20. alexandroskast (verified owner)

    Simple, fast , custom batch size for slow servers, super customization options!

  21. Alex

    Great plugin! Documentation could be better… but still I would give it 6 stars!!!!! Thank you!

    • Tom Anbinder

      Hi,

      Thanks. We’ve recently expanded the documentation – hope it’s better now.

Add a review

Your email address will not be published. Required fields are marked *

Changelog

2.2.6 – 11/10/2021

  • Fixed a bug related to duplicating variations with pre-set filters
  • Verified compatibility with WooCommerce 5.7

2.2.5 – 20/09/2021

  • More WPML compatibilty with attribute exchange_rate for manual currency conversion when needed
  • Added 2 attributes to [alg_product_stock_availability] to show specific values (Y,N) based on stock status

2.2.4 – 14/09/2021

  • Verified compatibility with WooCommerce 5.6
  • Added parameters to work with Advanced Custom Fields plugin
  • Fixed a notice message (Undefined index: sum_with)

2.2.3 – 16/08/2021

  • Added parameter “strip tags” to [alg_product_description] shortcode
  • Added a new shortcode [alg_product_publish_date] to include product publish date (date & time follow PHP date standards)

2.2.2 – 06/08/2021

  • Allowed turning off schedule (useful when using cron jobs handling introduced in 2.2.1)
  • Minor typo fix on showing stock

2.2.1 – 24/07/2021

  • Added an option for manual cron job handling
  • Fixed a bug that was duplicating products in feed
  • Verified compatibility with WooCommerce 5.5 & WP 5.8

2.2 – 09/07/2021

  • Added new shortcode to list variations based on stock status
  • Added an attribute to show stock status without quantity
  • Verified compatibility with WooCommerce 5.4

2.1.3 – 20/04/2021

  • Tested compatibilty with WC 5.2 & WP 5.7

2.1.2 – 28/02/2021

  • Tested compatibilty with WC 5.0

2.1.1 – 07/02/2021

  • Added options to multiply/add flat prices to regular price shortcode

2.1 – 27/01/2021

  • Added shortcodes for compatibiltity with multi language stores
  • Enhanced on shortcodes for proper results
  • Tested compatibility with WC 4.9

2.0 – 11/12/2020

  • Fixed a warning message for query_post_type
  • Tested compatibility with WC 4.8 & WP 5.6

1.9.6 – 15/11/2020

  • Bug fix for fatal error that appears in some stores
  • Tested compatibility with WC 4.7

1.9.5 – 22/09/2020

  • Created a new option to export a .txt version for the output file
  • Variations product will now read the parent long and short description by default

1.9.4 – 18/09/2020

  • Added an option to remove plugin branding (XML footer) in Pro version

1.9.3 – 13/09/2020

  • Added optional attributes to read from arrays
  • [alg_product_sale_price] & [alg_product_regular_price] now show price ranges for variations of variable product
  • Added a link to plugin homepage in XML footer
  • Tested compatibility with WC 4.5

1.9.2 – 26/08/2020

  • Bug fix: Plugin was showing instead of in shortcodes.
  • Verified compatibility with WC 4.4 & WP 5.5

1.9.1 – 28/04/2020

  • Fixed a bug that showed all attributes slugs in cases where it should show empty (no attributes value)

1.9 – 24/04/2020

  • Feature: new shortcode added: [alg_product_categories_ids] to retrieve product category ids

1.8.2 – 15/04/2020

  • Feature: Two new shortcodes added to show attribute slug & att. values slugs
  • Tested compatibility with WC 4 & WP 5.4

1.8.1 – 01/03/2020

  • Dev: Fixed a bug that showed variations twice in specific scenarios

1.8 – 08/02/2020

  • Dev: Fixed filtering options bug for variation & variable products
  • Overall code enhancement

1.7.6 – 29/01/2020

  • Dev: Changed site_url to home_url in XML file path

1.7.4 – 02/01/2020

  • Text updates over the plugin pages.
  • Copyrights Update
  • Added a section to review the plugin

1.7.3 – 20/11/2019

  • Plugin author changed.

1.7.3 – 20/11/2019

  • Plugin author changed.

1.7.2 – 17/11/2019

  • Dev – General – Advanced Options – ‘”Raw” input’ option added.
  • Tested up to: 5.3.

1.7.1 – 10/11/2019

  • Fix – “Total XML files (feeds)” option fixed.

1.7.0 – 10/11/2019

  • Dev – Feeds – Products Filtering Options – “Offset products” and “Total products” options added.
  • Dev – Feeds – General Options – “Sorting” options added.
  • Dev – Feeds – Admin settings descriptions updated.
  • Dev – Code refactoring.
  • WC tested up to: 3.8.

1.6.0 – 01/11/2019

  • Dev – Advanced Options – PHP time limit – Now applied to each block size in query loop. Default and min values are set to -1 now.
  • Dev – Code refactoring.
  • WC tested up to: 3.7.

1.5.4 – 22/07/2019

  • Dev – Shortcodes – [alg_product_terms]orderbyhierarchy value added.
  • Dev – Shortcodes – [alg_product_terms]orderbyterm_id value added.
  • Dev – Shortcodes – [alg_product_terms] – Code refactoring.

1.5.3 – 20/07/2019

  • Dev – Shortcodes – [alg_product_terms]orderby attribute (and parent_id value) added.
  • Dev – Feeds – Admin settings restyled (“Extra Products Filtering Options” section added).

1.5.2 – 19/07/2019

  • Dev – Shortcodes – strip_shortcodesyes-force – Pattern updated in preg_replace().

1.5.1 – 18/07/2019

  • Dev – Feeds – Template Options – Default values for “XML header” and “XML item” updated.
  • Dev – Feeds – Products Filtering Options – “Attribute to include” options added.
  • Dev – Shortcodes – cdata attribute added to all shortcodes (defaults to no).
  • Dev – Shortcodes – strip_shortcodes attribute added to all shortcodes (defaults to no) (other possible values: yes and yes-force).
  • Dev – Shortcodes – [alg_product_variation_meta] shortcode added.
  • Dev – Shortcodes – [alg_product_variation_data] shortcode added.

1.5.0 – 17/06/2019

  • Dev – Shortcodes – on_empty_apply_shortcodes attribute added to all shortcodes (defaults to no).
  • Dev – Shortcodes – variable_price_type attribute (defaults to range) added to alg_product_price, alg_product_price_excluding_tax and alg_product_price_including_tax shortcodes.

1.4.9 – 07/06/2019

  • Fix – Feeds – Products Filtering Options – Stock status – Fixed for variations which have “Manage stock?” option enabled.
  • Dev – Shortcodes – [alg_product_terms] – Optional parent attribute added.
  • Dev – Shortcodes – [alg_product_terms] – Code refactoring.

1.4.8 – 20/05/2019

  • Fix – Shortcodes – [alg_product_stock_quantity] – Returning empty string instead of boolean false (fixes the issue with on_empty attribute).

1.4.7 – 15/05/2019

  • Fix – Feeds – Template Options – Default templates are now correctly retrieved even if “Save changes” button was never clicked.
  • Dev – Feeds – Template Options – XML item – Default template changed (CDATA added; less shortcodes included).
  • Dev – Feeds – Advanced Options – “Query post type” option removed (now always set to “Products only”). This fixes the issue with “Products and variations” option and some “Products Filtering” section options.
  • Dev – Shortcodes – custom_function global attribute added.
  • Dev – Shortcodes – strip_tags global attribute added (defaults to yes).

1.4.6 – 09/05/2019

  • Fix – Advanced Options – Set correct min values in settings.
  • Dev – Feeds – Products Filtering Options – “Custom taxonomy to include” options added.
  • Dev – Advanced Options – “PHP memory limit” option added.
  • Dev – Tested up to: 5.2.

1.4.5 – 26/04/2019

  • Dev – Shortcodes – General – [alg_format_date] shortcode added.
  • Dev – Shortcodes – General – [alg_format_number] shortcode added.
  • Dev – Shortcodes – General – [alg_to_timestamp] shortcode added.
  • Dev – Settings – IDs added to product lists (in “Products Filtering Options > Products to include / exclude”).
  • Dev – “WC tested up to” updated.

1.4.4 – 05/04/2019

  • Dev – Advanced – “Query post type” option added.

1.4.3 – 27/03/2019

  • Dev – Shortcodes – convert_currency_from, convert_currency_to and convert_currency_precision global shortcode attributes added.
  • Dev – Shortcodes – find_replace_sep global shortcode attribute added. Now find and replace global shortcode attributes can find and replace multiple values.
  • Dev – Shortcodes – [alg_product_available_variations]sep, sep2 and sep3 attributes added.
  • Dev – Feeds – Products Filtering Options – “Catalog visibility” option added.
  • Dev – Feeds – General Options – “WPML language” option added.

1.4.2 – 28/01/2019

  • Dev – Variable products – “Variation products only” code rewritten (get_the_ID() added etc.).
  • Dev – Feeds – Product “Min price” and “Max price” options added.
  • Dev – Code refactoring.
  • Dev – Admin settings restyled (subsections added).

1.4.1 – 24/01/2019

  • Fix – Variable products – “Variation products only” option fixed.
  • Dev – Shortcodes – [alg_product_name] shortcode added.

1.4.0 – 26/11/2018

  • Dev – Shortcodes – [alg_product_description] shortcode added.
  • Dev – Shortcodes – [alg_product_gallery_image_url] shortcode added.
  • Dev – Shortcodes – [alg_product_function] shortcode added.
  • Dev – Feeds – Product “Stock status” options added.
  • Dev – Feeds – “Admin title” option added (to set custom feed title (instead of “XML Feed #X”)).
  • Dev – General – “PHP time limit” option added.
  • Dev – General – Block size for products query default value changed to 512.
  • Dev – Admin settings descriptions updated.
  • Dev – Minor code refactoring.

1.3.1 – 18/10/2018

  • Fix – Shortcodes – [alg_product_time_since_last_sale]days_to_cover attribute fixed.
  • Dev – Shortcodes – [alg_product_time_since_last_sale] – Code refactoring.

1.3.0 – 10/10/2018

  • Fix – “Total XML files (feeds)” option fixed (new feeds settings are displayed at once now).
  • Dev – use_parent_id attribute added to all “products” shortcodes.
  • Dev – “Reset section settings” options added.
  • Dev – Code refactoring.
  • Dev – Admin settings restyled and descriptions updated.
  • Dev – Plugin URI updated.

1.2.2 – 23/03/2018

  • Dev – [alg_product_terms] shortcode added.
  • Dev – General – Advanced – “Block Size for Products Query” option added.
  • Dev – includes/shortcodes folder added.
  • Dev – “WC tested up to” added to plugin header.

1.2.1 – 31/07/2017

  • Dev – on_empty attribute added to all shortcodes.

1.2.0 – 27/07/2017

  • Dev – WooCommerce v3 compatibility – Getting product ID and short description with functions (instead of accessing properties directly).
  • Dev – WooCommerce v3 compatibility – get_price_including_tax() and get_price_excluding_tax() replaced with wc_get_price_including_tax() and wc_get_price_excluding_tax().
  • Dev – WooCommerce v3 compatibility – get_tags() and get_categories() replaced with wc_get_product_tag_list() and wc_get_product_category_list().
  • Dev – WooCommerce v3 compatibility – list_attributes() replaced with wc_display_product_attributes().
  • Dev – WooCommerce v3 compatibility – $_product->get_dimensions( true ) replaced with wc_format_dimensions( $_product->get_dimensions( false ) ).
  • Fix – [alg_product_available_variations] – “Glued” attributes bug fixed etc.
  • Dev – [alg_product_id] shortcode added.
  • Dev – [alg_product_time_since_last_sale] – Code refactoring.
  • Dev – Link updated from http://coder.fm to https://wpcodefactory.com.
  • Dev – Plugin header (“Text Domain” etc.) updated.
  • Dev – Code cleanup and minor fixes.
  • Dev – POT file added.

1.1.1 – 15/01/2017

  • Fix – “If plugin is enabled” check fixed.

1.1.0 – 12/01/2017

  • Fix – “Variable Products” option description and attributes fixed.
  • Dev – Settings for each feed moved to separate section.
  • Dev – [alg_current_datetime] shortcode added.
  • Dev – Link to all available shortcodes added.

1.0.0 – 10/01/2017

  • Initial Release.

Frequently Asked Questions

Q. How to include custom fields in the feed?

A. What you need is [alg_product_meta] shortcode, e.g.:

<my_custom_field>[alg_product_meta name="my_custom_field"]</my_custom_field>

Q. How do I find and replace multiple values in shortcode's output?

A. You need to use find_replace_sep global attribute in a shortcode. E.g.: in the example below find1 will be replaced with replace1 and find2 will be replaced with replace2:

<product_short_description>[alg_product_short_description find_replace_sep="," find="find1,find2" replace="replace1,replace2"]</product_short_description>

Q. By default all HTML tags are removed from the product's description in XML feed. How can I change that?

A. You need to set strip_tags attribute to no and cdata attribute to yes:

<description>[alg_product_description strip_tags="no" cdata="yes"]</description>

Free vs Pro

This plugin is a premium version of free "Product XML Feeds for WooCommerce" plugin.

Free VersionPro Version
Template optionsyesyes
Advanced optionsyesyes
Admin title, file path and nameyesyes
WPML compatibilityyesyes
Filtering by productsyesyes
Filtering by categoriesyesyes
Filtering by tagsyesyes
Filtering by variable productsyesyes
Filtering by products scopeyesyes
Filtering by stock statusnoyes
Filtering by min/max pricenoyes
Filtering by catalog visibilitynoyes
Filtering by custom taxonomynoyes
Filtering by attributenoyes
Maximum number of feeds1Unlimited
Update periodWeekly onlyEvery minute
Hourly
Twice daily
Daily
Weekly

Developers

If you need some specific product property to be outputted in XML feed and it's not covered by one of plugin's shortcodes, you can add your own custom shortcodes to be used in plugin's XML templates. For example, if you need to output product's shipping price for "Flat rate" method, based on product's shipping class, you could add something like this to your (child) theme's functions.php file:

add_shortcode( 'my_alg_product_shipping_cost_flat_rate', 'my_alg_product_shipping_cost_flat_rate' );
if ( ! function_exists( 'my_alg_product_shipping_cost_flat_rate' ) ) {
    /*
     * my_alg_product_shipping_cost_flat_rate.
     */
    function my_alg_product_shipping_cost_flat_rate( $atts, $content = '' ) {
        if ( isset( $atts['shipping_instance_id'] ) ) {
            global $product;
            if ( $product ) {
                $shipping_class       = $product->get_shipping_class();
                $shipping_class_term  = get_term_by( 'slug', $shipping_class, 'product_shipping_class' );
                $shipping_method      = new WC_Shipping_Flat_Rate( $atts['shipping_instance_id'] );
                $shipping_class_cost  = $shipping_class_term && $shipping_class_term->term_id ?
                    $shipping_method->get_option( 'class_cost_' . $shipping_class_term->term_id, $shipping_method->get_option( 'class_cost_' . $shipping_class, '' ) ) :
                    $shipping_method->get_option( 'no_class_cost', '' );
                return $shipping_class_cost;
            }
        }
        return '';
    }
}

And then use [my_alg_product_shipping_cost_flat_rate] shortcode in plugin's settings (i.e. in "XML item" template):

<shipping_price_flat_rate_zone_X>[my_alg_product_shipping_cost_flat_rate shipping_instance_id="28"]</shipping_price_flat_rate_zone_X>

Installation and Updates

  • Buy the plugin 🙂
  • Download plugin’s zip to your computer (you will receive an email with download link, or you can always download the plugin from your account).
  • Go to “Admin Dashboard > Plugins > Add New > Upload Plugin” and browse for downloaded zip file.
  • If plugin is successfully installed – you should see it added to the Plugins list.
  • To keep WPFactory items up to date, please install WPFactory Helper plugin and enter your site key.

Refunds

We want to ensure that you are 100% happy with your purchase, so if you feel the product(s) you purchased are not the best fit for your requirements and you attempted to resolve issues with product's author, we are offering 30 day money back guarantee refund policy.