Web · React 18 · PHP · MySQL · Odoo V18
B2B B2B E-commerce Platform
A full-stack rebuild of a B2B wholesale e-commerce platform — modern React frontend, refactored PHP API backend, and live two-way synchronisation with an Odoo V18 ERP.
The brief
A long-running B2B wholesale platform needed a full rebuild. The existing storefront was outdated, so this work covers upgrading the backend SQL to a newer version, building a modern React frontend linked to the backend, and live two-way synchronisation with an Odoo V18 ERP — orders flow from the webshop into Odoo, while product, customer, and supporting data flow the other way.
What I built
A React 18 / Vite frontend. Mobile-first responsive design, hand-rolled CSS architecture (no utility framework), Context API for shared state, a custom hooks layer for API communication, and client-side PDF generation.
A consolidated PHP API backend. REST controllers serving the React app through the underlying PHP e-commerce framework. Business logic that had been duplicated across the codebase was lifted into a clean service layer.
Live ERP synchronisation. Cron-driven sync scripts moving data between the webshop and an Odoo V18 ERP via JSON-RPC. A centralised client library handles transport with structured audit logging, guards against schema edge cases, and idempotent order writeback.
Security & performance. httpOnly session cookies (no JWT in local storage), CSRF protection, session-fixation prevention, rate limiting on auth endpoints, and error message sanitisation. Vite code-splitting into vendor chunks, in-memory caching with sessionStorage backup, and image pre-warming for fast first paint.
Full responsive redesign. Pages reworked from desktop-only to mobile-first: sticky headers, tables that restructure across breakpoints, and mobile-friendly tap targets throughout.
Status
In progress, approaching go-live. Remaining work covers real-time two-way data sync, additional admin features, ongoing manual QA, and deployment / DevOps.
Got a similar problem to solve?
Tell me what you’re working on. One day’s turnaround on a first response.
Start a conversation →