> ## Documentation Index
> Fetch the complete documentation index at: https://tomotek.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# US-OWN-14: Xem chi tiết sản phẩm

> Pet Owner xem đầy đủ thông tin, hình ảnh và tình trạng sản phẩm

Là một Pet Owner, tôi muốn xem đầy đủ thông tin, hình ảnh và tình trạng của sản phẩm để có thể quyết định mua sắm nhanh chóng cho thú cưng của mình.

## Acceptance Criteria (AC)

| Feature | Acceptance Criteria | Ràng buộc & Ghi chú |
| :- | :- | :- |
| **1. Image Carousel (Trình chiếu ảnh)** | • Tối đa 10 ảnh sản phẩm. • Cho phép vuốt ngang (swipe), hỗ trợ Double Tap / Pinch để Zoom (phóng to) xem chi tiết. | • Hiện Placeholder mặc định nếu lỗi tải ảnh. |
| **2. Thông tin cơ bản & Giá** | • Tiêu đề sản phẩm. • Giá niêm yết và Giá đã giảm (có gạch ngang giá cũ nếu đang sale). • Các Tags: Phân loại loài vật (Chó, Mèo), Danh mục, Số lượng đã bán. | • Font chữ giá tiền in đậm nổi bật. |
| **3. Trạng thái tồn kho & Số lượng** | • Hiển thị nhãn: **Còn hàng** hoặc **Hết hàng**. • Bộ chọn số lượng `[-] [Số lượng] [+]`. • Số lượng mặc định là 1. Ràng buộc giới hạn trên $\le$ Tổng tồn kho thực tế. | • Nút `[+]` bị mờ (Disabled) nếu chạm mốc tồn kho tối đa. |
| **4. Thông tin Merchant (Shop)** | • Card thông tin Shop: Tên Shop, Logo, Khoảng cách (km). • Nút "Xem Shop" điều hướng đến trang Cửa hàng (US-OWN-20). | • Số km được tính real-time dựa vào GPS của Pet Owner. |
| **5. Mô tả chi tiết** | • Khối văn bản Rich-text: Thành phần, Công dụng, Hướng dẫn sử dụng. • Có nút "Xem thêm" (Read more) nếu văn bản quá dài. | • Tuân thủ các format in đậm, in nghiêng của Editor. |
| **6. Nút Hành động (Bottom Bar)** | • Nút **Thêm vào giỏ hàng**: Đẩy sản phẩm vào giỏ ngầm định, hiện Toast báo thành công. • Nút **Mua ngay**: Đẩy sản phẩm vào giỏ và tự động nhảy sang màn hình Checkout (US-OWN-16). | • Cả 2 nút đều bị vô hiệu hoá (Grey out) nếu sản phẩm Hết hàng. |

## Luồng ngoại lệ (Exception Flows) & Validations

* **Nhập số lượng thủ công quá tồn kho:**
  * **Validation:** Người dùng chạm vào ô số lượng, mở bàn phím và gõ số lượng cực lớn (VD: 999).
  * **Error UI:** Ngay khi mất focus (blur), ô số lượng tự động trả về bằng đúng số tồn kho tối đa. Toast message: *"Sản phẩm chỉ còn \[X] mặt hàng trong kho."*
* **Sản phẩm bị khoá/xóa khi đang xem:**
  * **Flow:** User treo màn hình chi tiết. Trong lúc đó Merchant xoá/khoá sản phẩm. User bấm "Thêm vào giỏ".
  * **Error UI:** API trả về lỗi HTTP 400. Màn hình hiện Popup: *"Sản phẩm này hiện đã ngừng kinh doanh."* Đi kèm nút quay lại trang chủ.
* **Shop bị khoá tài khoản:**
  * **Flow:** Tương tự như trên, Merchant vi phạm chính sách và bị Admin vô hiệu hoá tài khoản.
  * **Error UI:** Hệ thống ẩn nút Mua/Giỏ hàng, thay bằng dòng chữ *"Shop đang tạm ngưng hoạt động"*.

## Quy tắc nghiệp vụ (Business Rules)

1. **Rule 1: Chặn tài khoản nội bộ**: Pet Owner có thể nhấn xem chi tiết sản phẩm của bất kỳ ai, nhưng nếu đó chính là sản phẩm do tài khoản Merchant của họ đăng bán (Self-buy), hệ thống sẽ ẩn nút Thêm Giỏ hàng/Mua ngay để tránh việc tự cày lượt bán.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.