Skip to content
DBAI

Case study · E-commerce platform

Test the platform before a client's revenue depends on it.

DBAI builds stores on WooCommerce. Before moving a client to Payload CMS and its new commerce plugin, we built a complete store on it, ran Stripe test charges through it, wrote down every gap, and fixed each one in our own code. Then we loaded a luxury retail client's real catalog to see it at full size.

Project
Payload Commerce
Industry
E-commerce · WooCommerce replacement
Context
A sample store on the official Payload e-commerce template, built with a client's permission to use its catalog. Stripe runs in test mode, so the store takes no real orders.

The question

Could Payload and its commerce plugin replace WooCommerce for a real store? The plugin is in beta, so the answer had to come from a working store rather than from the documentation.

Own the stack
Code, data and hosting in accounts the store owns, with no plugin licences to renew and no platform fee on each sale.
Keep hosting cheap
The database bills for the time it is awake, so it has to sleep while nobody is shopping, even with crawlers visiting every page.
Know the gaps first
Every missing feature and every bug had to be found, costed and fixed before a client's sales relied on it.

The starting point

Platform
The official Payload e-commerce template and a beta plugin, pinned at version 3.90.2.
Checkout
The plugin creates a Stripe payment for the cart and records the order. Shipping, tax, discounts and order email are not included.
Template
It failed a production build on type errors, stored uploads on a disk Vercel does not keep, and hard-coded US dollars across the storefront.

The approach

Extend the plugin through its own options and hooks, never by forking it. Compute every price on the server. Record each decision and each test as it happens, so the verdict can be checked.

From template to store

  1. 01

    Harden the template

    Fixed the build errors, moved media to Vercel Blob served straight from its CDN, and fixed the template's robots file, preview path and cache refreshes.

  2. 02

    Fill the commerce gaps

    Shipping methods, a tax rate and promo codes in one server-side pricing hook, itemised on every order. An order confirmation email, sent once per order.

  3. 03

    Fix the plugin's bugs

    A server-side stock check, because the plugin's own check never runs. A fix for guest carts losing their secret at checkout. Page refreshes after stock changes that skip the plugin's hooks.

  4. 04

    Load a real catalog

    A client's live WooCommerce catalog, read through its public Store API and seeded into Payload with its variants, categories and product images.

AI in the delivery process

Gated phases
Claude Code built the store phase by phase from a written brief. Each phase stopped at a gate with its evidence, and the next began only on the owner's approval.
Decisions on the record
Every choice and workaround went into an append-only decisions log, with the plugin version it applies to and the hooks to re-test on any upgrade.
Tested like an attacker
Test payments were sent with a tampered cart total and with an out-of-stock item. The plugin ignored the tampered total. The out-of-stock item exposed the missing stock check, which we then fixed.

The stack

PAYLOAD CMS
Products, orders, customers and the admin, pinned to an exact version
PAYLOAD COMMERCE PLUGIN
Carts, payments, orders and transactions, extended through hooks rather than forked
NEXT.JS + REACT
The storefront, with product pages prebuilt and refreshed when a product changes
NEON POSTGRES
The database, capped at a quarter of a compute unit and asleep after five idle minutes
STRIPE
Payments and signature-checked webhooks, in test mode
VERCEL + VERCEL BLOB
Hosting, a rate limit on admin and API writes, and product images from the CDN

The live experience

The sample store runs in production on Vercel with the client's catalog and Payload's admin. Stripe stays in test mode, so it takes no real payments, and we show it to prospective clients on request rather than linking it here.

What shipped

A verdict and a working store. These figures are properties of the build, recorded in the project's test log between September and October 2026. They are not sales results.

Verdict
Not ready for a revenue-bearing store as the plugin ships. Ready for a pilot when our fixes are carried and versions are pinned.
Checkout
A test order with shipping, tax and a promo code charged $46.79, matching its itemised order to the cent. Each payment settles its order once.
Catalog
172 products, 198 variants and 17 categories from the client's live store, every product page prebuilt and returning 200 in production.
Effort
An estimated four to six engineer-days on top of the official template, before Stripe Tax or a multi-currency storefront.
Product
The build is now Payload Commerce: a template for teams with a developer, or a DBAI integration fitted to the store.

Thinking about leaving WooCommerce?

We have tested the replacement. Bring us your catalog and we'll scope the move.

Book a Discovery Call