CMS Comparison

Payload Ecommerce Alternative

Payload's ecommerce plugin gives a Next.js store products, carts and Stripe. Shipping, tax and discount codes are left to you. Here is what Cmssy ships instead, and where Payload is still the better choice.

C
Cmssy Team
8 min read

A Payload Ecommerce Alternative for Next.js

Payload's ecommerce plugin covers products, carts and Stripe. This is where it stops, what Cmssy ships instead, and where Payload is the better choice.

Who This Page Is For

If you are building a Next.js store on Payload, you chose it for good reasons. It is open source, it runs inside your Next.js app, and your data sits in your own database. Its ecommerce plugin adds the store. This page is for the point where the plugin stops and your backlog starts.

What Payload's Ecommerce Plugin Covers

Payload's docs say the plugin "is currently in Beta and may have breaking changes in future releases". It ships:

  • products with variants
  • carts, orders and transactions
  • addresses linked to your customers
  • a payment adapter pattern - Stripe is the adapter available today
  • multiple currencies
  • inventory tracking, on by default
  • React utilities for the frontend

The docs also say the plugin "does not handle shipping, taxes or subscriptions natively" - you build those yourself with its collections and hooks. Discount codes are not in the plugin docs. In Payload's own RFC for the plugin (GitHub discussion #14239), discount codes are called "quite a common request", and commenters single out shipping as well.

What Cmssy Ships

Cmssy is a hosted headless CMS with commerce in the core. Products are records of a model you define, and the model's Product tab says which fields play name, price, SKU, tax rate, inventory and the variant axes.

  • Discounts - percentage, fixed-amount and free-shipping codes, with start and end dates, a minimum subtotal and a total usage cap.
  • Shipping - methods with rules per country, a subtotal window and a free-above threshold. The cart returns only the methods that apply to the address and subtotal.
  • Tax - tax rates you set, prices with or without tax, and totals computed on the server.
  • Stock - "available" means on hand minus what open carts reserve, with a low-stock threshold your storefront can filter on.
  • Order desk - manual orders and line edits, partial payments and partial refunds, cancellation, fulfillment states, invoices, a configurable pipeline and ten order.* webhooks.
  • Customers - accounts with suspension, B2B companies, price tiers, quote requests and PO numbers at checkout.

Your app renders all of it - Cmssy does not host your site. The SDKs cover Next.js, React, Astro and Remix, or you call the GraphQL delivery API directly.

The Agent Part

Payload has an official MCP plugin too, so "has MCP" is not the difference. Payload's plugin exposes collections as find, create, update and delete tools, plus prompts, tools and resources you write yourself. Cmssy's MCP server ships store verbs out of the box: refund_order, transition_order_fulfillment, create_discount, edit_order.

Refunds, order cancellations and page deletes do not run on the first call. The server answers with a one-line summary and a one-time reference, and acts only when the call is repeated with that reference after a human approves. The same tools run in the admin's built-in assistant on a model key you bring - Anthropic, OpenAI, Google, Mistral or Groq. The MCP server and the assistant are on every plan; cart and checkout start at Pro.

Where Payload Is Better

  • Open source (MIT) and self-hosted - your database, your servers, no vendor between you and your data. The Cmssy service is closed source and hosted only; the SDKs and the MCP server are MIT.
  • One deploy - Payload lives inside your Next.js app. Cmssy is a separate service your app calls.
  • Multiple currencies - Cmssy prices a cart in one currency and does not do regions. Selling in two currencies means one product source per currency.
  • Payments wired in - Payload ships a Stripe adapter. Cmssy records payments and never holds a payment key, so you integrate Stripe yourself. Our next-storefront example does it with one webhook route.
  • Admin customisation - you extend Payload's admin with your own React components. Cmssy's admin is opinionated.
  • Cost at zero revenue - Payload is free to run on your own hosting. Cmssy's cart needs Pro at $15/month ($12.50/month billed annually); the free Hobby plan has no cart.

Comparison

FeatureCmssyPayload ecommerce plugin
HostingHosted serviceSelf-hosted, inside your Next.js app
LicenseClosed service, MIT SDKsMIT
Products and variantsYesYes
Discount codesBuilt inNot in the plugin docs
Shipping rulesBuilt inBuild it yourself
TaxTax rates, server-side totalsBuild it yourself
CurrenciesOne per cartMultiple
PaymentsYou integrate, Cmssy recordsStripe adapter
Agent tools over MCPStore verbs, confirmation on destructive callsCollection CRUD plus your own tools
Price to sellPro, $15/moFree to run on your hosting

Which One to Pick

Pick Payload if you want everything in your own repo and database, sell in several currencies, or are happy to build shipping, tax and discounts yourself.

Pick Cmssy if you want those built and maintained for you and run a single-currency store - and if you want an agent, on your own key, to handle discounts, fulfillment and refunds, with a human approval on the ones you cannot undo.

Try It Without an Account

The storefronts at cmssy.com/demos all read one demo workspace. Or clone github.com/cmssy-io/examples, copy .env.example to .env.local and run pnpm dev - each example renders the public demo workspace with no signup.

Payload details checked 13 October 2026 against payloadcms.com/docs - verify before you decide.

Next Steps