Title: A1 Profit Reports for WooCommerce
Author: a1plugins
Published: <strong>August 4, 2026</strong>
Last modified: August 4, 2026

---

Search plugins

![](https://ps.w.org/a1-profit-reports-for-woocommerce/assets/icon.svg?rev=3634246)

# A1 Profit Reports for WooCommerce

 By [a1plugins](https://profiles.wordpress.org/a1plugins/)

[Download](https://downloads.wordpress.org/plugin/a1-profit-reports-for-woocommerce.1.2.8.zip)

 * [Details](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/)

## Description

A1 Profit Reports for WooCommerce adds the reporting layer WooCommerce’s own Cost
of Goods Sold feature doesn’t provide:

 * Sortable Profit and Margin columns on the product list.
 * A Profit row on every order, and a Profit column on the orders list — refund-
   aware.
 * A date-range Cost of Goods report: summary cards, a per-product profit breakdown,
   and CSV export.
 * Quick-select date presets (Last 30 Days, This Month, This Quarter, Last Quarter,
   This Year, Last Year).
 * A tool to recalculate historical cost for orders that predate Cost of Goods tracking.
 * Configurable order statuses for what counts as a sale in reports.

This plugin reads and writes cost data through WooCommerce’s own Cost of Goods Sold
field (`WC_Product::get_cogs_value()` / `get_cogs_total_value()`), so cost entry,
Quick Edit, and Bulk Edit all work the way they already do in WooCommerce — this
plugin doesn’t duplicate that, it reports on top of it.

#### Requirements

 * WooCommerce 9.5 or newer (this plugin reports on top of WooCommerce’s own native
   Cost of Goods Sold field, which isn’t available on older versions).
 * WooCommerce’s Cost of Goods Sold feature must be enabled (WooCommerce  Settings
   Advanced  Features). The plugin turns this on automatically on activation.

#### Scale

Not recommended for stores exceeding roughly 10,000 sales/month, particularly when
using wide date ranges like “This Year” — report data is cached, but a first-time
computation over a very large order volume can still be slow.

## Installation

 1. Upload the plugin files to `/wp-content/plugins/a1-profit-reports-for-woocommerce`,
    or install through the WordPress admin’s Plugins screen.
 2. Activate the plugin. This automatically enables WooCommerce’s Cost of Goods Sold
    feature if it isn’t already on.
 3. Set a cost on your products (Product data  Pricing, or via Quick Edit / Bulk Edit).
 4. Find your report under WooCommerce  Cost of Goods.

## FAQ

### Why don’t I see cost data on old orders?

Orders placed before the Cost of Goods feature was enabled never had a cost snapshotted.
Use the “Recalculate Historical Cost for This Range” button on the report page —
it applies each product’s _current_ cost retroactively. This is an approximation,
not a historical record: if a product’s cost has changed since the sale, the recalculated
value won’t match what it actually cost at the time.

### Why is the report missing cost for some products?

The report flags products sold in the period that currently have no Cost of Goods
value set. They’re counted at $0 cost until you add one.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“A1 Profit Reports for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ a1plugins ](https://profiles.wordpress.org/a1plugins/)

[Translate “A1 Profit Reports for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/a1-profit-reports-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/a1-profit-reports-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/a1-profit-reports-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/a1-profit-reports-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/a1-profit-reports-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.8

 * Fix: `Plugin URI` in the plugin header still pointed at the pre-rename `/a1-woocog/`
   URL (404, flagged in wp.org review round 2) — now points to `/a1-profit-reports-
   for-woocommerce/`.
 * Add: `Requires Plugins: woocommerce` header, per the reviewer’s optional suggestion.
 * Fix: the (Pro-only) report page’s date-preset `<select>` had its JS in a hardcoded`
   <script>` tag instead of being enqueued. This file is excluded from the free/
   wp.org build by Freemius’s `__premium_only` code-stripping (confirmed empirically
   against the built free zip — the file, and every `<script>` tag, is absent), 
   but it does ship in the premium build, so fixed it the same way as the earlier
   product-list CSS finding: registered/enqueued via `wp_enqueue_script()`/`wp_add_inline_script()`.

#### 1.2.7

 * Packaging: added `premium_slug` and `wp_org_gatekeeper` to the Freemius `fs_dynamic_init()`
   config, per Freemius’s dashboard after the plugin rename. No functional change.

#### 1.2.6

 * Rename the Freemius-provided “Account” submenu item (WooCommerce  Account) to“
   A1 Profit” so it’s identifiable as belonging to this plugin instead of reading
   as a generic, unrelated menu item.

#### 1.2.5

 * Rename: renamed from “A1-WooCOG” to “A1 Profit Reports for WooCommerce” (wp.org
   review round 2) — the reviewer flagged the old name for fusing WooCommerce’s “
   Woo” trademark into the plugin name in a way that implies affiliation. Text domain
   changed to `a1-profit-reports-for-woocommerce` to match. Internal constants, 
   function/class prefixes, database meta keys, and the Freemius product slug (tied
   to existing license records) are unchanged.
 * Fix: the product list’s column-width CSS (`admin_head-edit.php` printing a raw`
   <style>` tag) is now registered and enqueued via `wp_enqueue_style()`/`wp_add_inline_style()`,
   per WordPress.org’s Plugin Check.

#### 1.2.4

 * Fix: WordPress.org’s automated submission scan hard-blocked on the bundled Freemius
   SDK’s update-checking code (`plugin_updater_detected`). Per Freemius support,
   this check is waived for SDKs placed under a `vendor/` folder — moved the SDK
   from `freemius/` to `vendor/freemius/` (matching A1-WooBay’s existing structure)
   and updated the bootstrap require path accordingly. No functional change.

#### 1.2.3

 * Fix: `Plugin URI` and `Author URI` in the plugin header were identical, which
   WordPress.org’s submission check rejects. `Plugin URI` now points to the plugin’s
   own product page (https://a1plugins.com/a1-woocog/) instead of duplicating the
   author/company URL.

#### 1.2.2

 * No functional/behavior changes. Adds a checked-in release build script (bin/build-
   release.sh, excluded from the shipped zip itself) replacing an ad-hoc manual 
   process — version bump needed only so Freemius has a distinct build to stage 
   after 1.2.1 was already uploaded.

#### 1.2.1

 * Fix: plugin header was missing the required `License`/`License URI` lines (found
   by WordPress.org’s Plugin Check tool).
 * Fix: `wc_price()` output (which returns HTML) was echoed unescaped in several
   places — the report page, the order detail Profit row, the orders list Profit
   column, and the product list Profit column. All wrapped in `wp_kses_post()`.
 * Packaging: release zips now also exclude `.gitignore` (in addition to the dev-
   only files already excluded).

#### 1.2.0

 * WordPress.org submission compliance (Guideline 5, no trialware): the Cost of 
   Goods Report is now removed entirely from the free build via Freemius’s code-
   stripping (`__premium_only`), not just gated behind a license check. `has_premium_version`
   is now true — Freemius generates a separate free zip (for wp.org) and premium
   zip (for paying/trial customers). Existing customers who unlocked Pro in-place
   under the old model now need to download and install the separate premium zip
   from their Freemius account instead.

#### 1.1.0

 * Add a “Profit by Product” bar chart to the report page (top 10 products by profit),
   rendered with plain CSS — no charting library added, to keep the plugin lightweight.
   CSV export is unchanged.

#### 1.0.1

 * Fix: license activation had no visible entry point. Freemius silently defaulted`
   has_premium_version` to match `has_paid_plans` (true) since it was never set,
   so the plugin was treated as a dual-zip product requiring a separate premium 
   download instead of unlocking Pro in place. Set `has_premium_version` to false
   and added a proper Account menu (nested under WooCommerce) so “Activate License”
   now appears on the Plugins page as expected.

#### 1.0.0

 * First public release.

#### 0.5.0

 * Connect the real Freemius product (id 35412, slug a1-woocog) – license activation
   and updates now work.
 * Add free/Pro gating: the Cost of Goods Report page (summary, per-product breakdown,
   CSV export, historical recalculation, and settings) is now a Pro feature. Profit
   and Margin columns stay free on every plan.

#### 0.4.0

 * Add Freemius SDK integration scaffolding (licensing/updates), pending the real
   Plugin ID and Public Key.
 * Add this readme.txt with a proper changelog.

#### 0.3.1

 * Fix: Profit/Margin columns silently failed to render on the product list, due
   to a WooCommerce filter-priority conflict.
 * Removed the redundant Cost column/row now duplicated by WooCommerce’s own native
   Cost of Goods Sold display.

#### 0.3.0

 * Add a tool to recalculate historical cost for orders that predate Cost of Goods
   tracking.
 * Add configurable order statuses for what counts as a sale in reports.

#### 0.2.4

 * Cache report data for performance, invalidated automatically on order status 
   changes and refunds.

#### 0.2.3

 * Add quick-select date range presets to the report page.

#### 0.2.2

 * Fix: cost/profit/margin cache now syncs when a product is created, not just when
   it’s updated.

#### 0.2.1

 * Add uninstall cleanup for the plugin’s own cached data.

#### 0.2.0

 * Migrate to WooCommerce’s native Cost of Goods Sold field instead of a custom 
   cost field. Adds refund-aware profit calculations and native Quick Edit / Bulk
   Edit support for cost.

#### 0.1.2

 * Add CSV export to the Cost of Goods report.

#### 0.1.1

 * Fix sortable Cost/Profit/Margin product columns.

#### 0.1.0

 * Initial release: cost tracking, profit columns, and a date-range report.

## Meta

 *  Version **1.2.8**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [cost of goods](https://wordpress.org/plugins/tags/cost-of-goods/)[margin](https://wordpress.org/plugins/tags/margin/)
   [profit](https://wordpress.org/plugins/tags/profit/)[reporting](https://wordpress.org/plugins/tags/reporting/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/reviews/)

## Contributors

 *   [ a1plugins ](https://profiles.wordpress.org/a1plugins/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/)