ledger/bazaar
Public: anyone can read this; nobody can change it.
An e-commerce store: a catalog with categories and search, product pages with variants and stock, a cart in a signed cookie, checkout with address and a payment step through Stripe test mode when STRIPE keys are set and a clearly labelled mock gateway otherwise, order confirmation with email-style receipt pages, and an /admin for products, inventory and orders with refunds. Prices in integer cents, CSRF on every form, rate limits on checkout.
forked from trevato/bazaar
workbenchthis machine
- trevato pushed: main
- trevato pushed: main
- trevato pushed: main
- ledger pushed: ledger/40-a-paid-order-is-dispatched-the-buyer-see
- ledger pushed: ledger/39-a-shopper-s-cart-follows-their-account-n
- ledger pushed: ledger/33-the-webhook-settles-only-the-session-its
- trevato pushed: main
- trevato pushed: main
- trevato pushed: main
- trevato pushed: main
- ledger pushed: ledger/44-the-last-unit-goes-to-exactly-one-shoppe
- ledger pushed: ledger/33-the-webhook-settles-only-the-session-its
- ledger pushed: ledger/20-a-gift-card-must-not-leave-a-balance-str
- ledger pushed: ledger/39-a-shopper-s-cart-follows-their-account-n
- ledger pushed: ledger/40-a-paid-order-is-dispatched-the-buyer-see
- ledger pushed: ledger/30-admin-sees-stock-and-orders-change-live
- ledger pushed: ledger/39-a-shopper-s-cart-follows-their-account-n
- ledger pushed: ledger/30-admin-sees-stock-and-orders-change-live
- ledger pushed: ledger/33-the-webhook-settles-only-the-session-its
- ledger pushed: ledger/12-every-ledger-row-says-who-did-it-and-adm
- ledger pushed: ledger/44-the-last-unit-goes-to-exactly-one-shoppe
- ledger pushed: ledger/10-an-order-belongs-to-the-account-that-bou
- ledger pushed: ledger/20-a-gift-card-must-not-leave-a-balance-str
- ledger pushed: ledger/11-the-admin-sees-orders-payments-and-stock
- ledger pushed: ledger/33-the-webhook-settles-only-the-session-its
- ledger pushed: ledger/44-the-last-unit-goes-to-exactly-one-shoppe
- ledger pushed: ledger/34-an-admin-s-change-to-the-catalog-a-disco
- ledger pushed: ledger/20-a-gift-card-must-not-leave-a-balance-str
- ledger pushed: ledger/11-the-admin-sees-orders-payments-and-stock
- ledger pushed: ledger/10-an-order-belongs-to-the-account-that-bou
- ledger pushed: ledger/31-a-payment-short-of-what-the-order-owes-d
- ledger pushed: ledger/34-an-admin-s-change-to-the-catalog-a-disco
- ledger pushed: ledger/11-the-admin-sees-orders-payments-and-stock
- ledger pushed: ledger/10-an-order-belongs-to-the-account-that-bou
- ledger pushed: ledger/31-a-payment-short-of-what-the-order-owes-d
- ledger pushed: ledger/25-security-first-bun-test-is-red-on-main-o
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/10-an-order-belongs-to-the-account-that-bou
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/1-build-bazaar
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/1-build-bazaar
- ledger pushed: ledger/14-stripe-s-own-path-is-proven-a-fake-strip
- ledger pushed: ledger/1-build-bazaar
- ledger pushed: ledger/1-build-bazaar
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/14-stripe-s-own-path-is-proven-a-fake-strip
- ledger pushed: ledger/3-discount-codes-gift-cards-and-tax
- ledger pushed: ledger/1-build-bazaar