Merchlint audits a WooCommerce catalogue and reports where the store is losing money. It reads and reports only: no product, no price, no stock level and no order is ever changed. Every fix stays in the shop owner's hands, made in their own admin.
Seventeen checks, in six groups:
Money - products that sold in the past year and can no longer be bought; goods selling without a photo or hidden from the catalogue; sale prices whose scheduled end date has passed and are still running; products with no price at all.
Catalogue and navigation - products outside every category; duplicate SKUs; variable products with every variation sold out.
Content - descriptions too short to answer a customer's question; images with no alt text.
Performance and media - oversized image files; bloated autoloaded options; media entries whose file is missing from disk.
Environment - PHP, WordPress or WooCommerce on a version that no longer gets security fixes; a scheduled-task queue that stopped running, which is what stalls every piece of work meant to happen later.
Product identifiers - products with no GTIN, UPC, EAN or ISBN, and two products carrying the same one. An empty or duplicated identifier is the usual reason an item quietly drops out of a shopping feed, and nothing in WooCommerce says a word about it.
What makes it different:
Every finding shows its evidence. Not "12,636 problems", but the field that was read, the value that was found and the threshold it was compared against.
It tells you where to start. The three items with the largest amount at stake come first, before the full list.
A zero means "checked, clean". A rule that could not run says so, instead of quietly reporting nothing. "No data" and "no problems" are different answers, and you get the right one.
It never adds up currencies. A store selling in euros and dollars gets a separate figure for each. Adding them without an exchange rate would be inventing a number.
Two scans of an unchanged store give the same result, item for item. When something does change, a separate screen shows what moved between the two audits, and whether the difference came from the store or from a rule that got smarter.
Hiding a finding is permanent. Seasonal stock the owner already knows about stops coming back after every scan, and stays hidden across plugin updates.
Every check has its own page explaining what the problem costs, which fields the rule reads, which thresholds it compares them against, how to fix it, and when the finding is not a problem in that particular store.
The plugin works entirely on the server it is installed on. No account, no sign-up and no outbound connections of any kind, enforced by an automated check on every build.
The interface and the catalogue description are available in English and Polish.