Changelog
One list, taken from the plugin's own readme file. If a version is not here, it has not been released.
Updated 2026-10-14
0.2.6
Released 14 October 2026. An AI assistant you connect to your store can now read the report.
On WordPress 6.9 or later Merchgain registers three read-only abilities through the WordPress Abilities API: a profit summary for a period, the products sold at a loss and the products without a cost. An AI assistant connected to your store through MCP answers with the same figures as the report screen — what it can read and who can call it. The abilities need the same “view WooCommerce reports” permission as the screen and never change anything. Merchgain still makes no outgoing connections: the figures reach an assistant only over a connection you set up yourself.
A product counts as sold at a loss when its recorded cost was higher than its revenue in the period. Refunds of earlier sales are not a loss, and items without a recorded cost are not judged — the list of products without a cost covers those.
0.2.5
Released 11 October 2026. Items sold before their cost was recorded now get an estimate, and the report screen has a new look.
WooCommerce records the cost on the order at the moment of sale, so a shop that enters its costs today has none on last year’s orders. The report now estimates those items from each product’s cost as it is today — the same rule WooCommerce uses when it records a cost, variations included — and shows the result in a panel of its own under the summary. The estimate is never added to the recorded figures: the summary, the Cost, Profit and Margin columns and the coverage line are calculated exactly as before. It has its own cards, its own “Estimated profit” and “Estimated margin” columns, which can be sorted, and an approximately-equal sign on every estimated figure. Items with no cost even today — a product with no cost or a cost of zero, or one deleted since the sale — are not estimated, and the panel says how much revenue that leaves out. Nothing is written to the store: the estimate is calculated when the report is opened.
The CSV export has five new columns at the end — revenue, cost, profit, margin and item count of the estimate — and explains them in a note at the end of the file. Existing columns keep their places. The one-time review request can now also appear below a report that has only an estimate.
Gross profit is now the largest number on the screen, with revenue, cost of goods and margin beside it in a summary panel, and a bar shows how revenue splits into cost, profit and the part with no cost recorded. Margins in the table have a bar beside them, and the search box and the CSV button sit next to the table they work on. The numbers and how they are calculated are unchanged.
Three fixes for things that were wrong in 0.2.4. The link next to the coverage line always said 74%, whatever the real share was; it now quotes the line, and a share just under 100% or just over 0% shows one decimal instead of being rounded to 100% or 0%. Switching from a product search to the category view kept the search phrase, so the screen said the search filtered a table it did not filter, and the category export lost its note about products counted in several categories. An account that can see reports but not edit products got the names in the missing cost list as empty links that reloaded the report; they are plain names now.
0.2.4
Released 25 September 2026. The missing cost warning finds ATUM purchase prices, credits WooCommerce Cost of Goods correctly and recognises two more plugins.
Since its version 1.5.0 ATUM Inventory Management keeps purchase prices in a table of its own, while Merchgain was reading an old product field that ATUM no longer writes to — so the warning did not see them. It reads the table now. The old field is no longer counted at all: in a shop that ran ATUM before 1.5.0 it holds a frozen copy, and other plugins use a field of the same name, so no single plugin could honestly be named for it.
Costs kept by WooCommerce Cost of Goods were credited to the WPFactory cost plugin, which only imports them; the warning now names the right plugin. A variation with no cost of its own in the WPFactory plugin takes its parent’s cost there, and is now counted too, so a shop that keeps those costs on variable products no longer sees a zero. The warning also recognises Booster for WooCommerce and BjornTech PayPal POS integration for WooCommerce, and names each plugin by the name the plugin gives itself. When Booster is set to “Treat Variable Products as Simple Products”, a variation takes its parent’s purchase price there, and the warning counts it as a cost kept in Booster.
Negative amounts are no longer counted either — only amounts above zero.
0.2.3
Released 23 September 2026. A fix for shops on MariaDB, a one-time review request and new screenshots.
On MariaDB the product and category tables — and their CSV export — came out empty when sorted by profit or by margin, and profit is the default sort. The database rejected the sort expression, and the screen showed no rows and no error. MySQL was not affected, and no figure was ever wrong: the summary cards and the other sorts worked. If you saw an empty table after opening the report, this is the version that fixes it.
Below a report with at least one costed sale there is now a one-time request to review the plugin on WordPress.org, whatever your verdict. It shows only on the report screen, never on the dashboard, and stays closed for good once you follow it or choose “Don’t ask again”. The choice is kept per user and removed on uninstall.
The screenshots in the plugin directory were retaken on an English demo store, with captions that say what each screen shows.
0.2.2
Released 18 September 2026. The missing cost warning now tells you when the cost is kept by another plugin.
A product with no cost in the WooCommerce field, but with one in Cost of Goods for WooCommerce, ATUM Inventory Management, NI WooCommerce Cost of Goods or Cost of Goods, is counted and the plugin is named. An empty report stops being a mystery — which for a shop that has tracked costs for years was the whole problem.
Those values are counted, never used. Profit and margin still come only from the field WooCommerce itself provides: a figure taken from a field nobody can verify would be worse than the gap it fills. Why that line is drawn where it is, and how to move the values across, is on the page about costs kept in another plugin.
0.2.1
Released 18 September 2026. One change you can see and two you cannot.
The plugin is now listed as Merchgain – Gross Margin & Profit Reports for WooCommerce. Only the displayed name changed: same plugin, same directory address, same settings, same data. Nothing in your shop needs doing.
The other two matter only when a Merchgain extension is installed:
- the category view got faster. The grouping used to run two queries per product — on a shop with 11,000 sold items that meant 6,978 queries and 2.6 seconds. It is now 18 queries and 0.8 seconds, and the figures it produces are unchanged;
- uninstalling no longer removes cached data belonging to Merchgain extensions. Each extension cleans up after itself.
0.2.0
Released 8 September 2026. The first public version — free in the WordPress.org plugin directory, installable from your own admin like any other plugin.
Versions 0.1.0 and 0.1.1 were review builds sent to the directory and never published. The code here is the one that passed review; only the version number changed.
What it does:
- summary cards — revenue, cost of goods, gross profit and margin for the selected period;
- profit per product, sortable, searchable and paginated;
- profit per category;
- missing cost warning, with links straight to the products and the uncovered revenue in money;
- CSV export of the current view;
- foreign currency warning, naming the currencies and excluding those orders;
- onboarding for a shop where the Cost of Goods Sold feature is still switched off;
- results cached for an hour, cleared immediately when a cost is saved, plus a Recalculate button;
- no limit on how far back the report reaches — it covers your whole order history.
Requires WooCommerce 10.3, WordPress 6.7 and PHP 7.4. Works with High-Performance Order Storage and with classic post storage.
What is being worked on
Two things, in this order:
- profit over time — the same figures aggregated by day, week or month;
- comparison with the previous period — deltas on the summary cards.
The arithmetic for both already sits in the plugin’s core with tests around it; what is missing is the screen. Neither is promised for a date. A version appears in the list above when it is released, not when it is planned, and this page is the only place either statement is made.
How this list stays honest
The plugin ships its changelog in readme.txt, which is what the WordPress.org listing shows.
This page mirrors that file rather than being written separately — one source, so the two cannot
drift apart. Anything that is missing here is missing there too, and that is worth an email.