Case study · Odoo

Odoo 19 for ExamYard, a publisher that sells online and by cash on delivery

ExamYard was running sales, stock and accounts in separate places. We put all three into one self-hosted Odoo 19, so an order on the website ends as an invoice, a stock movement and a line in the owner's dashboard without anyone retyping it.

The client

ExamYard (examyard.com), a Cambridge O Level, IGCSE and A Level exam-prep publisher selling printed books and online subscriptions, with orders arriving from its own website, by cash on delivery and from an online payments platform. ExamYard is built and run by the Inertia Automate team. It is our own work, so we can show it in full.

What needed to change

  • Website orders entered into the books by hand, one at a time.
  • Stock bought from printers with no reliable cost per book.
  • No single view of what sold, by class and subject, and what it cost.
  • Advertising spend on Meta and Google kept in a separate spreadsheet.

What we built

No.PartWhat it means in practice
01Orders become invoicesA custom module pulls paid website orders into Odoo as customer invoices, with the right journal for each payment route, including a separate journal for payments taken in US dollars.
02Bills become stockPrinter bills are received against purchase orders, so stock goes up when the bill is posted and every book carries a FIFO cost.
03Owner dashboardSales by class and subject, stock on hand and margin on one screen, read from the live database rather than an export.
04Advertising spend in the ledgerA small app brings Meta and Google ad spend into Odoo, so cost per sale sits next to the sale.
05Daily stock reportEach morning the stock position is posted to the team's chat channel, so nobody has to log in to know what is running low.

How it runs now

The publisher runs its daily business on this system. It is Odoo Community, self-hosted on Docker behind nginx on the publisher's own server, so there is no per-user licence and the data stays theirs.

Built with: Odoo 19 Community, Python custom module, PostgreSQL, Docker, nginx.

WhatsApp

Book a meeting

Free 30-minute call