Cài đặt Appotapay app với Odoo Enterprise trên on-primise
Dưới là các bước cần hoàn tất thực hiện để cài đặt giải pháp thanh toán Appotapay app cho Odoo Enterprise phiên bản 19.
Download app
Truy cập vào Odoo store để tiến hành download Appotapay app để tiến hành cài đặt

Cấu hình
- Giải nén file zip vừa tải về được thư mục “payment_appotapay”
- Tạo một thư mục trong source odoo ví dụ như “addons-custom” sau đó move thư mục “payment_appotapay” vào.


Chỉnh sửa dòng “addons_path” trong file “odoo.conf” thêm đường dẫn của thư mục “payment_appotapay” vào. Ví dụ “addons_path = odoo/addons, addons-custom” và Restart lại Odoo.

Kích hoạt ứng dụng Apptopay trên Odoo
Vào “Ứng dụng” và nhập từ khóa “appotapay” vào ô tìm kiếm và chọn “Kích hoạt”. Lưu ý là phải xóa thẻ “Ứng dụng” trong ô tìm kiếm trước.

Trường hợp nếu tìm không thấy app thì cần thêm các bước sau: Vào “Cài đặt” tìm mục “Developer Tools” và chọn “Kích hoạt chế độ nhà phát triển”

Để cài đặt Appotapay trên on-premise, tiếp tục quay lại “Ứng dụng” chọn “Cập nhật danh sách Ứng dụng” và lặp lại các bước tìm kiếm.

Khai báo System Parameters
Để cài đặt Appotapay trên on-premise, cần khai báo domain cần gửi POS notify theo đường dẫn: System/technical/System Parameters theo như hình ảnh dưới (yêu cầu active chế độ Develop mode như hướng dẫn ở trên).

Cấu hình socket worker Odoo
Việc cài đặt Appotapay trên on-premise sử dụng Odoo Enterprise để khi khách hàng thanh toán xong trên AppotaPay, hệ thống của họ sẽ gửi một thông báo (Notification/Webhook) về máy chủ Odoo của bạn để xác nhận: "Giao dịch này đã thành công".
Socket Worker (hay Cron/Longpolling worker): Là một tiến trình chạy ngầm trên máy chủ. Trong bối cảnh Odoo, nó đóng vai trò như một "người trực điện thoại". Nếu không có người trực này, khi AppotaPay "gọi điện" (gửi dữ liệu) về, sẽ không có ai bắt máy để ghi nhận thông tin vào hệ thống.
Hứng (Catching): Nghĩa là tiếp nhận dữ liệu từ AppotaPay, xử lý nó và cập nhật trạng thái đơn hàng từ "Chờ thanh toán" sang "Đã thanh toán" một cách tự động.
Việc thiết lập Socket Worker (hoặc cấu hình đúng các tham số workers và longpolling_port trong Odoo) là cần thiết vì:
Tính tức thời (Real-time): Giúp hệ thống cập nhật trạng thái ngay lập tức mà không cần nhân viên phải vào kiểm tra thủ công hay nhấn F5.
Tránh mất dữ liệu: Nếu máy chủ Odoo chỉ chạy ở chế độ đơn giản (không có worker), các yêu cầu gửi về từ cổng thanh toán có thể bị nghẽn hoặc bị từ chối nếu máy chủ đang bận xử lý việc khác.
Xử lý đa nhiệm: Odoo cần các "Worker" riêng biệt để tách biệt giữa việc phục vụ người dùng đang lướt web và việc tiếp nhận các thông báo tự động từ hệ thống bên ngoài.
Bạn cần kiểm tra lại file cấu hình Odoo (odoo.conf) hoặc thiết lập Nginx Reverse Proxy để đảm bảo các yêu cầu từ AppotaPay được dẫn truyền đúng vào worker đang đợi sẵn. Nếu thiếu phần này, khách trả tiền xong nhưng đơn hàng trên Odoo vẫn sẽ đứng yên ở trạng thái "Dự thảo" hoặc "Chờ".
Bắt buộc phải tắt ciphers nếu đang được mở.
Cấu hình URL IPN
POS notify là url theo quy định cấu trúc dưới để khi giao dịch thành công trên "Thiết bị chấp nhận thanh toán Appotapay" thì hệ thống POS của Odoo sẽ nhận diện và điều hướng thông giao dịch thành công. URL POS notify này sẽ được Appotapay thêm vào thủ công theo đúng cấu trúc dưới đây:
Cấu trúc URL notify (IPN) cho thiết bị chấp nhận thanh toán: {domain}/payment/appotapay/pos/notify
Cổng thanh toán: {domain}/payment/appotapay/notify
Chuyển khoản (Thu hộ): {domain}/payment/appotapay/va/notify