Là một Merchant, tôi muốn cập nhật thông tin của sản phẩm đã tạo, để tôi có thể chỉnh sửa khi có thay đổi về thông tin sản phẩm.
Điều kiện tiên quyết (Pre-conditions)
- Merchant đã đăng nhập vào hệ thống
- Sản phẩm đã tồn tại trong hệ thống.
Luồng quy trình cập nhật sản phẩm
Chức năng cập nhật sản phẩm
- Merchant chỉ có thể truy cập chức năng sửa sản phẩm từ màn hình chi tiết sản phẩm.
- Tất cả các trường thông tin của sản phẩm đều có thể chỉnh sửa được:
- Tên sản phẩm
- Danh mục sản phẩm
- Hình ảnh (1 ảnh đại diện + 9 ảnh phụ, tối đa 10 ảnh/sản phẩm)
- Mô tả
- Giá bán, Giá nhập
- Mức tồn kho tối thiểu cảnh báo
- Hệ thống lưu lại lịch sử thay đổi chi tiết: lúc nào, trường nào thay đổi, giá trị cũ và giá trị mới.
- Khi cập nhật thành công, hệ thống thông báo thành công và cập nhật dữ liệu ngay lập tức trên toàn hệ thống.
Ràng buộc và Validate dữ liệu
- Tên sản phẩm: Phải duy nhất trong hệ thống, độ dài tối đa 255 ký tự. Nếu trùng tên sản phẩm khác thì từ chối lưu và thông báo lỗi rõ ràng.
- Hình ảnh: Mỗi file tối đa 5MB, chỉ chấp nhận định dạng JPG, PNG
- Giá trị số: Giá bán, Giá nhập chỉ chấp nhận số dương lớn hơn hoặc bằng 0.
- Tất cả các validation giống như lúc tạo sản phẩm cũng được áp dụng lúc cập nhật.
Quy tắc xử lý
- Thay đổi thông tin sản phẩm CHỈ áp dụng cho các giao dịch tạo SAU thời điểm thay đổi.
- Tất cả đơn hàng, lô hàng, log biến động kho đã tạo TRƯỚC đó vẫn giữ nguyên thông tin cũ tại thời điểm tạo.
- Không cho phép đổi tên sản phẩm thành tên đã tồn tại của sản phẩm khác.
- Lịch sử thay đổi chi tiết (giá trị cũ → giá trị mới) được lưu vĩnh viễn, không thể xóa hoặc chỉnh sửa.