Skip to content
Auboros

ERP for Fresh Produce Wholesalers in Australia: What to Look For

What ERP for fresh produce wholesalers needs in Australia: daily price lists, grower settlement under the Horticulture Code, FEFO picking and GST-free lines.

By Bill Alvarez, Practice Manager, Auboros ·

ERP for fresh produce wholesalers must do five things: hold a price list that changes every trading day, settle growers as agent or merchant under the Horticulture Code, pick by expiry date, put GST-free lines on a mixed invoice, and trace any lot both ways in minutes. Odoo and MYOB Acumatica cover all five as standard as at 21 October 2026. Variable weight is the gap to scope first.

At a glance

  • Who it is for: Australian fresh produce wholesalers, market-floor traders and grower-agents buying or selling fruit and vegetables by the pallet, who have outgrown spreadsheets, a market trading app or an accounting file
  • Problem it solves: Knowing which produce-specific requirements a general ERP covers as standard, which one it does not, and what to check in the demo before the daily price list, the grower statement or the recall drill exposes the gap
  • Platforms: Odoo 19 Enterprise (Inventory, Sales, Purchase and Accounting apps) and MYOB Acumatica with the Lot and Serial Tracking feature enabled
  • Typical cost: Our Odoo packages are on the Odoo implementation cost in Australia page; MYOB Acumatica licensing is quoted per named user through partners and is not published, so we leave the figure out
  • Typical timeline: 12 weeks for a single-entity distributor on MYOB FastStart for wholesale distribution; scoped Odoo and MYOB builds with grower settlements, scales or EDI run longer and are quoted after discovery
  • Last verified: 21 October 2026 against the Odoo 19 expiration dates documentation, the MYOB Acumatica Lot/Serial Classes form reference, the ATO GST-free food page (updated 26 February 2026) and the FSANZ food traceability page (updated 30 September 2025)

The produce business runs on a different clock from the rest of wholesale. Prices are set before dawn, stock that was fine yesterday is dumped tomorrow, and the people who supplied it may not have sold it to you at all. Hort Innovation’s 2024/25 statistics handbook, released 24 February 2026, put Australian horticulture production at a record $18.4 billion, with fruit at $7.3 billion and vegetables at $6 billion. A large share of that volume moves through central markets and the wholesalers around them. Brisbane Markets at Rocklea, which describes itself as Queensland’s only central fruit and vegetable market, reports more than 700 million kilograms of produce worth over $2 billion a year as at 21 October 2026.

Most ERP advice for this sector is written for packers and processors. This post is for the wholesaler and the agent: the business that buys or consigns produce, sells it to retailers, food service and other wholesalers, and has to settle with growers and the ATO afterwards. It sits under our hub on ERP for wholesale distribution in Australia and alongside the companion post on ERP for food and beverage wholesalers, which covers packaged and chilled goods with longer dates.

Why does fresh produce break ordinary wholesale software?

Generic inventory software assumes three things that are false on a market floor. It assumes the price of a product is stable for weeks, so it stores one sell price per item and maybe a customer discount. It assumes you own what is on your shelves, so every receipt creates a supplier bill. And it assumes stock is interchangeable, so it counts cartons rather than cartons of a particular lot that will be compost by Thursday.

Fresh produce violates all three at once. A carton of tomatoes has a price that moved overnight, may belong to a grower you are selling on behalf of, and has a shelf life measured in days. Any ERP you shortlist needs to handle those three facts natively or through configuration you can see in the demo, not through a promised customisation.

What does ERP for fresh produce wholesalers have to cover?

