Skip to main content

— Selected work

Seventy stores, one platform

Designed and built the B2B marketplace layer that unified seventy independent retailers under a single ordering platform, with per-retailer pricing, catalogues, and checkout rules.

Industry
B2B Marketplace
Region
Europe
Year
2023
Role
Lead engineer
Magento 2 PHP MySQL RabbitMQ Elasticsearch Docker AWS

A European wholesale distributor had seventy retail partners, each with individual pricing agreements, product access rules, and order workflows. Their existing system was a combination of spreadsheets, email confirmations, and a legacy ERP with no self-service ordering. Sales reps were spending a third of their time processing orders that should have been automated.

The problem

B2B Magento implementations tend to underestimate the complexity of customer-specific pricing. The standard Magento shared catalogue and tier pricing features cover maybe 40% of real-world B2B requirements. The other 60% — contract pricing, volume breaks by customer group, negotiated line-item overrides — requires custom work.

Multi-language, multi-currency, and VAT handling across seven EU countries added another layer of complexity that the standard Magento multi-store setup doesn’t handle gracefully out of the box.

What we built

The customer segmentation model was rebuilt from scratch — each retail partner got a dedicated customer scope with their own catalogue visibility, pricing rules, and checkout configuration. A custom pricing engine evaluated applicable price rules in priority order, allowing contract pricing to override shared catalogues which overrode standard pricing.

Order processing was moved to an async queue via RabbitMQ. The ERP integration consumed order events and wrote back fulfilment status, tracking, and invoice data. This decoupled the storefront from ERP availability — orders placed while the ERP was down for maintenance were queued and processed in sequence on recovery.

A custom admin module gave the internal sales team visibility into each retailer’s account: pending orders, pricing tiers, catalogue access, and the ability to place orders on behalf of customers for phone-in orders.

Outcomes

Sales rep time spent on manual order processing dropped by roughly 60% in the first quarter after launch. The platform processed over two thousand orders in its first full month of operation. Three retailers who had been ordering by phone exclusively converted to self-service within the first six weeks.

The async order processing architecture proved its value within two months when a planned ERP maintenance window ran long — the queue held four hours of orders without any customer-facing impact.

← All work