E-commerce / Web

Todome

A multilingual, multi-country e-commerce platform for gates, fences and gate automation, built on a Symfony ERP and API with a Next.js storefront and a React admin backoffice.

Context

Gates, fences and gate automation are not commodity e-commerce. Products are configurable, dimensions and options change the price, and the catalogue has to be maintained by the people who know the products rather than by developers. Once more than one language is added, the content model becomes the hardest part of the build.

A storefront like this is judged on two things at once: how fast a category page loads for a visitor who arrived from search, and how quickly someone in the backoffice can change a price without asking for a deployment.

What we built

The platform is split into three parts — an API, a storefront and a backoffice — so the catalogue has a single source of truth and the public site stays a presentation layer.

  • Symfony ERP and API — the domain lives here: catalogue, product configurators (gates, fence panels, automation kits, energy products), pricing rules, quotes, orders, invoices and the translations behind every locale. The same application still serves the legacy backoffice while the new one takes over.
  • Next.js storefront — the public shop, rendered server-side so category and product pages are indexable and fast, with localised routes per language.
  • React admin backoffice — a separate single-page app where the catalogue, translations, prices and orders are managed day to day; catalogue changes go live without a deployment.
  • Multilingual content model — translations are part of the data model rather than a layer bolted on afterwards, which is what keeps a second or third language from doubling the maintenance work. The storefront also resolves domain, country and currency per request, so one codebase serves several markets.
  • Integrations — several payment providers and bank transfer, carriers, two-way order and status sync with an external ERP, product feeds for ad platforms, and machine-assisted translation of catalogue content.

Stack

Symfony 8 on PHP 8.4 with Doctrine and MariaDB, Symfony Messenger over Redis for imports, feed generation and email, a Next.js storefront with localised routes, and a React/Vite backoffice. It is a deliberately boring split: PHP/Symfony where the business rules and the backoffice live, React/Next.js where rendering speed and SEO are decided.

Status

Private engagement. Detailed metrics and client references are available on request under NDA.

Have something worth building?

Start a project