AstoeCompanyEnterprise software partner
Delivered engagements

Systems running in production, every working day

Described by function rather than by client name, as most are internal systems their owners would prefer we did not advertise. The operational problem, the solution delivered and the outcome, in each case.

Distribution, retail, healthcare, logistics, education No client data published
Case studies

Six engagements, and the operational problem each was commissioned to resolve

Different sectors, one recurring complaint: the numbers reside in four systems, and no two of them reconcile.

01 / Distribution

Multi-site distribution ERP

PHP, MySQL, React Inventory, ledgers, receivables, payroll Multiple sites, one database

Problem

Inventory counted per site in separate books, party balances held in a spreadsheet only one person could open, and receivables pursued whenever someone remembered rather than on a schedule.

Solution delivered

A single system holding items, procurement, sales and party accounts across every site, with transfers acknowledged at the receiving end and sales targets and expenses posted to the same ledger.

Outcome

Closing stock now reconciles to the trial balance, and any variance resolves to a list of source documents. The overdue report is generated from the ledger rather than assembled manually each month.

Full ERP specification
02 / Pharmaceutical and clinical

Pharmacy operations with batch and expiry control

PHP, MySQL, React Counter transactions and inventory unified Batch, expiry, daily reconciliation

Problem

Expiry dates tracked on shelf labels and in individual memory, write-offs discovered only when a customer was handed expired stock, and daily takings reconciled by counting the drawer against an estimate.

Solution delivered

Batch and expiry held per item per site, procure-to-pay against the supplier account, counter transactions running on the same inventory figures, and a daily close that produces the day book.

Outcome

Near-expiry stock surfaces as a report weeks in advance rather than a write-off after the event, and the counter and the inventory ledger ceased to be two competing versions of the truth.

Inventory specification
03 / Retail

Retail point of sale with an offline queue

PHP, MySQL, React Barcode and keyboard driven Thermal receipts, shift reconciliation

Problem

Trading halted whenever connectivity did, which in practice meant a queue at the counter and totals recorded on paper for later re-entry, inaccurately.

Solution delivered

A keyboard-driven counter that continues trading with no connectivity and synchronises queued transactions in sequence on restoration, with returns bound to the original transaction number and a shift close against a counted drawer.

Outcome

The counter no longer depends on connectivity, and the printed shift total is auditable because it derives from the same records as the management report.

Full point of sale specification
04 / Field sales

Field sales CRM with scheduled follow-ups

PHP, MySQL, React Leads from WhatsApp, telephone and web Owner and next action on every record

Problem

Enquiries arriving across three channels into no single pipeline, quotations promised in conversations that were never recorded, and no means of establishing which source justified its marketing spend.

Solution delivered

A single pipeline with an owner and a scheduled next action on every record, stages named by the business rather than by us, approved WhatsApp templates dispatched from the record, and conversion reported by source, stage and owner.

Outcome

Account ownership and interaction history are fully attributable, and overdue follow-ups are a report rather than a dispute at the Monday meeting.

Full CRM specification
05 / Marketplace sellers

Seller operations over vendor APIs

PHP, MySQL, vendor APIs Inventory and pricing synchronisation Reorder planning from sales velocity

Problem

Inventory maintained twice, once in the marketplace account and once in a spreadsheet, with the divergence surfacing as oversold orders and capital tied up in stock that was not moving.

Solution delivered

A synchronisation service that retrieves inventory and orders from the marketplace and posts price and quantity changes back, with reorder quantities derived from actual sales velocity rather than judgement.

Outcome

A single source holds the authoritative quantity, changes are posted in batch rather than re-keyed listing by listing, and the reorder schedule arrives before the shelf is empty.

06 / Messaging

WhatsApp automation integrated with a CRM

PHP and Node, WhatsApp Business API Approved templates, delivery reports Triggered by schedule or status change

Problem

Order updates, payment reminders and statements typed individually by staff with higher-value work available, and no subsequent record of who had been notified of what.

Solution delivered

Approved templates dispatched by the system on a scheduled date or a status change, statements and invoices attached as PDF, delivery reports written back, and responses recorded on the customer account.

Outcome

Reminders are dispatched irrespective of whether anyone remembered, and every message is held against the record it belongs to, which resolves most disputes before they escalate.

Standard systems

Where several of these engagements share a common base

ERP, CRM and point of sale are commissioned often enough that the standard module specification is documented. Anything specific to your sector is built on top of it.

ERP8 modules

Inventory, procurement, ledgers and personnel

Items and batches, procure-to-pay, party accounts, financial reporting, with a full audit trail behind all of it.

ERP detail
CRM8 modules

Leads, follow-ups and pipeline

Capture and assignment, stages you define, approved messaging from the record, and conversion reporting by source.

CRM detail
POS8 modules

Counter, offline queue and reconciliation

Barcode transactions, an offline queue synchronised in sequence, thermal receipts and a shift close against a counted drawer.

Point of sale detail
0Modules per standard deployment
0Weeks to first release
0Source code ownership
0Day warranty period
Wider portfolio

Other systems delivered

The pattern repeats across sectors: inventory, receivables, payables, and a decision-maker who needs the position without consulting three people.

01Education administrationFees and arrears, attendance, assessment, payroll and parent communicationsPHP / MySQL
02Freight and logisticsConsignments, driver settlements, landed cost and the customer invoice ledgerPHP / MySQL
03E-commerce with paymentsCatalogue, basket, card and wallet checkout, invoicing and delivery trackingPHP / MySQL
04Clinical and patient recordsAppointments, consultation notes, prescriptions, billing and daily collectionsPHP / MySQL
05Loan and instalment managementSchedules, receipts against instalments, arrears ageing and recovery reportingPHP / MySQL
06Payroll and attendanceShifts, salary advances, sales commission and the monthly payslipPHP / MySQL
07Service desk and ticketingTickets with named owners, responses by email and WhatsApp, and SLA reportingPHP / MySQL
08Executive dashboards and reportingA single view of figures previously reconciled across four separate filesPHP / React
Next step

If one of these describes your position, it is very likely your engagement.

Describe the operation in your own words. You receive a written scope, a fixed price and a delivery schedule in return, typically within one business day.

Submitting your enquiry