WooCommerce ERP Plugin: Purchase Orders, Stock Management and Profit Margin Tracking – Profitori


Profitori extends WooCommerce to cater for additional business functions. (The types of features typically provided by expensive Enterprise Resource Planning systems such as MYOB, SAP, Microsoft Dynamics and others).

Languages Supported: Chinese, Spanish, Indonesian, English

  • Purchase Order Entry and PO Management
  • Receiving (with barcode scanning)
  • Average Costing
  • WooCommerce stock management, tracking and auditing
  • View Inventory balances and values, with customizable columns, sorting and search
  • Multiple Warehouses / Locations
  • Multi-Currency
  • Product stock valuation
  • Inventory History (stock movement transactions)
  • Stock take
  • WooCommerce profit analysis – including by product, supplier, category
  • Print Sales Invoices (download Invoice PDF)
  • View Unpaid Invoices
  • Print Purchase Order (download Purchase Order PDF)
  • View Short Stock (see which products have the least coverage of expected sales)
  • View Forward Cover (see what you need to order first)
  • View Overdue Purchase Orders
  • View Sales in a flexible and convenient format
  • Automated Min-Max Purchase Orders
  • Tax Reporting on Purchases (e.g. for VAT)
  • Review Retail Price and Margin on each Purchase Order and when receiving stock
  • Extract data to Excel
  • Import data from Excel
  • Print product labels when receiving goods (or at any other time), with configurable layout
  • Print barcodes on labels: CODE128 CODE128A CODE128B CODE128C EAN13 UPC EAN8 CODE39 ITF14 MSI MSI10 MSI11 MSI1010 MSI1110 pharmacode codabar
  • Easy migration from ATUM
  • Supports WordPress Multi-site

For full details, download the User Manual (PDF).

All of these capabilities are added directly to your WordPress admin console. No additional software, service or hosting is required. All data is stored securely in the same database that holds your WooCommerce data. No data is stored off-site.

Profitori is intuitive and easy to use, with clean uncluttered screens and a consistent experience throughout the plugin.

Profitori has a very small footprint on your server, as most of the work is done on the client machine inside the browser. Profitori uses modern client-side technologies such as ReactJS for almost all of its functionality.

Profitori is fast due to its unique architecture. Data is cached on the client wherever possible, minimizing network traffic and load on the database.

Profitori is robust due to our “test first” philosophy. All features were developed using a Functional Test-Driven Approach. This has resulted in a solid core of features that have been, and will continue to be, tested many times, far more than can be achieved with manual testing.

Profitori has been built from the ground up with ease-of-extension in mind. Contact us via Support for enhancements – you will be surprised at how quickly and efficiently these can be delivered.


  • The Profitori home page, with convenient links to the main features.
  • Purchase Orders. All orders are listed, latest first. You can sort by any of the columns, or search instantly across all fields shown in the table. (Sorting and searching works the same in all Profitori lists). You can add a new order, edit an existing one, or trash an order.
  • Add / Edit Purchase Order. Orders may be downloaded to PDF.
  • Add / Edit Purchase Order Line. Pricing information automatically flows through to inventory valuations (on an Average Cost basis).
  • Receive Purchases. When you receive a purchase order, stock levels are automatically adjusted in WooCommerce.
  • Stocktake.
  • Enter Stocktake counts. All stocktake adjustments are automatically and instantly reflected in WooCommerce.
  • View Inventory Levels and Valuations. From here you can adjust inventory levels, adjust valuations, and view a history of all movements in inventory levels going back to when you first installed Profitori.
  • Enter Inventory Level Adjustment. All adjustments flow through automatically and instantly to WooCommerce.
  • View Inventory History. A full audit trail of all movements of stock in and out.
  • Adjust Inventory Value.
  • View Profits by Product.
  • Add / Edit Supplier.
  • View Short Stock.
  • Purchase Order PDF.
  • Listing of Sales and Invoices.
  • Sales Invoice PDF (available from within View Order, In Sales and Invoices).
  • Unpaid Invoices - convenient list of orders that have not yet been paid for.
  • Overdue Purchase Order Stock - shows items that were due to have been received but which have not been.
  • Purchase Orders Report.
  • Profitori Spanish Language (Profitori detects your language from the browser settings)
  • Profitori Chinese Language (Profitori detects your language from the browser settings)


  1. Install Profitori through the ‘Plugin’ screen in WordPress.
  2. Activate the plugin.
  3. If you haven’t already, enable stock management in WooCommerce (WooCommerce > Settings > Products > Inventory > Manage Stock).


How can I load in initial Average Costs of products from data already stored in custom attributes?

You can do this via Settings > Utilities > Import Unit Costs

What are the minimum requirements to run Profitori?

Profitori requires PHP version 5.6 or greater, and WooCommerce 3.0.9 or later (including 4.0+).

Is Profitori free?

Yes, at present Profitori is free, and all features in the current version will remain free forever.

