# CLAUDE.md

## Business rules — Order
- KHÔNG được cancel order đã ở trạng thái `shipped` hoặc `delivered`.
  Phải kiểm tra `order.status` trước; nếu đã shipped thì throw lỗi.
- Refund (hoàn tiền) xử lý async qua queue, không inline trong hàm cancel.

## Conventions
- Format tiền tệ: LUÔN dùng `formatCurrency()` ở `src/lib/format.js`.
  KHÔNG tự viết hàm format tiền mới.
- Số tiền lưu dưới dạng VND nguyên (integer).
