I replaced most of a dev team with Claude Code to build a production e-commerce store. Here's what broke.
The author used Claude Code to write most of a WordPress/WooCommerce e‑commerce site for a women’s clothing brand. The project synced real‑time inventory from a 1C ERP, matched a pixel‑perfect React prototype, and stayed within a tight budget. Key lessons include the need for explicit design rules,…
When a boutique women’s apparel brand needed a new online storefront that reflected an existing React prototype, the author faced a classic budget constraint: no license fees, no enterprise CMS, and a requirement for real‑time inventory sync with a 1C ERP system that only speaks XML. The solution was to build a custom WordPress site from the ground up, with Claude Code generating the bulk of the code while the author handled architecture and review.
Why WordPress and WooCommerce?
In Russia, the dominant commercial CMS for retail is Bitrix, which ships with an ERP‑ready module and a network of integrators. For a single‑location boutique, the cost of a Bitrix license, annual renewal, and integrator fees would have matched the entire budget for an open‑source build. WordPress, combined with WooCommerce and its block‑based theme system, offered a zero‑license alternative that could be tailored to the exact design specifications of the client’s prototype.
Design‑First Architecture
The client’s prototype demanded four precise colors, two typefaces, an 8‑pixel spacing scale, and no border radius except for pill‑shaped tags. To enforce this, the author created a theme.json token file that WordPress turned into CSS variables. Every stylesheet referenced only these variables, eliminating accidental design drift. The theme was built as a full‑site‑editor (FSE) block theme, avoiding page‑builder plugins that would add bloat and lock the design to a vendor’s release cycle.
Front‑end logic was written in plain ES modules, with no jQuery. Features such as the mini‑cart used the Store API, scroll animations leveraged IntersectionObserver, and filter state was preserved in the URL via history.pushState. All of this kept the stack lightweight and maintainable.
Claude Code as a Co‑Developer
Claude Code was not a replacement for a developer; it was a teammate that wrote most of the code. The author provided a comprehensive CLAUDE.md file that listed design constraints and coding conventions. This file served as a memory aid, ensuring that the LLM did not introduce new colors or radius values. When the LLM needed to generate a new shade, it derived it from existing tokens using oklch() rather than hard‑coding a hex value.
Because Claude’s context resets between sessions, the author maintained a markdown log of lessons learned—such as the fact that WooCommerce Blocks no longer loads jQuery. Each new session began with this log, preventing the model from repeating past mistakes. Verification was built into the workflow: Playwright tests ran through the live site, captured screenshots, and compared them to the prototype. This approach caught subtle bugs, like a desktop‑only product link issue caused by setPointerCapture in the image carousel.
Synchronizing with 1C ERP
The ERP exported inventory data via CommerceML, a Russian XML standard. The author wrote a WordPress plugin that parsed these files and updated product variations in real time. Three critical bugs emerged:
- Stock counts were wrong because the parser expected a flat quantity field and silently skipped nested warehouse data.
- Color and size attributes were handled by separate code paths, causing mismatched variations.
- Delta exports rebuilt entire variation sets, deleting missing variations from previous chunks.
Each issue was fixed by adjusting the parser logic, adding a cleanup pass, and ensuring that attribute slugs were human‑readable. The result was a reliable sync that kept storefront numbers in lockstep with warehouse inventory.
Outcome and Lessons Learned
The final product was a fully functional, pixel‑perfect e‑commerce store that matched the React prototype, supported real‑time inventory, handled local payment and privacy requirements, and ran on a zero‑license stack. The project took weeks, not months, and stayed within the client’s budget. The key takeaways are:
- Explicit design rules and persistent memory are essential when using LLMs for code generation.
- Verification through automated browser tests prevents subtle regressions.
- Custom ERP integration requires deep understanding of the XML protocol and careful parsing.
Claude Code proved to be a valuable partner, but only when the workflow around it was carefully engineered.
Why it matters
This case study shows that AI‑assisted development can deliver high‑quality, custom e‑commerce solutions on a tight budget, provided that design constraints, memory, and verification are rigorously enforced.
Key points
- Custom WordPress theme built from scratch to match a React prototype
- Claude Code generated most code but required explicit design rules
- Real‑time inventory sync with 1C ERP via CommerceML
- Playwright tests caught subtle UI bugs before launch
- Zero‑license stack saved the client from costly enterprise fees
Frequently asked questions
Can I use Claude Code for my own e‑commerce site?
Yes, but you’ll need to define clear design constraints, maintain a memory log, and set up automated verification tests.
What if my ERP uses a different protocol?
You’ll need to write a custom parser for that protocol, just as the author did for CommerceML.




