feat: persist customer product and shop favorites through the live API

Replace mall fixture favorites with customer-scoped endpoints, and send signed-out shoppers back to the page they left after sign-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Chengdong Zhang
2026-09-21 18:51:45 +08:00
co-authored by Cursor
parent 94a64ec712
commit 6c1357ec4d
34 changed files with 1783 additions and 119 deletions
+4
View File
@@ -24,6 +24,8 @@ export default {
addedCart: "Added to cart",
favorite: "Favorite",
unfavorite: "Unfavorite",
favoriteFailed: "Unable to update favorite",
favoriteLoadFailed: "Unable to load favorite state",
noStock: "Out of stock",
unavailable: "This combination is unavailable",
store: "Store",
@@ -72,6 +74,8 @@ export default {
addedCart: "已加入购物车",
favorite: "收藏",
unfavorite: "取消收藏",
favoriteFailed: "收藏更新失败",
favoriteLoadFailed: "无法加载收藏状态",
noStock: "暂时缺货",
unavailable: "该规格暂不可用",
store: "店铺",
+8
View File
@@ -18,6 +18,10 @@ export default {
speed: "Delivery",
favorite: "Follow store",
favorited: "Following",
favoriteFailed: "Unable to update store favorite",
favoriteLoadFailed: "Unable to load store favorite",
notice: "Store notice",
afterSale: "After-sales policy",
salesRank: "Top sellers",
storeProducts: "Store products",
sortPrice: "Price",
@@ -47,6 +51,10 @@ export default {
speed: "发货速度",
favorite: "收藏店铺",
favorited: "已收藏",
favoriteFailed: "店铺收藏更新失败",
favoriteLoadFailed: "无法加载店铺收藏",
notice: "店铺公告",
afterSale: "售后服务",
salesRank: "本店销量排行",
storeProducts: "店内商品",
sortPrice: "价格",
+4
View File
@@ -77,6 +77,8 @@ export default {
removeFavorite: "Remove favorite",
enterStore: "Enter store",
noFavoriteStores: "No favorite stores yet.",
favoriteLoadFailed: "Unable to load favorites",
favoriteRemoveFailed: "Unable to remove favorite",
couponsTitle: "My coupons",
couponTitle: "Coupon",
amount: "Amount",
@@ -174,6 +176,8 @@ export default {
removeFavorite: "取消收藏",
enterStore: "进入店铺",
noFavoriteStores: "暂无关注店铺。",
favoriteLoadFailed: "收藏加载失败",
favoriteRemoveFailed: "取消收藏失败",
couponsTitle: "我的优惠券",
couponTitle: "优惠券",
amount: "优惠金额",