Skip to content
Marko Ivanovski

Odoo for a hospitality business

Macedonian accounting rules, exchange rates and a point-of-sale integration for a business running two venues on Odoo 19.

category
client
year
2026
status
completed
role
Freelance developer
  • Odoo
  • PostgreSQL
  • Python

What it is

Freelance work extending Odoo 19 for a Macedonian hospitality business with two venues, each with its own warehouses, point-of-sale sessions and journals. Most of it is the local rules Odoo does not ship with: per-warehouse stock valuation for the tax administration, a Macedonian chart of accounts, daily exchange rates from the National Bank, and partner details filled in from the tax portal by tax number.

Sales reach Odoo from the venues' Ecash point-of-sale system through a webhook receiver.

  • Built per-warehouse stock valuation, so each warehouse posts to its own account as the tax administration requires.
  • Built a webhook receiver that brings Ecash point-of-sale transactions into Odoo.
  • Shipped reusable modules for daily National Bank exchange rates, partner autofill from the tax portal by tax number, and an unofficial Macedonian localisation.

What I learnt

  1. Odoo 19 removed the stock valuation layer and changed how controllers and scheduled jobs are declared, so the valuation module had to override how accounting moves are created instead.

What I would do next

Supporting the business after delivery as new requests come in.