As time goes by we will add new free features, as well as paid premium features.

Where do I report issues and get help?

Use our Contact Us page. We will endeavour to respond within 24 hours (on business days).


July 1, 2020
I manage a charity organization site with no budget using Woocommerce. Profitori functionally performs as expected with nice reporting and Excel/pdf exports. I've evaluated other products before selecting Profitori. The support staff is knowledgeable, pleasant and quick to reply. I will recommend this inventory management plugin as a nice extension of WC inventory tracking.
May 14, 2020
Good plugin, good ideas, still needs improvement, since it still lacks many options.
Read all 4 reviews

Contributors & Developers

“WooCommerce ERP Plugin: Purchase Orders, Stock Management and Profit Margin Tracking – Profitori” is open source software. The following people have contributed to this plugin.


“WooCommerce ERP Plugin: Purchase Orders, Stock Management and Profit Margin Tracking – Profitori” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WooCommerce ERP Plugin: Purchase Orders, Stock Management and Profit Margin Tracking – Profitori” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


  • Added ability to export Transaction data type
  • Sometimes product was not being set properly in Adust Qty page
  • Added information on “Unable to delete Supplier” message
  • Improved Spanish translation
  • Minor cosmetic improvements

  • Fix Min-Max bug that was creating PO lines for trashed products
  • Search – fix bug that sometimes caused entered characters to be interpreted out of sequence
  • Prevent trashing of POs that have receipts
  • Import – changes to support smoother importing of average costs
  • Fixed bug in calculation of tax percentages for variations

  • Fix bug preventing updates to quantity on purchase order
  • Fixed bug in display of inventory value excl tax when average cost is unknown
  • Fixed costs defaulting to 0 on Min-Max orders when prices are tax exclusive
  • Fixed sorting of Purchase Orders by status
  • Prevent average cost from going to 0 when quantity on hand goes to 0
  • Improved appearance of action links on grid rows
  • Default purchase price to average cost if last purchase unit cost is not set
  • Fixed bug that prevents updates to last purchase unit cost

  • Performance improvements

  • Fixed bug causing rare incorrect updates to total Quantity on Purchase Order and Quantity On Hand
  • Sync Inventory Levels now corrects data from the above bug
  • Fixed issue where regular price for variations is showing as zero
  • Other minor fixes

  • Import data from Excel

  • Added ability to extract all data to Excel via Settings > Utilities > Export
  • Added top level menus to all pages (to prevent need to use WP Admin menu in side bar)
  • Added inventory field for ex consignment, ex tax
  • Altered View Profits to use completed date of sales
  • Added notes to stock valuation changes

  • Added inventory value excl tax
  • Fixed issue preventing start / run of 1.6+ on systems with older data
  • Added View Purchase Order Lines button to Inventory History
  • Added View Receipts to Purchase Order page

  • Performance improvements

  • Prevent search bar losing focus while typing

  • Multiple product label print from Inventory page
  • Utility to copy WooCommerce regular prices to RRPs
  • Ability to flag products as consigment stock, and to report on inventory value excluding these products
  • Print labels directly to printer

  • Performance improvements to Inventory page

  • Prevent wc regular prices being unintentionally set to zero

  • Option to enter purchase prices ex tax
  • Fixed bug causing some labels to overlap
  • Added main supplier as an option to show on the Inventory page
  • Fixed bug preventing plugin from showing for non-English languages

  • Print barcodes on labels
  • Improved scanning of PO Receipts, to allow ease of quantity entry

  • Compatibility with WooCommerce 4.4.1
  • Fix to label print dimensions when width > height
  • Remove rest route warnings
  • Allow totals on fields added to the Inventory page via Customize

  • Barcode reading in PO Receipt page
  • Added supplier SKU, retail inventory valuation as available fields for Inventory page
  • Gross Profit by Supplier report
  • Gross Profit by Category report

  • Fix incorrect creation of multiple General location balances after revaluing stock
  • Added utility to fix incorrect data created by above bug

  • Temporary fix for Stocktake showing wrong system quantities

  • Print labels directly from Inventory page
  • Default purchase price from last purchase price
  • Added more useful hyperlinks

  • Fix bug that sets WooCommerce product price to 0 when deleting a PO Line or PO Receipt Line

  • Multi-Currency

  • Copy ATUM Data – copy average cost from last purchase cost if it’s not already set
  • Prevent REST API warning in PHP logs
  • Improved navigation behaviour

  • Adjust Retail Price and RRP while entering Purchase Orders and Purchase Order Receipts

  • Fixed stock levels not being updated by PO Receipt if entered against PO from older version
  • Fixed description display on PO Receipts entered against POs from older version
  • Fixed extraneous “Get Value From” choices in Label layout and Inventory Level customisations
  • Prevent prfi_ meta values from appearing on customer orders

  • WP 5.5 support

  • Label Printing from Purchase Order Receipt Entry

  • Fixes to minimize screen refreshes and prevent loss of field focus when entering data

  • Improved Forward Cover Report
  • Improved spinner display

  • Added Tax Report (Purchases)
  • Fixed bug in updating of sales transactions

  • Fixed bug preventing stock levels from synchronizing when Profitori started for first time
  • Fixed bad formatting of search bar on some systems

  • New PO Line types – Shipping, Fee, Other
  • Copy purchase orders from ATUM

  • Multiple Inventory Locations
  • Copy supplier and product data from ATUM
  • Support for printing of non-ASCII characters on purchase orders and invoices
  • Recommended Retail Price added to supplier product info
  • Added fields to supplier: Supplier Code, Currency, Ordering URL, Ordering Email, Discount, Tax Rate

  • Fixes to calculation of outstanding purchase order quantity
  • Collapse menu buttons to “More” button when display is narrow
  • Changed order of menu buttons

  • Added Forward Cover Report

  • Automated Min-Max Purchase Orders
  • Maintain Min (Low Stock Threshold linked to WC) and Max quantities per Product
  • Allow Low Stock Threshold to be maintained for Product Variations
  • Ability to associate suppliers with a product and set one to be the main supplier
  • Show main supplier in View Short Stock
  • Maintain Supplier delivery lead days and use this to set default Expected Delivery Date in purchase orders
  • Minimum order quantities per product per supplier
  • Minimum order values per supplier


  • Fixed links not working to records just added
  • Minor cosmetic enhancements


  • Added useful links throughout plugin


  • Added link to Help (User Manual)
  • Prevent “System is busy” message from appearing at inappropriate times


  • Fix bug in spinner display when waiting for long tasks
  • Fix average cost display in View Profits


  • Fix bug in combo list scrolling


  • Fix loss of focus when typing in search field


  • Fix bug causing cursor to jump to end of field when typing in the middle of it
  • Make notes fields multi-line
  • Prevent internal prfi_ meta fields from appearing on orders and invoices


  • Supplier contact details
  • Improvements to balance calculation of stcok transactions
  • Change order of tax % and price in PO Line entry
  • Enforce entry of product on PO Line


  • Further improved scrolling behaviour
  • Performance improvements to Unpaid Invoices Report
  • Fixed issues with private products
  • Better transaction integrity and error handling
  • Minor UI fixes


  • Added totals to various lists and reports
  • Added recalculation of outstanding purchase order quantities to Inventory Su=ync feature


  • Improved scrolling behaviour further
  • Added running balance to inventory history
  • Added supplier invoice/reference to Purchase Orders


  • Improved scrolling behaviour
  • Fixed bug preventing hover menus appearing in admin menu
  • Fixed bugs preventing operation when WordPress is installed in a subfolder


  • Fixed bug affecting display of other admin plugins


  • Indonesian language
  • Track user making manual stock level changes


  • Show sales separately in Inventory History
  • Inventory History hyperlinks to various pages to view details


  • Spanish language updates
  • Chinese language updates


  • Chinese language


  • Support for European number format
  • Support for various international short date formats


  • Compatibility with WooCommerce Deposits plugin
  • Improvements to Invoice and Purchase Order layouts


  • Fix to menu not showing in Spanish


  • Spanish language translation


  • Invoice PDF Improvements
  • Fix to stock update bug in PO Receipts
  • Fix to PO Receipt Line display


  • Fixed bug in security


  • Added Sales Invoice PDF
  • Added View Sales
  • Added Overdue Purchase Orders Report


  • Added View Short Stock


  • Ensure unique product names
  • Alter dropdown search to allow full partial matching (rather than just matching the start)
  • Alter quantity caption and field sequence in Adjustment Maintenance


  • Added Purchase Orders Report
  • Added Suppliers Report
  • Added ability to extract to Excel to various pages


  • Allow cancellation of remaining quantity on purchase order when receiving
  • Show Average Unit Cost and Last Purchase Price in WooCommerce product page
  • Prevent change of product on PO line that has receipts
  • Show SKU in Inventory Levels page


  • Cosmetic and performance improvements


  • Cosmetic improvements


  • Fixed bug in Inventory Levels with products containing consecutive spaces


  • Fixed bug in Inventory Levels with products containing Unicode characters


  • Performance improvement to Inventory Levels


  • Added logging to aid with debugging


  • Fixed bug in Inventory Levels customisation


  • Added tests


  • Added ability to customize Inventory Levels page
  • Added Quantity on Purchase Orders to Inventory Levels page
  • Added ability to import Average Unit Costs from WC Product attributes
  • Added informational message if no products found with WC Manage Stock flag set
  • Fixed issues with install and startup when running on slower servers
  • Improved comparison with MYOB, SAP, Microsoft Dynamics, ERPNext, Navision, Sage, Netsuite, Oracle


  • Support for Product Variations
  • Improved coexistence with ATUM


  • Compatibility with older WordPress versions (back to 4.7) and older WooCommerce versions (back to 3.0.9)


  • Initial Release