The checklist is short. If a platform cannot do these five things in its standard documentation, it is not a fit for this trade.

  • Price lists that change daily. Buyers ring at 4am for today’s price on the line. The system needs dated price lists you can load from a spreadsheet before trading starts, with the old list expiring automatically.
  • Grower settlement as agent or merchant. If you sell on consignment you never own the stock, the grower is paid from the sale proceeds less commission, and the Horticulture Code sets what you must report. The ERP has to carry stock you do not own and produce a statement per grower.
  • Expiry-driven picking and dumping. First expired, first out (FEFO) has to be the default removal rule, with alerts before a lot goes over, and a clean way to write off what did.
  • GST-free lines on a mixed invoice. Most fresh fruit and vegetables are GST-free, but prepared or marketed items on the same order are not. Tax has to sit on the item, not the invoice, and flow to the Business Activity Statement (BAS) correctly.
  • Two-way traceability in minutes. Given a lot number, the system lists the grower, the receipt date, which customers received it, how much went out and what is left in the cool room.

A sixth item, variable weight, is the one neither platform documents as standard. It gets its own section below because it is where produce projects run over budget.

How do you settle growers under the Horticulture Code?

The Horticulture Code of Conduct is a mandatory industry code under the Competition and Consumer Act, enforced by the ACCC. In the ACCC’s framing, an agent sells produce on the grower’s behalf for a commission or fee, a merchant buys the produce to resell it, and a trader cannot act as both under the one agreement. A written horticulture produce agreement has to be in place before trading starts, traders have to publish their terms of trade, and traders have to give growers statements about how their produce was handled. The ACCC’s record-keeping page sets out the records both sides keep and notes that the ACCC can inspect them. The ACCC’s enforcement pages list infringement notices and penalties paid by traders for trading without agreements and for not publishing terms of trade, so the obligations are enforced.

For the ERP the question is whether it can tell owned stock from consigned stock and settle each grower from the sale. Odoo’s consignment feature does the first half: once enabled, a receipt carries an owner, consigned stock is excluded from the stock valuation report, it can still be sold and delivered like any other product, and stock on hand and product moves can be grouped by owner. The documentation is clear that consignment receipts are created manually rather than from purchase orders, and it says nothing about paying the vendor, so the grower statement and the settlement bill are a configured report and a purchase-side flow that gets scoped in.

MYOB Acumatica does not have a consignment switch in the inventory overview. In practice the settlement is modelled with the grower as a vendor, a bill raised per sale period from a generic inquiry over the lot’s sales, and the commission as a line on that bill. The same inquiry doubles as the agent’s statement. Either way, ask the vendor to show a consignment receipt, a sale from that lot and the grower statement in sequence during the demo. If the three do not join up on screen, they will not join up at 5am on a Tuesday.

Can the ERP hold a price list that changes every trading day?

Yes, on both platforms, provided you load prices rather than type them. In Odoo, pricelist rules carry a validity period with a start and end date, so today’s list can be imported with tomorrow’s start date and the previous list lapses without anyone deleting it. Customer-specific lists for food service groups and independent grocers sit alongside.

MYOB Acumatica uses sales price worksheets (AR202010) for the same job. A worksheet is populated by hand, from an Excel upload or by an import scenario, released with an effective date, and the system updates the sales prices from that date. Promotional prices get their own expiry, and the release step refuses regular prices for the same item, unit and currency that overlap in time, which is exactly the control you want when three people are loading prices before the gates open.

Short shelf life: how do Odoo and MYOB Acumatica handle expiry?

Odoo tracks four dates per lot once expiration dates are enabled: expiration, best before, removal and alert, each computed from days set on the product at receipt, per the expiration dates documentation. The FEFO removal strategy is set on the storage location or forced on the product category, and it picks the lot with the nearest removal date first. Expired lots show an alert on the lot record, an Expiration Alerts filter lists them, and the person named as responsible on the product is notified when a date passes. Dumping is an inventory write-off against the lot; the trace of what was dumped stays with the lot history.

