=== QWeb Merchant Feed ===
Contributors: qwebmaster
Tags: woocommerce, product data, google shopping, merchant center, product feed
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
WC requires at least: 6.0
WC tested up to: 11.0
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Optimize WooCommerce product data for Google Merchant Center. Find errors and fix the feed without changing shop pages.

== Description ==

= Product Data Optimizer for Google Merchant Center =

Most feed plugins export what WooCommerce already has. QWeb Merchant Feed improves the product data Google actually sees, and it keeps the work simple: generate, copy one URL, paste it into Merchant Center, done.

A technically valid XML file can still contain bad titles, missing identifiers, slug-cased sizes and incomplete apparel attributes. Those problems do not show up as a broken file. They show up later as disapprovals and weak Shopping listings.

This plugin creates optimized product data from WooCommerce, detects product data problems in plain words, and applies reversible one-click corrections without changing your shop pages.

Designed to improve millions of product records and detect thousands of product data issues before they reach Google Merchant Center. Generation streams, so a large catalogue is a normal case, not a special mode.

= Live in minutes =

1. Activate. WooCommerce with published products is the whole prerequisite.
2. Click Generate. The plugin writes the feed file and shows you its stable URL.
3. Paste that URL into Merchant Center as a scheduled fetch.

That is the whole setup. No account, no API key, no Google login, nothing to configure first. The plugin ships with sensible defaults and rebuilds the feed on its own schedule from then on. A built-in Help tab walks through every step with the exact clicks.

= Find problems with one Scan =

One Scan button reads your catalogue. Each row is one problem type, explained in plain words: what was detected, how many products are affected and what to do next. Most rows have a one-click Apply, and Undo takes the last apply back.

QWeb Merchant Feed checks for issues such as:

* Missing or duplicate GTINs
* Missing brand
* Missing Google product category
* Missing apparel attributes such as gender and age group
* ALL CAPS, short, long or HTML-filled titles
* Duplicate titles
* Thin, duplicate or promotional descriptions
* HTML and capitalization problems in descriptions
* Many colours sold off one single photo
* Product data that needs human review rather than an automatic guess

= Create optimized product data =

* XML, TSV or CSV for Google Merchant Center
* Stable public feed URL for scheduled fetch
* Simple and variable WooCommerce products
* Unique offer IDs based on WooCommerce product or variation IDs
* Atomic writes so a failed regeneration does not serve a half-written feed
* Streaming generation designed for large catalogues
* No invented GTINs
* Google product category mapping when the match is reliable
* Per-product fields for titles, descriptions, GTIN, MPN, brand, size, colour, material, availability, condition, adult, custom labels and more

= Optimize Google without touching WooCommerce =

Corrections are stored separately from WooCommerce product-page content.

Priority is:

Per-product override > rule > WooCommerce mapping > omit

That means you can optimize data sent to Google without changing the title or description customers see on your store.

Mechanical fixes can be applied in batches with one click, and the most recent Apply batch can be undone with one more.

= Standardize product information =

Rules are plain forms, not code: who it applies to, which Google field, what to do. Starter chips fill the common ones in. Create rules based on:

* All products
* Category
* Product title
* SKU
* Product tag

Then set, prefix, suffix or replace Google product data fields.

= Free edition =

The free WordPress.org edition includes:

* Optimized product data output in XML, TSV and CSV
* Stable scheduled-fetch URL
* Local catalogue scan
* Mechanical Apply and Undo
* Rules to standardize product information
* Per-product Google Feed tab
* Bundled Google taxonomy
* WP-CLI tools for status, doctor, generate, audit, history, fix, explain and category mapping

The free edition does not phone home, call an LLM or require a Google login.

= QWeb Merchant Feed PRO =

PRO is the AI Product Data Optimizer for Google Merchant Center. It adds:

* Improve product titles and descriptions with AI-assisted rewrites
* Hosted 83-point product data audit
* Optional Merchant Center connection
* Merchant API / Content API workflow
* License-based site plans

AI suggestions do not automatically clear sensitive or policy-related findings that require human review.

Learn more at https://qwebmerchantfeed.com

= External services =

This free edition does not phone home. Product data generation, the local scan and mechanical
fixes all run on your own server. Google's public product taxonomy is bundled as a local
data file, so category matching makes no request to Google.

A paid edition exists that can call QWeb for AI rewrites. That code is not in this zip.

== Installation ==

1. Install and activate the plugin. WooCommerce must be active.
2. Go to Merchant Feed in the admin menu.
3. Generate the feed, then open Audit and fix issues.
4. Copy the feed URL. In Google Merchant Center, add a product data source pointing at that URL.

== Frequently Asked Questions ==

= Do I need to connect a Google account? =

No. The free edition can generate a file and public feed URL. Add that URL as a scheduled data source in Merchant Center.

= Does the plugin change my WooCommerce product pages? =

No. Feed-level overrides are stored separately from the content customers see on your shop.

= What is product data quality? =

A feed can be valid XML and still contain weak or incorrect product data. QWeb Merchant Feed scans for missing identifiers, duplicate identifiers, title problems, missing apparel attributes and other product data issues before that file reaches Google.

= Can it help with missing GTINs? =

It can detect missing and duplicate GTINs and use a stored barcode when one is actually present. It never invents a GTIN. If an identifier genuinely does not exist, the feed can represent that truth instead.

= Does it support variable products? =

Yes. Product variations use unique WooCommerce variation IDs as offer IDs.

= Can I use it for apparel? =

Yes. The scanner understands common apparel fields such as gender, age group, colour and size.

= Does my catalogue leave my site in the free edition? =

No. Product data generation and the local scanner run on your WordPress server.

= What does PRO add? =

PRO is the AI Product Data Optimizer. It adds AI-assisted title and description improvements, a hosted 83-point audit and optional Merchant Center API workflows.

== Screenshots ==

1. Audit: detect product data problems, see how many items, and Apply.
2. The feed dashboard: item count, exclusions and the public URL Google fetches.
3. The Google Feed tab on a product, for one-product overrides.
4. Help: setup, generate, Merchant Center, rules, and who wins.

== Changelog ==

= 1.0.1 =
* Fixed: a fatal error on the front end. The plugin registered a request handler for a component that is not part of the free edition, so every page load ended in a blank page. The handler is now only registered when that component is present.
* New: Variation titles setting. Keep WooCommerce's own name (Base - Colour, Size) or match the dashes format most feed plugins emit (Base - Colour - Size), so a migration keeps titles identical and Google keeps their history.
* Security: the log file name now carries per-site entropy (like WooCommerce logs), so servers that ignore .htaccess (nginx, OpenLiteSpeed) cannot serve it at a guessable URL. Existing logs are renamed automatically.
* The logs folder .htaccess now uses both Apache 2.4 and 2.2 deny syntax.
* Doctor reports it when it repairs feed directory ownership instead of fixing it silently, and explains that a feed URL timeout can be the server failing to reach its own public URL (containers, NAT).
* Uninstall removes the logs folder completely (the .htaccess used to survive and keep the folder behind).

= 1.0.0 =
* First public wordpress.org release.
* Product Data Optimizer for Google Merchant Center.
* Create optimized product data as XML, TSV or CSV with a stable scheduled-fetch URL.
* Choose which shop categories go into the feed, or exclude some.
* Detect product data problems: missing fields, shared barcodes, title issues and apparel gaps.
* Mechanical Apply and Undo. Shop pages are not edited.
* Rules to standardize product information, plus a per-product Google Feed tab.

== Upgrade Notice ==

= 1.0.0 =
First public release. Product data optimizer for Google Merchant Center. Shop pages stay as they are.
