Files
james 0eb94f2ba1 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.
2026-09-18 12:12:51 +00:00

100 lines
3.0 KiB
TypeScript

// Product browse/detail domain strings (foundation-owned base keys; extend, don't remove).
export default {
en: {
product: {
salesCount: "{n} sold",
commentCount: "{n} reviews",
home: "Home",
detail: "Product details",
currentPrice: "Sale price",
marketPrice: "Market price",
stock: "In stock: {n}",
sold: "{n} sold",
coupon: "Coupon",
coupons: "Available coupons",
claim: "Claim",
claimed: "Claimed",
claimFailed: "Unable to claim this coupon",
loginToClaim: "Sign in to claim",
choose: "Choose",
selected: "Selected",
quantity: "Quantity",
buyNow: "Buy now",
addCart: "Add to cart",
addedCart: "Added to cart",
favorite: "Favorite",
unfavorite: "Unfavorite",
noStock: "Out of stock",
unavailable: "This combination is unavailable",
store: "Store",
quality: "Product quality",
company: "Company",
region: "Region",
rates: "Store ratings",
overall: "Overall",
service: "Service",
delivery: "Delivery",
enterStore: "Visit store",
contact: "Contact seller",
salesRank: "Best sellers",
tabsDetail: "Product details",
tabsReviews: "Customer reviews",
tabsAfterSale: "After-sales service",
description: "Description",
reviewSummary: "{rate}% positive reviews ({n} total)",
reviewAll: "All reviews",
reply: "Seller reply",
expires: "Expires {date}",
productNotFound: "Product not found",
},
},
zh: {
product: {
salesCount: "已售 {n} 件",
commentCount: "{n} 条评价",
home: "首页",
detail: "商品详情",
currentPrice: "活动价",
marketPrice: "市场价",
stock: "库存 {n} 件",
sold: "已售 {n} 件",
coupon: "优惠券",
coupons: "可用优惠券",
claim: "领取",
claimed: "已领取",
claimFailed: "优惠券领取失败",
loginToClaim: "登录后领取",
choose: "选择",
selected: "已选",
quantity: "数量",
buyNow: "立即购买",
addCart: "加入购物车",
addedCart: "已加入购物车",
favorite: "收藏",
unfavorite: "取消收藏",
noStock: "暂时缺货",
unavailable: "该规格暂不可用",
store: "店铺",
quality: "商品质量",
company: "公司",
region: "所在地区",
rates: "店铺评分",
overall: "描述相符",
service: "服务态度",
delivery: "物流服务",
enterStore: "进入店铺",
contact: "联系客服",
salesRank: "销售排行",
tabsDetail: "商品详情",
tabsReviews: "用户评价",
tabsAfterSale: "售后服务",
description: "商品描述",
reviewSummary: "好评率 {rate}%(共 {n} 条评价)",
reviewAll: "全部评价",
reply: "商家回复",
expires: "有效期至 {date}",
productNotFound: "商品不存在",
},
},
};