Skip to main content

E-commerce Demo Platform

Commerce, built for Mars

Multi-supplier sourcing. Dynamic pricing. Full order lifecycle. All operational.

The Bigger Picture

More Than a Demo

Whether you're managing a Martian colony or stocking up for your next extravehicular adventure, Supplymars is your destination for everything from habitat maintenance to cutting-edge scientific equipment.

Behind the fiction is a fully operational platform built by a developer with over 25 years of experience — from co-founding one of the UK's largest online retailers to leading engineering teams and building the tools that powered a fast-growing business. This project is a demonstration of that experience in action: clean architecture, real domain complexity, and thoughtful design.

Read the full story

The Platform

What's Inside

Product Catalog

Structured catalogue with hierarchical categories, rich product pages, image galleries, and manufacturer tracking across the full inventory.

Supplier Network

Multi-supplier sourcing per product with cost comparison, real-time stock visibility, and automated best-source selection.

Order Management

End-to-end order lifecycle with line-item tracking, automatic supplier allocation, and order splitting across multiple sources.

Purchase Orders

Demand-driven purchase orders with full state-machine lifecycle — from allocation through acceptance, shipping, and delivery.

Pricing Engine

Three-level markup cascades across product, subcategory, and category with multiple pricing models, VAT management, and event-driven recalculation.

Reporting & Analytics

Revenue, margin, and operational dashboards powered by two-layer aggregation — daily granular records rolled into pre-computed summaries.

What's Under the Hood

Real Operational Complexity

01

Multi-supplier Sourcing

Each product aggregates multiple suppliers. A best-source algorithm selects the lowest-cost option with available stock, keeping allocation optimal as prices and inventory shift.

02

Dynamic Pricing Cascades

Markup rules cascade from category down to individual product, with six pricing strategies. When supplier costs change, sell prices recalculate automatically via domain events.

03

Order Line Splitting

When no single supplier can fulfil the required quantity, order lines split across multiple sources automatically. Overall order status derives from the lifecycle of each resulting purchase order.

04

Purchase Order Lifecycle

Purchase orders follow a state-machine lifecycle — allocated, accepted, shipped, delivered. Each transition propagates domain events that update order statuses, stock levels, and reporting.

05

Simulation Engine

Console commands simulate the full business cycle — orders, supplier fulfilment, stock fluctuation, and reporting aggregation — producing realistic data without manual setup.

Built With

Modern Stack, Proven Patterns

DDD Architecture

A modular monolith where each area of the business owns its own logic. Commands and queries stay separate. Contexts communicate through domain events, not tangled dependencies.

PHP 8.5 + Symfony 8

Symfony handles everything from forms and security to async messaging via RabbitMQ. Console commands drive a full simulation engine. A REST API with OpenAPI docs sits alongside the web UI.

Hotwire + Tailwind

SPA-like speed without a JavaScript framework. Turbo Frames handle navigation, Stimulus adds interactivity where needed, and Asset Mapper eliminates the build step entirely.

Infrastructure

MySQL 8.4 for persistence, RabbitMQ for async domain event processing, Redis for caching and sessions, and S3 for file storage. Containerised and deployed on AWS.

The Demo

See It in Action

A fully operational platform, not a prototype. Explore the real interface.

Product Catalog

Every product, beautifully organised

Rich product pages with images, live pricing, multi-supplier stock levels, and 30-day sales trends — everything operational staff would need at a glance.

Order Management

From order to doorstep, fully tracked

Full order lifecycle from placement through supplier allocation, multi-vendor fulfilment, and delivery — with real-time status tracking across every stage.

Reporting Dashboard

The numbers, instantly

Revenue, margins, customer segments, and geographic breakdowns powered by pre-computed summaries for instant dashboard loading at scale.

Get Involved

Explore the Code

The full source is on GitHub. Explore the architecture, read the story behind it, or get in touch.