MYOB Acumatica does the equivalent through the lot/serial class on the Lot/Serial Classes form (IN207000): tracking method Track Lot Numbers, the Track Expiration Date box ticked, and the issue method set to Expiration so the earliest expiring lot is issued first. MYOB’s own training activity for lot-numbered items that expire uses boxes of guavas with different expiry dates sold to a restaurant, which tells you who the feature was designed for. Our post on MYOB batch tracking and recall traces walks through the setup.

Where the two differ is temperature. Neither platform models a cool room as anything more than a location, so chilled, ripening and ambient zones are warehouse locations with their own put-away and removal rules. If you run ripening rooms for bananas or avocados, the ripening stage is modelled as a location move, and that is worth settling in design rather than discovering in week eight.

“The produce wholesalers we talk to rarely ask about expiry tracking. They ask whether the system can take the 4am price file, settle forty growers on Friday and find a lot in two minutes when the retailer rings. Those three questions decide the project. The rest is configuration.”

Bill Alvarez, Practice Manager, Auboros

What about variable weight?

Many lines sell by weight but are stocked by carton or bin, and the kilograms in each carton differ. The trade calls this catch weight or variable weight. As at 21 October 2026, Odoo’s units of measure documentation covers fixed conversions between a purchase unit, an inventory unit and sales packagings, and MYOB’s inventory help covers units of measure and lot tracking, but we could not find catch weight documented as a standard feature on either help site.

That leaves two workable patterns. The first is to stock and sell the line in kilograms, with the picker entering the scale weight on the delivery line and the carton count carried as a note or a second packaging. It works, and it keeps the sale and the invoice honest, but the pick list has to show cartons. The second is a customisation that stores both the count and the weight on every move, which is the pattern dedicated produce systems use. Scope it, price it and decide before you sign, because it touches receiving, picking, invoicing and the grower statement at once.

GST-free produce on a mixed invoice

The ATO’s GST-free food page, updated 26 February 2026, lists fresh, frozen, dried, canned or packaged fruit, vegetables, fish and soup among GST-free foods, and it also says the way an item is marketed, including its labelling, packaging and display, affects its GST status. A fruit platter or a prepared salad is a different animal from the fruit in it. In practice a produce wholesaler’s price list carries GST-free lines next to taxable ones, so the tax code lives on the item and the invoice adds the 10% only where it applies.

Odoo ships a 0% GST Free Sales code and a 10% GST code in its Australian localisation, with the BAS report reading the tax grids automatically. MYOB Acumatica assigns a tax category per stock item and calculates per line. Both pass the test. The configuration risk is the item master: set the code wrong on one SKU and every invoice for that line is wrong until someone notices on the BAS.

Traceability: one step back, one step forward

Food Standards Australia New Zealand says a food business should be able to trace all its inputs and the customers that receive its product, and that businesses which supply food wholesale must have a food recall system, per its food traceability page. The records it lists are the ones a produce wholesaler already handles every day: supplier and customer details, dates of transactions and deliveries, batch or lot identifiers and quantities. The difference an ERP makes is that those records are generated by the receipt, the pick and the invoice rather than kept in a book.

In Odoo, lot tracking on receipts and deliveries gives a traceability report per lot in both directions, and barcode scanning at the dock is what keeps it accurate; our guide to Odoo inventory management covers the warehouse side. In MYOB Acumatica the Inventory Lot/Serial History and Lot/Serial Details inquiries do the same job from the lot number. Run the drill in the demo: pick a lot, ask for the grower, the customers and the quantity still on hand, and time it.

Table: How Odoo and MYOB Acumatica cover the fresh produce checklist, as at 21 October 2026
RequirementOdoo 19 EnterpriseMYOB Acumatica
Daily price listsPricelist rules with start and end validity, importableSales price worksheets with effective date and Excel upload
Consigned stock and grower settlementOwner on receipts, consigned stock excluded from valuation; settlement bill and statement are configuredNo consignment switch; grower modelled as vendor, settlement from a generic inquiry
Expiry and FEFOFour dates per lot, FEFO by location or category, alerts and notificationsLot class with expiration tracking and Expiration issue method
Variable weightNot documented as standard; sell by kilogram or customiseNot documented as standard; sell by kilogram or customise
GST-free linesTax code per product, BAS from tax gridsTax category per item, calculated per line
TraceabilityLot traceability report, barcode scanningLot/Serial History and Details inquiries
Go-liveScoped after discovery12 weeks on FastStart for a single-entity distributor

