feat(mall): claim and redeem shop coupons from the storefront

The product page loads a shop's claimable coupons through the shared client and
claims them in place; the buyer coupon list reads owned snapshots with their
claimed/redeemed/expired state. Checkout offers each shop order at most one
owned coupon and submits only the choice; the pay page and order detail render
the server-persisted discount and reduced total, never a client figure.

Coupon fixtures leave the pages; the fixed-data adapter still serves the coupon
domain as the rollback path. The demo seed creates two deterministic templates
and claims them for the demo customer.
This commit is contained in:
2026-09-18 12:12:51 +00:00
parent 23955434c6
commit 0eb94f2ba1
9 changed files with 249 additions and 16 deletions
+6
View File
@@ -23,6 +23,9 @@ export default {
alipay: "Alipay",
payTitle: "Pay for your order",
orderNo: "Order no.",
coupon: "Coupon",
noCoupon: "No coupon",
couponDiscount: "Coupon discount",
grandTotal: "Total payment",
confirmPay: "Confirm payment",
noPendingOrders: "There are no orders waiting for payment.",
@@ -58,6 +61,9 @@ export default {
alipay: "支付宝",
payTitle: "订单支付",
orderNo: "订单号",
coupon: "优惠券",
noCoupon: "不使用优惠券",
couponDiscount: "优惠券抵扣",
grandTotal: "应付总额",
confirmPay: "确认支付",
noPendingOrders: "暂无待支付订单。",