FE: module wishlist — danh sách yêu thích #
Phần chung (khởi tạo client, lỗi, danh sách, ngôn ngữ) ở tài liệu FE của Core:
docs/fe/common.md (bản đọc: xforge-documentation, ADR-0102 của xforge-core).
Sửa file này CÙNG PR khi đổi hành vi FE thấy được của module.
Storefront (StorefrontClient) #
Chỉ khách ĐÃ ĐĂNG NHẬP (thiếu token → 401, như requireCustomer()); khách vãng
lai giữ danh sách ở máy rồi gửi lên sau khi đăng nhập.
listMyWishlist— biến thể đã lưu, mới nhất trước, phân trang con trỏ.onSale: false(biến thể tắt, sản phẩm khôngactivehoặc vào thùng rác) thìvariantInfolà null: hiện "không còn bán", cho bỏ.checkMyWishlist({ body: { variantIds: [...] } })— POST chỉ đọc, tối đa 100 id, trảvariantIdsđang được lưu: tô tim trên lưới sản phẩm bằng một lần gọi.addMyWishlistItem({ body: { variantId } })— lưu lại biến thể đã lưu thì trả dòng cũ (không lỗi). Biến thể phải đang bán (biến thể bật, sản phẩmactive) → không thì 409wishlist_variant_unavailable, cả khi id không có trong store. Tối đa 500 mục → 409wishlist_full(details.max).removeMyWishlistItem({ params: { variantId } })— bỏ theo ID BIẾN THỂ (nút tim biết biến thể, không cần id dòng). Không có → 404wishlist_item_not_found.- Khách là của cả hệ thống nhưng danh sách tính theo store: đăng nhập ở store khác thấy danh sách khác.
- Nhân viên gỡ khách khỏi store (
unlinkCustomercủa Core) thì danh sách của khách ở store đó bị xoá; giỏ hàng cũng vậy.
Chưa có báo "có hàng lại" cho khách đã lưu.
CMS / admin (XforgeClient) #
Menu: key wishlist.wishlist_items (quyền wishlist.read). Chỉ đọc:
listWishlistItems — mọi dòng của mọi khách, kèm customerInfo, variantInfo
(cả biến thể đã ngừng bán) và onSale, lọc customer_id / variant_id.
Màn hình dựng sẵn #
listMenu() → mục wishlist.wishlist_items có screen (type: "crud"): CMS
chung vẽ được từ getMenuScreen({ params: { key: "wishlist.wishlist_items" } })
mà không cần code riêng (tài liệu FE của Core: cms.md §3.1). Chỉ xem: danh
sách (khách, sản phẩm, biến thể, đang giảm giá, ngày thêm; lọc theo khách — cần
quyền core.view_customers cho ô chọn — / biến thể). Không có thêm / sửa / xoá
(khách tự quản ở storefront).