Which platform fits a produce wholesaler?

A single-site wholesaler selling owned stock, with a handful of users and a daily price file, usually lands on Odoo: stock, pricing, invoicing and accounting in one system at a lower entry point, with consignment available if a few lines are sold on behalf of growers. A multi-entity group, a business with heavier volumes or one that needs mid-market financials across several warehouses usually lands on MYOB Acumatica, and the fixed-scope FastStart program is the fastest route in when the profile fits. Replenishment is where both pay back first, because perishable stock punishes over-ordering twice; our post on the AI replenishment agent covers the drafts-first pattern we use.

Dedicated produce packages still win where market-floor trading, consignment pooling and catch weight are the whole business rather than part of it. If that is you, say so early and we will tell you.

Goes well with

Running produce on spreadsheets and a market app?

We implement Odoo and MYOB Acumatica for wholesalers from Brisbane, a short drive from the Rocklea markets, and work across Queensland, NSW and Victoria. If the daily price file, grower settlements or a recall drill are on your list, book a free consultation. We will run your five requirements and the variable weight question against both platforms and tell you which one, or neither, fits.

FAQ

Frequently asked questions

Which ERP suits a fresh produce wholesaler in Australia?

A single-site wholesaler selling mostly owned stock with a daily price file usually fits Odoo, which covers pricing, consignment receipts, expiry tracking, FEFO picking and accounting in one system. A multi-entity group or a higher-volume distributor usually fits MYOB Acumatica, with the FastStart program as the fixed-scope route in. Dedicated produce packages still win where market-floor trading, consignment pooling and catch weight are the whole business.

Does Odoo handle expiry dates and FEFO picking for fresh produce?

Yes. With lots and expiration dates enabled, Odoo computes an expiration, best before, removal and alert date for each lot from days set on the product, raises an alert when a lot passes its date, and the First Expired, First Out removal strategy picks the lot with the nearest removal date first. The strategy is set on the storage location or forced on the product category.

Does MYOB Acumatica track lot numbers and expiry dates?

Yes. A lot/serial class on the Lot/Serial Classes form (IN207000) sets the tracking method to Track Lot Numbers, ticks Track Expiration Date, and sets the issue method to Expiration so the earliest expiring lot is issued first. The Lot and Serial Tracking feature must be enabled on the Enable/Disable Features form (CS100000) for the class settings to apply.

How does an ERP handle grower settlements under the Horticulture Code?

The Horticulture Code requires a written horticulture produce agreement before trading, published terms of trade, and statements to growers, with the content depending on whether the trader is an agent or a merchant. Odoo's consignment feature records an owner on receipts and excludes consigned stock from valuation, but the settlement bill and grower statement are configured. In MYOB Acumatica the grower is modelled as a vendor and settled from an inquiry over the lot's sales. Ask to see receipt, sale and statement in sequence in the demo.

Are fresh fruit and vegetables GST-free in Australia, and how does the ERP handle it?

The ATO's GST-free food list, updated 26 February 2026, includes fresh, frozen, dried, canned or packaged fruit and vegetables, while prepared items and products marketed as meals can be taxable. In Odoo the GST code sits on the product and the BAS report reads the tax grids automatically; in MYOB Acumatica a tax category sits on each stock item and GST is calculated per invoice line. Getting the item master right is the whole job.

Want help with your own implementation?

We're a Brisbane-based Odoo Silver Partner and MYOB Acumatica Partner. Book a free consultation and get a straight answer.