Case study · Xenergy

An ERP built around how a solar distributor actually runs.

Xenergy imports and sells solar panels, inverters and batteries across Zimbabwe. We built the system that runs the business end to end: every sale, every pallet in every warehouse, every supplier payment, payslip and bank line, with a mobile app for the team on the road.

ClientXenergy
SectorSolar energy distribution
PlatformWeb app + mobile PWA
StatusLive, in daily use
Our roleDesign, build, hosting, support
Live aterp.xenergy.co.zw
Xenergy ERP dashboard: sales this month, outstanding invoices, gross profit, expenses, targets, a twelve-month revenue chart and stock by category

The problem

A growing distributor was running on spreadsheets, a generic accounting package and a lot of memory. Stock lived in several warehouses, purchase orders arrived in foreign currency with landed costs that changed after the fact, and the only way to know how much cash the business really had was to ask the person who did the banking.

Off-the-shelf ERPs were either too expensive for the size of the company or demanded that the business change how it worked to suit the software.

The approach

We started with the questions the owner asked every morning: what came in, what's going out in the next two weeks, what needs my decision today. The system was designed outward from those answers.

Everything else, from invoicing to payroll, was added module by module, each one shipped to a staging environment the team could use before it went live. The business never stopped trading while the system grew around it.

What we built

One system, one login, one source of truth. These are the parts the team touches most.

A morning briefing, not a dashboard

The Today view opens on three numbers: cash in the books, what's committed to go out over the next fourteen days, and the forecast low point. Below it, the things that need dealing with first, ranked: overdue customer payments, purchase orders missing a supplier invoice, approvals waiting on the owner.

  • Bank statements imported and matched, so the cash figure is evidence, not an estimate
  • Every action links straight to the record it's about
  • Full dashboard one click away for the detail
Today view with cash in the books, committed outgoings, forecast low point and prioritised actions

Sales, quotes and credit notes

Quotes become proformas become invoices without retyping. Each line carries its batch and landed cost, so gross margin is known at the moment of sale rather than at month end. Credit notes and write-offs keep the audit trail intact.

  • Draft, delivered and paid states with due dates and ageing
  • Customer accounts with balances, history and contacts
  • Price lists per customer group
Sales list with invoice numbers, customers, amounts and statuses

Stock that knows where it is and what it cost

Panels, inverters and batteries are tracked by batch across multiple warehouses. Every movement is recorded: receipts against purchase orders, transfers, sales and write-offs. Batch detail shows what was bought, what's left and what it's worth.

  • Purchase orders with a progress trail from ordered to delivered to invoiced
  • Landed costs applied after delivery when freight and duty arrive, so unit cost is right
  • Stock by category at a glance, with low-stock prompts
Warehouse movements log across locations

Purchasing with the real cost

Each purchase order carries its supplier, currency, delivery status and the costs that arrive later. Once freight, duty and clearing are in, the system spreads them across the units received, and every later sale uses the true landed cost.

  • Supplier payment schedules feed the cash forecast automatically
  • Missing supplier invoices surface as actions until they're resolved
Purchase order detail showing delivery progress, products received and costs

Money, forward and back

Profit and loss, balance sheet, bank reconciliation and a cash flow report come straight from the same records, with no re-keying into an accounting package. The cash forecast projects the next weeks from committed receipts and payments, including payroll and loan repayments, and flags the low point before it arrives.

  • Payroll with payslips and statutory deductions
  • Loan schedules with interest and repayments tracked against the bank
  • Expenses with receipt images and tax references
Cash flow forecast with projected balance, committed inflows and outflows

On the road

Sales staff and technicians spend their days at customer sites, not at desks. The mobile app is installable on any phone and shares the same backend, so a quote raised in the field is in the system before the car has left the driveway.

Mobile app home: sales, quotes, stock, price check, expenses, customers, adviser and calculators
Price check screen showing cost, target price, margin and stock on hand for a product
Capture expense screen with manual entry or AI photo of the receipt

Price check on the spot

Search any product and see cost, target price, margin and what's on the shelf, so a salesperson can quote confidently in front of the customer without phoning the office.

Receipts that file themselves

Photograph a receipt and the app reads the supplier, amount and tax details and drafts the expense for approval. Fuel, tolls and site costs stop living in glove boxes.

How it's built and run

The whole system runs on Cloudflare's edge network, which keeps it fast in Harare and costs a fraction of a traditional server. There's no machine to patch, back up or reboot.

Shipped continuously

Every change goes to a staging environment first, where the Xenergy team can try it with real workflows. Production deploys are automated from the main branch, several times a week, with no downtime.

Supported by the people who built it

We host, monitor and support the system, and we're still adding to it. When the business changes how it works, the software changes with it.

Your business next

Running on spreadsheets and memory?

Tell us what you sell and how it moves. We'll show you what a system built around your business would look like.