cat ~/production/bookstore-e-commerce-over-an-existing-erp/REPORT.md

Bookstore E-commerce over an Existing ERP

A storefront, admin dashboard and API sitting in front of the client existing ERP, which stays the source of truth.

role Tech Lead, Backend and Integrationtimeline 2025category platformclient A bookstore and stationery chain

Problem

A bookstore chain already ran products, stock and pricing in an established ERP. They needed a modern storefront and dashboard, but replacing the ERP was never on the table and duplicating its data would create two versions of the truth.

Approach

Built the platform explicitly in front of the ERP rather than beside it. The ERP remains authoritative for catalogue, stock and price; the platform owns the customer experience, carts, orders and content. Three tiers shipped: the API, an admin dashboard, and a storefront.

Outcome

The client keeps running their business in the ERP their staff already know, and customers get a storefront that reflects it.

3Tiers shipped · API, admin dashboard, storefront
ERPSource of truth · deliberately not replaced
architecture --explain

How it's built

The ERP is upstream and authoritative. The platform reads catalogue and stock from it and pushes orders back, with the customer-facing layer owning everything the ERP has no opinion about.

Sit in front of the ERP rather than migrate off it

The client staff already operate it daily. Migrating a working ERP to gain a storefront is a large project with no upside for the people doing the work.

The platform inherits the ERP data model in places where a greenfield schema would be cleaner.

related --by-stack

Adjacent systems

REL-002 / platform

E-commerce and ERP Backend

GraphQL commerce backend where the client rearranges their own storefront from the dashboard, over an inventory ledger with a single mutation point.

REL-003 / platform

Hardware Retail Platform with ERP Sync

Storefront, app and operations dashboard sitting in front of an external ERP, with data flowing both directions and staying consistent.