Skip to content
KaufmannCommerce UI
Foundations · v0.1⌘ K

Kaufmann Commerce UI / Commerce family

Cart Suite

A server-rendered cart with a narrow browser projection for quantity, stock, and shipping-destination events. Transport remains replaceable.

Realtime rehearsal

Change products, quantities, simulated stock, and destination country. Only this lab area loads client-side JavaScript.

Live specimen
New

Eulenwald Edition

Seasonal Circle Cards

€24.00

Twelve illustrated cards for quiet changes through the year.

Letter & Story

Forest Letter · Autumn

€12.00

A printed forest letter with a short read-aloud story.

Kaufmann Commerce

Your cart

Demo stream

Seasonal Circle Cards

€24.00
Ready to ship
1

Forest Letter · Autumn

€12.00
Only a few left
1

Shipping destination

Austria
Domestic
Country

Tracked delivery in 2–4 business days.

Subtotal€36.00
Shipping · Domestic€7.00
Estimated total€43.00

Order progress

Spend €14.00 · Free shipping
  1. Minimum order€15.00
  2. Free shipping€50.00
  3. Studio gift€90.00

Final shipping, taxes, and discounts are confirmed at checkout.

Rehearsal Event Inspector000 events
Waiting for a simulated frontend event …

Streaming API

CartPanel remains server rendered and accepts localisable labels, while the store understands small domain UI events as a browser projection. The WebSocket adapter is intentionally thin: authentication, cursor semantics, ordering, tenant scope, reservation, and reconnection belong to the future backend contract.

Frontend rehearsal onlyThe controls above emit local events. No event is presented as canonical inventory, an authoritative shipping quote, or a binding order.
Astro
---
import { CartPanel } from "@kaufmann/ui";
import { shippingPolicy } from "../commerce/shipping";
---

<CartPanel
  cart={serverRenderedCart}
  shipping={shippingPolicy}
  heading="Your cart"
  locale="en-GB"
  labels={{
    checkout: "Continue to checkout",
    connection: { rehearsal: "Demo stream" }
  }}
/>
TypeScript
import {
  createCommerceStore,
  connectCommerceSocket,
} from "@kaufmann/ui/realtime";

const store = createCommerceStore(serverRenderedCart);

// Later, when the authenticated backend contract exists:
const stream = connectCommerceSocket({
  url: commerceStreamUrl,
  store,
  parse: parseBackendEvent,
});