Senior Odoo ERP Developer — 3+ years building production modules and real platform integrations.
I build custom Odoo modules from scratch and connect Odoo to external platforms via REST APIs and Webhooks. My work covers POS, Sales, Invoicing, Accounting, Inventory, CRM, Real Estate, and live integrations with Salla and Zid e-commerce platforms.
40+ custom modules · Odoo 15 → 19 · Production only
| Version | Status | Notes |
|---|---|---|
| Odoo 15 | ✅ | Custom modules · inheritance patterns |
| Odoo 16 | ✅ | Module migration · OWL v2 adoption |
| Odoo 17 | ✅ | OWL v2 · API updates · asset pipeline |
| Odoo 18 | ✅ | Full OWL v3 · major POS rewrite |
| Odoo 19 | ✅ | Latest features · active upgrades |
Full bidirectional sync between Odoo backend and Salla e-commerce
| What | How |
|---|---|
| Products & Prices | Push from Odoo → Salla on create/update |
| Orders | Pull from Salla → auto-create sale order in Odoo |
| Stock / Inventory | Real-time sync — Odoo stock moves update Salla availability |
| Customers | Auto-create res.partner on new Salla order |
| Webhooks | Salla fires events → Odoo HTTP controller processes instantly |
| Custom Module | Dedicated Odoo module with settings, sync logs, and error handling UI |
Full bidirectional sync between Odoo and Zid (Saudi e-commerce platform)
| What | How |
|---|---|
| Products & Prices | Push from Odoo → Zid with variant mapping |
| Orders | Pull from Zid → auto-create sale order + customer in Odoo |
| Stock / Inventory | Real-time availability sync via Zid API on every stock move |
| Customers | Auto-create/update res.partner from Zid buyer data |
| Webhooks | Zid order events → instant processing via Odoo controller |
| Custom Module | Dedicated module with OAuth token management, sync queue, and retry logic |
Odoo 18 · Custom Application · Production
Full property management system built ground-up on Odoo 18
- Compound → Building → Unit hierarchy with configurable types (Apartment / Villa / Floor)
- Unit lifecycle:
Vacant → Reserved → Waiting → Occupied - Warranty/guarantee tracking with live expiry countdown
- Maintenance ticketing with
mail.threadaudit trail - Google Maps embedded via custom HTTP controller
- Public JSON API — available units feed for external portals
- Role-based security:
ir.ruleper sales / admin / manager group
Odoo 18 · 10+ Modules · Production
Complete POS customization suite using OWL v3 components
- Session-close screen rebuilt as structured payment summary table
- Cash/bank input embedded inline — no popup switching
- Auto-print PDF difference report on session close
- Auto-invoice on payment validation
- Pricelist defaults and restrictions per terminal
- Cash-in/out with operator-level audit log
- Real-time out-of-stock detection + cancellation flow
- Per-role discount cap enforcement
- Custom branded receipt templates with lot/serial display
Odoo 15 → 18 · Production
Extended sales and invoicing workflows across multiple client deployments
- QWeb-redesigned invoice PDF templates matching client branding
- Sale order custom fields, conditional logic, and approval flows
- Payment term automation on partner and order level
- Multi-currency handling aligned to accounting config
Odoo 16/17 · Production
Universal
.xlsximport framework with validation UI
- Import products · customers · pricelists · inventory adjustments
- Row-level validation — shows exact errors per cell
- Duplicate detection before write
- Partial success: valid rows import, invalid rows flagged
- Clean backend UI built as a custom Odoo wizard
Odoo 17/18 · Production
Custom CRM extensions for field sales teams
- Visit scheduling linked to leads with outcome tracking
- Campaign source attribution on every lead
- Customer activity timeline across all interactions
- Stage-triggered email automation
| Domain | Delivered |
|---|---|
| 🛒 POS | Session close · Payments · Receipts · Discounts · Stock · Auto-invoice · Cash in/out |
| 💰 Sales & Invoicing | Custom invoices · QWeb PDF · Sale order extensions · Payment terms |
| 📊 Accounting | Journal automation · Period closing · Analytic account integration |
| 📂 Excel Import | Products · Customers · Pricelists · Inventory — with validation UI |
| 🔗 E-commerce | Salla sync · Zid sync · Webhooks · API token management |
| 🏢 Real Estate | Projects · Buildings · Units · Warranties · Maintenance · REST API |
| 📋 CRM | Visits · Campaign tracking · Activity logs · Pipeline automation |
| 📦 Inventory | Variants · Lot/serial · Stock moves · Attribute automation |
| ⚙️ Config | System settings · Cross-app defaults · Company-level config |
models.Model—_name,_inherit,_inherits,_description- Fields:
Many2one,One2many,Many2many,Selection,Monetary,Binary,Html - Decorators:
@api.depends·@api.onchange·@api.constrains·@api.model_create_multi - Override
create()·write()·unlink()safely withsuper() _sql_constraintsfor DB-level integrity
- Multi-model workflows: sale order → contract → invoice → accounting entry
- State machines with
Selection+ action methods (action_confirm,action_cancel) - Computed
store=Truefields with performance-aware design ir.sequencefor auto-reference numbers
ir.model.access.csv— model-level CRUD per groupir.rule— row-level record isolation- Custom
res_groupslinked to menus, views, buttons - Multi-company
company_idfiltering
form·list·kanban·search·pivot— built from scratchinherit_id+xpathfor extending existing views- Smart buttons · stat buttons ·
attrsvisibility rules
useState·useRef·onMounted·onWillStartpatch()to extend core Odoo components safely- Python ↔ OWL communication via JSON
rpc - POS closing screens · payment popups · receipt templates
- Multi-page PDF reports with
t-if·t-foreach·t-call - Custom invoices · delivery notes · session closing reports
- Auto-print on workflow actions
http.Controllerwith@http.route— JSON & HTTP- Public endpoints (auth=
public) for external consumers - Request parsing · error handling · CORS
Python 3 · Odoo ORM · OWL JS (v1→v3) · QWeb · XML/XPath · PostgreSQL · REST API · Webhooks · ir.rule · mail.thread · JavaScript · Git · Linux
- 📧 ahmdelgmil@gmail.com
- 📱 +20 128 023 6328
- 💼 linkedin.com/in/ahmdelgmil