- First release: cost prices per product and option, cost snapshot on each order, shipping and payment costs, overview, nine reports, expenses, returns, CSV and Excel.
by Kavio Labs · for OpenCart 4.x and 3.0.x
Real profit for OpenCart 4.x and 3.0.x: cost prices per product and option frozen on every order, shipping cost and payment fees, operating expenses, an overview with comparison, and nine reports by order, product, category, brand, customer, payment, shipping, coupon and tax with CSV and Excel. No outside service, no OCMOD.
Real profit for OpenCart 4.x and 3.0.x: cost prices per product and option frozen on every order, shipping cost and payment fees, operating expenses, an overview with comparison, and nine reports by order, product, category, brand, customer, payment, shipping, coupon and tax with CSV and Excel. No outside service, no OCMOD.
Know what you earned. OpenCart has no cost price, so its reports stop at revenue. Profit Reports adds the missing number and shows which products, customers and orders actually pay.
Profit Reports works with OpenCart 4.1.0.4, 3.0.5.1.
We list the builds we install and test on. “Tested” means the test plan ran on that build; “Supported” means the build is inside the supported range.
| Version | Range | Runs on | Status |
|---|---|---|---|
| OpenCart 4.1.0.x | 4.1.0.0 – 4.1.0.4 | PHP 8.1 – 8.3 | Tested on 4.1.0.4 |
| OpenCart 4.0.2.x | 4.0.2.0 – 4.0.2.3 | PHP 8.0 – 8.2 | Supported |
| OpenCart 3.0.x | 3.0.3.8 – 3.0.5.x | PHP 7.4 – 8.1 | Tested on 3.0.5.1 |
The Documentation tab covers the settings and every screen.
OpenCart 4.1.0.4, 3.0.5.1. Tested on OpenCart 4.1.0.4 and OpenCart 3.0.5.1. The Compatibility tab lists every version range.
No. They work through OpenCart events and standard extension types (modules, order totals, themes). No core file edits, no OCMOD patches, no theme template edits, so OpenCart updates and other extensions keep working.
Yes. Every download has a package for OpenCart 4.0.2 to 4.1.x and one for OpenCart 3.0.3 to 3.0.5, and the license key works with both. Moving from OpenCart 3 to 4 later costs nothing.
One production store domain with every subdomain (www, shop., staging.), plus local development hosts such as localhost, *.local and *.test. A store on another domain needs its own license; a second-store license is 40% off. You have 14 days after installing to enter the key. 12 months of updates and support are included; after that the extension keeps working and renewals are 50% off. How licensing works
Yes. Ask for a full refund within 30 days of your first purchase, no reason needed: open a ticket or write to [email protected] with your order number. The money goes back to the card or bank account you paid with within 5 business days of approval. Refund policy
Open a ticket from your account, so your license details are attached. We answer Monday to Friday: bug reports within 1 business day, how-to questions within 2. Support policy. Not a customer yet? Ask a pre-sales question.
9 more answers about setup and daily use in the Documentation tab.
Code: kv_profit_reports · Version: 1.0.0 · Works with: OpenCart 4.x and 3.0.x
OpenCart knows what you sold, not what you earned. It has no cost price, so every report stops at revenue. Profit Reports adds the cost of your products and turns your orders into profit figures: per order, product, category, brand, customer, coupon, payment method and shipping method.
The cost of each order is frozen when the order is placed. A new supplier price never rewrites last month.
Customers see nothing. The extension adds no storefront output, no outside service and no OCMOD.
| Page | Contents |
|---|---|
| Installation | Requirements, installing, first steps, updating, removing |
| Configuration | Counted statuses, shipping cost, payment fees, license |
| Usage | Costs, reports, how the figures are calculated |
| FAQ | Common questions |
| OpenCart | 4.1.0.4 and 3.0.5.1 |
| PHP | 8.3 with OpenCart 4.1.0.4, 8.1 with OpenCart 3.0.5.1 |
| Speed | 10,000 orders: overview of a year 361 ms, orders report 191 ms, products 281 ms, customers 313 ms, on our test machine |
| Figure | Meaning |
|---|---|
| Sales | Sub-total, minus coupons and reward points, plus other order totals such as handling |
| Revenue | Sales plus the shipping the customer paid |
| Gross profit | Revenue minus cost of goods, shipping cost, payment fee and extra cost, minus the profit of finished returns |
| Net profit | Gross profit minus operating expenses in the period |
Tax is not part of any profit figure. Store credit and gift vouchers are ways to pay, so they do not reduce sales. Amounts are in the store currency, as OpenCart stores them. These are operational figures, not accounts or tax advice.
kv_profit_reports.ocmod.zip.kv_profit_reports-oc3.ocmod.zip.There is nothing to refresh under Modifications: the extension uses events only.
Upload the new package the same way. Costs, snapshots and expenses stay.
Uninstalling the module removes its tables: costs, snapshots and expenses. Export the cost book first. Orders and products are not touched.
All settings are in Profit Reports > Settings.
| Setting | Default | Notes |
|---|---|---|
| Status | On | Creates a cost snapshot for new orders. Reports stay available when it is off |
| Counted statuses | Your processing and complete statuses | An order counts as sold in one of these. Changing them takes effect at once, without a rebuild |
| Refund statuses | Refunded, Reversed, Chargeback | Shown as refunded on the overview. They should not be counted statuses |
| Finished return statuses | Complete | A return in one of these takes its revenue and profit back out |
| Low margin warning | 15 % | Margins below it are red |
| Setting | Default | Notes |
|---|---|---|
| Shipping cost | Same as the customer paid | Shipping then neither adds to nor reduces profit. Or a fixed amount per order |
| Fixed cost per order | 0 | Packaging or handling, for example |
For each payment method: a percentage of what the customer paid, plus a fixed amount. A change applies to new orders and to any order whose status changes later, unless you typed its fee on the order page.
Users without access to Profit Reports do not see the cost field on the product form, the panel on the order page or the margin in the order list. Set this under System > Users > User Groups.
Enter the key from your Kavio Labs account in Settings > License. A 14-day trial runs without a key. Without a valid license new orders get no snapshot. Reports, costs and your data stay available, and the store is not affected. Orders placed in that time can get an estimated snapshot later.
product_id, model, sku, name, price, cost. For import a file needs a cost column and one of product_id, model or sku. A product the file does not mention keeps its cost, and an empty cost cell changes nothing. Comma decimals work.The cost of an option value is added to the product cost. A variant product without its own cost uses the cost of its master product.
A line gets its cost when the order first receives a status. After that the line keeps it, also when you change the product's cost or edit the order. A line without a cost stays "no cost": add the cost later and new orders use it; for the order itself, the figures stay as they were.
Pick a period and a comparison. The cards show the change against the period before or the same dates last year. Where the money went walks from sales to net profit. Check these lists what makes the figures less reliable, with a link to the orders.
| Report | Shows |
|---|---|
| Orders | Revenue, each cost, gross profit, margin. Filter: lost money, missing costs, estimated. Sort: worst first |
| Products, Categories, Brands | Units, orders, revenue, cost of goods, gross profit, margin |
| Customers | By e-mail, guests included: new or returning, orders, revenue, average order, profit, first and last order |
| Payment methods, Shipping methods | Orders, revenue, costs, profit per method |
| Coupons and points | Each discount as stored on the order: orders, amount, revenue and profit of those orders |
| Tax | Each tax line as charged, per country: net and tax |
A product in several categories counts once, in its first category. In the product, category and brand reports, revenue includes the product's share of order discounts and excludes shipping and order costs.
CSV and Excel export the whole report for the period, not only the page. Print gives a clean page.
The panel shows revenue, costs and profit. Under Actual costs of this order you can type the real shipping cost, the fee or an extra cost. An empty field goes back to your rule. Typed values survive later status changes.
Add rent, advertising or software with a date range. A one-year invoice over 365 days counts 1/365 per day, so each period carries its share. Expenses reduce net profit only, not the profit of single orders.
A return request in a finished return status reduces gross profit by the profit of the returned units, on the date of the return. The goods are assumed to go back to stock. An order moved to a refund or cancelled status simply stops counting, and comes back if you move it back.
No. The extension adds nothing to the storefront. It only stores figures when an order gets a status.
No. Orders work without costs. Lines without a cost are marked, so you know the profit shown is too high. Filling costs in later helps new orders.
That is the point of the snapshot: an order keeps the cost it had.
Not line by line. Use the extra cost field on the order page. Orders from before the installation get today's cost when you create snapshots, and stay marked as estimated.
The overview includes shipping and order costs. The product report looks at goods only: revenue and cost of goods of each line.
Yes. OpenCart stores order amounts in the store currency, and the reports use those. Costs are in the store currency too.
There is a store filter in the reports, and costs are shared because products are. Multi-store is not part of our tests.
No. These are operational figures for running the shop. Tax lines are shown as charged on orders.
No. It keeps its own tables and never writes to OpenCart's order or product tables.
Buy with confidence
This product was tested on these builds. Builds we did not test are not listed.
Updates and support are included in the price. The product keeps working afterwards; renewing is optional.
How licensing worksIf it is not what you expected, tell us within 30 days and we refund the order.
Refund policyCard payments are processed by Stripe. Your card number never reaches our server.
Ask a pre-sales questionSold by Kavio Labs Software Limited, registered in England and Wales No. 17532441. About us
More for OpenCart
Server-side tracking for OpenCart 4.x and 3.0.x: purchases, refunds, add to cart, checkout, product views and leads go from your server to the free official GA4 Measurement Protocol, Meta Conversions API and TikTok Events API, deduplicated with the browser pixels through shared event ids. Consent-aware, SHA-256 hashed customer data, order status mapping, queue with retries, test mode and an event log. No paid relay, events only, no OCMOD.
The department store theme for OpenCart 4.x and 3.0.x: colour-coded departments, a department list beside the hero slider with two side promos, a big search with a department selector, tabbed product blocks, a 2 + 1 + 2 offer grid, deals of the day with real countdowns, a department showcase, a promotions band and a three-column product page with a sticky buy box. Four styles (Meridian, Harbor, Citrus, Night) and your own colours on top. Events only, no core changes.
Stop AI crawlers, scrapers, vulnerability scanners and unwanted countries before OpenCart 4.x or 3.0.x builds a page. Googlebot and Bingbot are verified by DNS and always allowed; 50+ bots get one switch each; country rules use free GeoIP databases and can close only the checkout; IP and network lists, rate limits, honeypots and the cart flood fix; a one-second challenge instead of a captcha; learning mode, dashboard, log, IP tester and Cloudflare export. No core changes, no OCMOD.