CommerceForAI

Inventory, orders and fulfillment on top of Stripe

Stripe takes the payment. It doesn't track stock, keep an order through shipping and returns, or stop two people buying the last item. CommerceForAI adds that layer on your own Stripe account: a catalog, stock that can't oversell, orders, shipping, returns and refunds, through one API.

What Stripe alone leaves you to build

You needWith Stripe aloneWith CommerceForAI
Stock countsYour own table, decremented in webhook codeHeld at checkout, committed on payment, released on expiry
OrdersBuilt from checkout.session.completed yourselfCreated for you, with numbers, statuses and history
ShippingSeparate label service and glue codeRates and labels through EasyPost or Shippo, tracking and delivery status
Refunds and returnsRefund API plus your own restocking logicOne call, with restock and the customer email
Changing an orderManualSwap or remove items before shipping; the difference is refunded

How it sits on your Stripe account

  • You connect your existing Stripe account (or create one during setup). Charges, payouts and disputes stay on it, and you are the merchant of record.
  • Checkout is Stripe's hosted page, created with the right line items, shipping and tax settings.
  • Sales tax uses Stripe Tax if you turn it on. Discount codes are mirrored into your Stripe account.
  • CommerceForAI never holds your money. Its fee is taken as a Stripe application fee: nothing for the first 100 orders a month, then 1% per order, at most $29 a month.

Start

npx commerceforai init     # a free test store and API key, no sign-up
npm install commerceforai   # or: pip install commerceforai
const { data: product } = await commerce.products.create({ name: "Camp Mug", price: 2400, inventory: 40 });
const { data: checkout } = await commerce.checkouts.create({
  items: [{ variant_id: product.variants[0].id, quantity: 2 }],
  success_url: "https://yoursite.com/thanks",
});
// After payment: commerce.orders.list({ status: "paid" }) → ship → commerce.orders.fulfill(id, { carrier, tracking_number })

Full walkthrough: Quickstart. Shipping and returns: guide. If you only take one-off payments and track nothing, a Stripe Payment Link is enough: see the comparison.