Documentation
Documentation
Advanced Product Feed builds product feeds from your WooCommerce catalogue and serves them from a stable URL that Google Merchant Center, Meta and the other channels fetch on their own schedule. This documentation covers the free plugin and the Pro add-on; sections that need Pro are marked.
Start here
- Install the free plugin from WordPress.org (and the Pro add-on if you bought it).
- Create your first feed with the three-step wizard.
- Register the feed URL in Google Merchant Center or Meta Commerce Manager.
- Pick a refresh schedule so prices and stock stay current.
Requirements
| Component | Minimum |
|---|---|
| WordPress | 6.5 |
| WooCommerce | 7.0 |
| PHP | 7.4 (8.1 or newer recommended) |
| Writable uploads folder | Feed files are written to wp-content/uploads/apfw-feeds/ |
Getting started
Getting started
A product feed is a file — XML or CSV — that lists your products in the exact structure a shopping channel expects. The plugin reads WooCommerce, applies your filters and attribute mapping, writes the file in batches and serves it from a URL. The channel fetches that URL on its own schedule; you never upload anything by hand.
How a feed is built
- Select — published products that match the feed filters (category, stock status, product type; Pro adds tags, brands, price range, SKU, featured and on-sale).
- Expand — variable products become one item per variation, each carrying the parent’s item group id.
- Map — every channel attribute (title, price, availability, GTIN, Google product category …) is resolved from the WooCommerce field, attribute or static value you chose.
- Write — items are appended to a temporary file 200 products at a time and the finished file replaces the previous one atomically, so the URL never serves a half-written feed.
- Serve — the feed is available at /apfw-feed/{token}.xml (or .csv) with correct content type, ETag and Last-Modified headers.
Free and Pro
The free plugin includes three feeds, the Google Shopping and Meta channels, XML and CSV output, simple and variable products, daily and weekly schedules and public feed URLs. The Pro add-on is installed alongside it and unlocks unlimited feeds, seventeen further channels, TSV/TXT/JSON, grouped and external products, the full filter set, taxonomy/custom-field/ACF mapping, hourly refresh, private URLs and localisation. See the full comparison.
Installation
Free plugin
- In WordPress go to Plugins → Add New and search for “Advanced Product Feed for WooCommerce”.
- Install and activate. WooCommerce must already be active.
- A new “Product Feeds” menu appears in the admin sidebar.
Pro add-on
- Download the Pro zip from My Account → Licenses on this site.
- Plugins → Add New → Upload Plugin → choose the zip → Install → Activate. The free plugin must stay active; Pro is an add-on, not a replacement.
- Open Product Feeds → License, paste your key and click Activate. Every Pro feature unlocks immediately; existing feeds and their URLs are untouched.
Updating
The free plugin updates through WordPress.org. Pro checks this site twice a day and offers updates on the Plugins screen while your licence is active; the download is delivered over a signed, expiring link.
Staging sites
A licence seat is bound to a site URL. Deactivate the licence on a staging copy before cloning it to production, or buy a plan with enough seats for both.
More
Attribute mapping
Mapping tells the plugin which WooCommerce data fills each channel attribute. Defaults are chosen per channel; you only change what you need.
Sources
| Source | Examples | Tier |
|---|---|---|
| Standard WooCommerce fields | name, description, short description, SKU, regular/sale price, stock status, weight, dimensions, permalink, images, categories | Free |
| Product attributes | pa_color, pa_size, custom product attributes such as GTIN or Brand | Free |
| Static value | “new”, “TRUE”, a fixed shipping label | Free |
| Taxonomies | any registered product taxonomy | Pro |
| Custom fields (post meta) | _gtin, _mpn, any meta key | Pro |
| ACF fields | Advanced Custom Fields values, including relationship and taxonomy fields | Pro |
| Fallback values | a second source used when the first is empty | Pro |
Variations
A variation inherits any value it does not carry itself — description, brand, categories, images — from its parent, and always receives the parent id as item_group_id.
Custom output fields
Add any attribute the channel supports that is not in the list, or extra columns for a custom feed. Pro-only attributes (custom labels, advanced shipping) are validated server-side, so they cannot be added by hand in the free plugin.
Google Merchant Center
Google Merchant Center accepts the RSS 2.0 XML feed the plugin generates by default. CSV works too if you prefer.
Registering the feed
- Copy the feed URL from Product Feeds → All Feeds.
- In Merchant Center open Products → Feeds → Add primary feed, choose the country and language, name the feed and select Scheduled fetch.
- Paste the URL, set a fetch time shortly after your plugin schedule runs, and save. Google fetches the file daily; the first review can take up to 3 business days.
Attributes covered
id, title, description, link, image_link, additional_image_link, availability, price, sale_price, sale_price_effective_date, brand, gtin, mpn, identifier_exists, condition, google_product_category, product_type, item_group_id, color, size, gender, age_group, material, pattern, shipping, shipping_weight, tax, multipack, is_bundle, adult, energy_efficiency_class and more. Pro adds custom_label_0–4 and the advanced shipping and return attributes (handling times, transit times, carrier shipping, dimensions, ships_from_country, return policy labels).
Common review issues
| Merchant Center message | Fix in the plugin |
|---|---|
| Missing value [gtin] / limited performance | Map GTIN to a product attribute or set identifier_exists to false for products without one. |
| Invalid or missing google_product_category | Map your store categories on the Category Mapping screen; use Auto-map for suggestions. |
| Price mismatch | Refresh more often (daily, or hourly with Pro) and check that the feed uses the same tax display as your product pages. |
| Image too small | Google wants at least 100×100 px (250×250 for apparel). Map image_link to the full-size image (default). |
Meta (Facebook & Instagram)
Meta Commerce Manager reads the same feed for Facebook Shops, Instagram Shopping and dynamic ads. The plugin’s Meta channel outputs the Facebook catalogue specification (id, title, description, availability, condition, price, link, image_link, brand, google_product_category, item_group_id, sale_price and more).
- Create a feed with Type = Social and Channel = Meta (Facebook & Instagram); CSV is the most widely tested format for Meta, XML also works.
- In Commerce Manager open your catalogue → Data sources → Add items → Data feed → Scheduled feed, paste the URL and choose an hourly or daily fetch.
- Meta validates the file and reports item-level errors under Diagnostics; the preview in Step 3 shows how each product will look before you submit.
Start with the free plugin. Upgrade when you need more channels.
Pro activates on top of the free plugin — same feeds, same URLs, nothing to migrate.