← All case studies

A Hybrid Headless Build That Let a Marketing Team Ship E-Commerce Landing Pages

Client
An international tour operator with a custom e-commerce platform
Industry
Travel / E-commerce
Engagement
Project engagement
Involved
WordPress REST API Custom plugin development Headless architecture Server-level routing

The situation

An international tour operator ran a custom e-commerce platform at its root domain, with WordPress serving the content marketing blog in a subdirectory. Marketing wanted a series of high-converting attraction landing pages that looked native to the e-commerce application, pulled live tour data, pricing, and availability from the company’s proprietary database, mixed in related editorial content from the blog, and could be created by the marketing team themselves. The pages also had to live at a clean top-level path without moving either existing system.

What I did

I designed a hybrid headless architecture that used WordPress as a control panel rather than a renderer. I extracted the e-commerce application’s HTML and CSS into a standalone high-performance frontend, then built a custom WordPress plugin where marketing administrators create attraction pages by entering tour IDs and assigning blog tags. No developer involvement per page.

At request time the frontend aggregates two sources: a large JSON feed from the client’s proprietary tour database for real-time pricing and availability, and the WordPress REST API for related editorial content and metadata. Server-level routing rules serve the pages at the desired top-level path while the application communicates behind the scenes with the WordPress installation in its subdirectory and the external database API. Visitors see one seamless site; the systems underneath never moved.

The outcome

Marketing gained a self-service pipeline for landing pages that are visually indistinguishable from the core e-commerce product but managed in WordPress. The build demonstrates the pattern I reach for with established platforms: leave working systems where they are, and put a thin, well-routed layer between them instead of forcing a migration.

Dealing with something similar?

Start a conversation