Projects P.01

IDEATECH CMS

IDEATECH CMS is a modular e-commerce platform from IDEATECH, the company where I am CTO. I designed and built it, and a team works on it alongside me today. A shared core, CMS and e-shop are extended by over 40 modules, and client shops run on it.

Role
Design, development, operations
Period
2018 → present
Scope
Modular e-commerce platform with a CMS, admin, modules and client shops
Status
In production

E-shop development at ideatech.cz ↗

A live client shop, Kubisport, the tent category, as an anonymous visitor sees it.
Fig. 1 · A live client shop, Kubisport, the tent category, as an anonymous visitor sees it.

The brief

The platform exists so that client shops are not built from scratch every time. Kubisport, La Notte and Vrtal run on it, for example. The core handles users, roles, e-mails and the API, the CMS handles pages, menus and sliders, and the e-shop handles products, orders, stock and discounts. Carriers, payments, price comparison sites and accounting are modules, and there are over 40 of them.

We started in 2018 and the platform is still being developed. I designed and built it, and a team works on it alongside me today. I am responsible for operations too.

What is worth mentioning

01

One system for e-shops, each takes only its own modules

If every client had their own copy of the code, every fix would have to be made several times. So the platform has a shared core, admin and e-shop, and everything else, such as carriers, payments, price comparison sites or accounting, is a module. A particular shop is a small project that puts together the modules it needs. A fix to the core is made once and each shop picks it up when its turn comes. Kubisport, La Notte and Vrtal look completely different in the screenshots and still stand on the same foundation.

02

A shop can be customised without touching the core

Every shop wants something slightly different: other order states, other e-mails, a different choice of what the admin shows at all. The differences are set by configuration, and whole areas of the admin can be switched off: a switched-off area disappears from the menu and its address finds nothing. Custom behaviour is attached to the core based on events, such as a change to an order or a product, and an e-mail template can be swapped the same way. The core stays shared, which is why it can keep being updated.

03

API and MCP for catalog, prices and stock, every change can be reverted

The catalog, prices and stock can be read and changed through an API and through MCP, which is the standard way AI tools work with a system. Access is given as a key per area, so a tool gets only what it is allowed to. Every write is recorded and can be reverted with a single command.

What it looks like

Home page of the La Notte shop: top bar with search, category menu and a large banner with winter sets
Fig. 2 · Home page of the live client shop La Notte on the same platform, as an anonymous visitor sees it.
Home page of the Vrtal shop: yellow header with search, drinks category menu and a banner with a bottle of whiskey
Fig. 3 · Home page of the live client shop Vrtal on the same platform, as an anonymous visitor sees it.
Shop admin: left menu and a product table with filters, prices, status and action buttons
Fig. 4 · Admin: product list. Sample data.
Shop admin: product edit form with tabs, a text editor and side panels
Fig. 5 · Admin: editing a product.

What it runs on

  • PHP 8.2
  • Nette
  • Latte
  • Doctrine ORM
  • Contributte DataGrid
  • Symfony EventDispatcher
  • Elasticsearch
  • Docker

The core, CMS and e-shop are shared packages in a private registry, modules add carriers, payments and accounting, and each client shop pulls only the versions and modules it needs.

IDEATECH CMS architecture The core, CMS, e-shop and modules are separate packages in a private registry. The core holds users, roles, e-mails and the API, the CMS holds pages, menus and sliders, the e-shop holds products, orders, stock and discounts, and modules add carriers, payments, price comparison sites and accounting. Each client shop, for example Kubisport, La Notte and Vrtal, pulls only the versions and modules it needs from the registry and stores its data in its own database with search. Modules talk to external services: carriers, banks, comparison sites and the accounting program. CORE CMS E-SHOP MODULES PRIVATE PACKAGE REGISTRY CLIENT SHOPS DATABASE AND SEARCH EXTERNAL SERVICES

I describe how I build systems like this on the How I work page.

Want to build something similar?

Get in touch →