Simple POS (Magento Backend + API)
Xây dựng 1 ứng dụng pos đơn giản sử dụng Magento và ReactJS (làm trước phần backend + API)
POS hay PoS là một thuật ngữ viết tắt của Point of Sale (hay point-of-sale, hoặc point of service). Nó sử dụng cho các shop bán lẻ (retail shop), tại quầy thanh toán tiền (check out counter) trong shop, có chức năng để tạo đơn hàng. Người thực hiện tạo đơn hàng được gọi là các staff. Đầu phiên làm việc, staff sẽ login vào 1 máy POS để tạo đơn hàng cho khách hàng khi họ đến thanh toán. Ở đây chúng ta sẽ xây dựng một ứng dụng POS simple để mô phỏng quá trình bán hàng.
Chức năng:
Backend:
Quản lý pos
Hiển thị danh sách các POS: pos id, pos name, status
Thêm/edit POS: pos name, status
Xóa POS bằng mass action, trên form edit pos
Có thể filter/phân trang/ column visible trên grid
Quản lý staff:
Hiển thị danh sách các staff: first name, last name, assign pos
Thêm/edit staff: first name, last name, assign pos (Hiển thị danh sách các pos và chọn multiselect), username, password, password confirmation.
Xóa Staff
Có thể filter/phân trang/ column visible trên grid
Ghi chú:
khi tạo mới/ thay đổi pass, password confirmation cần khớp với password, nếu không sẽ báo lỗi
Khi edit mà không sửa gì form password => cần save được bình thường
Thêm thuộc tính "visible on pos" cho product dạng Yes/no
Api:
Viết API login, đầu vào là username password, đầu ra trả về session id đã được mã hóa (session cần lưu vào bảng để xác thực khi dùng các api khác sau khi đăng nhập)
Viết các API với resource = anonymous, thay vì xác thực bằng magento thì xác thực bằng session được tạo ở trên (gợi ý: có thể thêm ?session=... ở trên url lúc gọi để xử lý)
API lấy danh sách các product simple có visible on pos là 1 , trả về danh sách gồm SKU, name, price, ảnh sản phẩm, có xử lý phân trang (10 sản phẩm mỗi trang)
API tạo cart rỗng trả về cart id
API add product vào cart, đầu vào cart id, product id và qty add vào, đầu ra là total của cart hiện tại
API Tạo order (Các thông tin còn thiếu phục vụ cho quá trình tạo order có thể tự fix cứng trong code. Ví dụ : địa chỉ shipping, shipping method, payment method)
API logout: hủy session trong bảng