commerce: cart line items + add/remove/set-qty + relational view (18 tests)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 55s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 55s
cart.sx — cart as an ordered list of (sku variant qty) lines. Pure operations: cart-add (merge-or-append), cart-set-qty (0 removes), cart-remove, with cart-qty/count/skus/empty? accessors. cart-lineo exposes lines relationally via membero. Total 34/34. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,7 +21,7 @@ reconciliation — all auditable via the event log.
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/commerce/conformance.sh` → **16/16** (1 suite: catalog)
|
||||
`bash lib/commerce/conformance.sh` → **34/34** (2 suites: catalog, cart)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -56,7 +56,7 @@ lib/commerce/api.sx ── (commerce/add) (commerce/total) (commerce/checkout)
|
||||
|
||||
## Phase 1 — Catalog + cart + deterministic totals
|
||||
- [x] `catalog.sx` — product/variant/stock as facts
|
||||
- [ ] `cart.sx` — line items, add/remove/qty
|
||||
- [x] `cart.sx` — line items, add/remove/qty
|
||||
- [ ] `price.sx` — base pricing relation, subtotal; tax
|
||||
- [ ] `api.sx` + tests + scoreboard + conformance.sh
|
||||
|
||||
@@ -76,6 +76,11 @@ lib/commerce/api.sx ── (commerce/add) (commerce/total) (commerce/checkout)
|
||||
- [ ] tests: webhook replay, partial refund, double-charge guard
|
||||
|
||||
## Progress log
|
||||
- 2026-06-06 — `cart.sx`: cart as an ordered list of (sku variant qty) lines.
|
||||
Pure ops `cart-add` (merges same line / appends), `cart-set-qty` (0 removes),
|
||||
`cart-remove`, plus `cart-qty`/`cart-count`/`cart-skus`/`cart-empty?`.
|
||||
`cart-lineo` is the relational view (membero over the cart) — forward and
|
||||
backward. cart suite 18/18; total 34/34.
|
||||
- 2026-06-06 — `catalog.sx`: catalog snapshot (products/variants/stock as fact
|
||||
tuples) + multidirectional accessor relations (`producto`/`varianto`/`stocko`,
|
||||
derived `priceo`/`classo`/`unit-priceo`) + deterministic `catalog-price`/
|
||||
|
||||
Reference in New Issue
Block a user