Universal eCommerce Toolkit.

A modular, provider-agnostic eCommerce SDK for JavaScript and TypeScript. Unified types across platforms, pluggable payment providers, and a checkout engine that works on any runtime.

example.ts
import { createCommerce } from '@commercejs/core'
import { SallaAdapter } from '@commercejs/adapter-salla'
import { TapPaymentProvider } from '@commercejs/payment-tap'

const commerce = createCommerce({
  adapter: new SallaAdapter({ token }),
  payments: { tap: new TapPaymentProvider({ secretKey }) },
  defaultPayment: 'tap',
})

const products = await commerce.getProducts({ query: 'shirt' })

Built for flexibility

    Adapter Pattern

    Connect any eCommerce platform — Salla, Shopify, WooCommerce — through a unified interface. One API, many backends.

    Pluggable Payments

    Swap payment providers without rewriting your checkout. Tap, Stripe, PayPal — each implements the same PaymentProvider interface.

    Checkout Engine

    A framework-agnostic state machine that handles the full checkout flow — from customer info to payment confirmation with 3DS support.

    Webhook Verification

    Cryptographic webhook verification with built-in presets for Tap, Stripe, and more. Trust every event your server receives.

    TypeScript First

    Every package ships with full type definitions. The unified type system covers products, carts, orders, payments, and more.

    Runtime Agnostic

    Works in Node.js, Edge runtimes, Deno, and the browser. No framework lock-in — use with Nuxt, Next.js, Express, or anything else.

The package ecosystem

    @commercejs/core

    The orchestration engine — createCommerce(), event bus, capability routing, and webhook dispatch. One entry point, any adapter.

    @commercejs/types

    Unified data model — Product, Cart, Order, Customer, and 20+ domain types that work across every platform adapter.

    @commercejs/checkout

    The CheckoutSession state machine. Manages the flow from idle → info → shipping → payment → complete.

    @commercejs/payment-tap

    Tap Payments provider — charges, 3DS redirects, refunds, and per-transaction webhooks for the MENA region.

    @commercejs/webhook-verifier

    Provider-agnostic webhook verification. Built-in hashstring verification for Tap with extensible config for any provider.

    @commercejs/adapter-salla

    Salla platform adapter — maps Salla's API to the unified CommerceAdapter interface for products, carts, orders, and more.

    @commercejs/hosted-checkout

    A ready-to-deploy Nuxt application for hosted checkout. Tap Card SDK integration with payment links, saved cards, and delivery dispatch.

    @commercejs/platform

    Built-in commerce engine — Neon Postgres backed, Admin API, Profile system, and 12 implemented domains.

    @commercejs/nuxt

    Nuxt module — auto-imported composables, server-generated REST API, and a runtime plugin that wires the adapter into your app.

Ready to build?

CommerceJS gives you the building blocks. You choose the platform, the payment provider, and the framework.