Case Study #001

GreenLeaf Garden: zero to a PAID order

A sample plant store on MergeMind Commerce: a catalog, a tax-aware checkout and a paid order on a test payment gateway. It runs on our own stack and is not a live shop.

GreenLeaf Garden is a sample store on our own stack. Its payment provider is a mock that approves every charge, so no real money moved; the customers are fictional and there is no public store address. It reached a PAID order on 22 July 2026 (order fd68cbdc, no longer in the sample data: the store was re-seeded on 23 October) and again on 27 October 2026 (order 684bfeb4), after the tax and delivery rules were corrected. Razorpay is built into Commerce checkout and unit-tested but has not been run through its real widget; see Security & Trust for what the platform supports.

The setup

A sample store, stood up on the platform

Every step below is an API call the platform actually serves — not a wireframe.

Tenant
GreenLeaf Garden

An online plant nursery — plants, planters, potting mix and tools.

Forest green / soil brown branding, set through Commerce’s own store-branding endpoint

Tenant provisioned on MergeMind Platform

Store created, branded and set to LIVE inside the platform (a status, not a public address)

Four promo codes and a flat ₹79 delivery rule, free from ₹999, set up for the store

Owner role via COMMERCE_ADMIN/WRITE/READ — the same RBAC engine on /security

Catalog — 46 sample products
Indoor plants10
Outdoor and flowering plants9
Pots and planters8
Soil and fertiliser7
Tools5
Care accessories5
Subscriptions2
Eight are featured. The pictures are generated illustrations, not photography. These are groups in the sample data; the storefront has no category navigation.
See it

An earlier look at the storefront

Captured on the first run, in July 2026. The catalog has since grown and the checkout rules were corrected; the storefront screens that go with those changes are not released, so there is no newer capture.

GreenLeaf Garden storefront homepage as captured in July 2026, when the sample catalog had 8 products

Storefront homepage, captured July 2026 on the first run (8 products then; 46 now). One Next.js build, which resolves the store from the hostname (localhost here: the dev default store).

The order

Cart to PAID, with the tax and delivery rules corrected

The second run, on 27 October 2026, through the storefront in a real browser.

Cart

One plant at ₹199. Prices include tax.

Tax

Live plants carry 0% GST (HSN 0602), so there is no tax line.

Delivery

A flat ₹79, free on orders of ₹999 or more.

Pay

The server quotes ₹278 before payment. On the mock gateway the order becomes PAID.

Order 684bfeb4 · 27 October 2026

PAID
Plant (the price includes tax)₹199.00
Tax (live plants: 0% GST)₹0.00
Delivery (flat rate)+₹79.00
Total₹278.00

The server quoted the total before payment, and the payment ran on the mock gateway. Under the original flat-18% rule the same plant, with the same ₹79 delivery, was quoted at ₹313.82 (₹199 + ₹79 + ₹35.82 GST). The corrected rules charge live plants 0% GST (HSN 0602), and prices now include tax.

First run, 22 July 2026: an order reached PAID at ₹1,107.81 under the original rules (a flat 18% GST on everything, a GREEN10 discount and ₹49 shipping). That order, fd68cbdc, is no longer in the sample data: the store was re-seeded on 23 October.

Honest status

What is real, and what is not yet

The October facts, checked against the running stack on 27 and 28 October 2026.

Real today

A sample store, GreenLeaf Garden, with 46 products, 13 fictional customers, 4 subscriptions and 15 orders, all on our own stack (counted 27 and 28 October 2026). Fourteen of the orders were seeded on 23 October under the original rules (18% GST even on plants, delivery charged even over ₹999); only the 27 October order follows the corrected rules

A checkout run in a real browser on 27 October 2026: one plant at ₹199, delivery ₹79, total ₹278, order PAID on the mock gateway

Live plants are charged 0% GST (HSN 0602), prices include tax, and the server quotes the total before payment

Delivery is a flat ₹79, free from ₹999; four promo codes; orders move through paid, shipped, delivered and cancelled

Not yet

No public store address: GreenLeaf Garden runs on our own stack and is not a live shop

The payment gateway is a mock that approves every charge. Razorpay is built and unit-tested but has not been run through its real widget; UPI would be a method inside Razorpay’s widget, which Commerce neither builds nor runs

Tax is configuration, not advice: live plants are set to 0% GST (HSN 0602) and every other product takes Billing’s default rate for India (18%; Billing has no per-state or per-product tax rule configured). A merchant’s accountant must confirm both; this is not a compliance claim

Search, a seller footer, a free-delivery progress bar and the Razorpay checkout widget exist only on an unreleased storefront branch, and the seller footer shows nothing yet because no seller profile is recorded. There is no category navigation anywhere, and there are no product reviews

Order confirmation e-mails reach only a local test inbox: there is no external mail service yet

The product pictures are generated illustrations, not photography

How it's built

One store, on a shared operating layer

The real layering behind this order — not an idealized diagram.

Storefront

Next.js. Tenant resolved from the request hostname at render time — one build serves every store.

GreenLeaf Garden (this store)
Every other Commerce tenant, same build

Gateway

Every client request enters here. Signed-in requests: JWT verified, then HMAC-signed identity headers forwarded downstream. Public storefront routes carry no JWT. Services call each other directly with an internal secret.

X-Tenant-Id
X-User-Roles / X-User-Permissions
X-Gateway-Signature (HMAC)

Commerce domain service

Owns only what's commerce-specific.

Store, branding & catalog
Cart & checkout
Orders & promotions
Shipping & tax computation

MergeMind Platform

Shared horizontal layer — the same services every vertical calls, not something Commerce reimplements.

Identity & tenant isolation
RBAC — COMMERCE_ADMIN / WRITE / READ
Billing & notification
Event log (Identity events; Commerce events not recorded yet)

Commerce doesn't reimplement identity, tenant isolation or RBAC — it uses the platform's services for them, behind the same gateway every other vertical uses. That's what makes this a proof of the platform, not just a proof of one store.

Why this matters

This is the platform-extraction story, made concrete

MergeMind Platform wasn't designed on a whiteboard. It was extracted from building MergeMind Commerce — and these runs show that extraction working: tenancy, identity and RBAC from the platform; store, catalog, promotions, shipping and order lifecycle as Commerce's own domain logic on top of it. The same foundation this store runs on is what a Build Review maps onto your product.