- ỨNG DỤNG
- Cổng thanh toán Polar 17.0
| Số dòng Code | 1792 |
| Tên kỹ thuật | payment_polar |
| Giấy phép | OPL-1 |
| Website | https://viindoo.com/apps/modules/17.0/payment_polar |
| Đọc mô tả cho | v 18.0 |
| Yêu cầu các App | Invoicing (account) Discuss (mail) |
Bán hàng ra toàn cầu. Để Polar lo phần thuế VAT.
Thêm Polar làm nhà cung cấp thanh toán để thu tiền thẻ của người mua bằng bất kỳ loại tiền tệ nào trong 126 loại tiền tệ Polar hỗ trợ, mà không cần đăng ký thuế VAT ở bất kỳ quốc gia nào - Polar đóng vai trò người bán hợp pháp (Merchant of Record) với người mua, tự tính và nộp thuế tại nước sở tại, rồi chuyển cho công ty bạn phần thực nhận, đã được ghi sổ tự động.
Vì sao người bán chọn Polar
Không cần đăng ký VAT ở bất kỳ đâu.
Polar bán trực tiếp cho người mua của bạn, nên chính Polar - không phải công ty bạn - là bên đăng ký và nộp thuế VAT tại quốc gia của người mua. Bạn sẽ không bao giờ phải kê khai thuế VAT nước ngoài vì một giao dịch qua Polar.
Từng đồng phí đều được ghi vào sổ sách.
Khi một khoản thanh toán Polar được tất toán, module tự động ghi một bút toán cân đối: tiền thực nhận (net) vào Tài khoản trung gian Polar riêng, khoản phải thu được tất toán theo số tiền gộp (gross), và phí nền tảng của Polar được ghi vào tài khoản chi phí riêng. Kế toán của bạn có thể truy vết từng đồng, từ lúc checkout đến khi lên sổ.
126 loại tiền tệ, một lần cấu hình.
Polar có thể thu tiền thẻ của người mua bằng bất kỳ loại tiền tệ nào trong số 126 loại tiền tệ mà nó hỗ trợ, với vai trò Merchant of Record, nên phía bạn không cần cấu hình riêng cho từng loại tiền tệ. Một bước kiểm tra số tiền tối thiểu tích hợp sẵn sẽ chặn giao dịch dưới ngưỡng trước khi nó được gửi tới Polar.
Cấu hình một lần, được bảo vệ ngay từ đầu
- Polar xuất hiện như một nhà cung cấp thanh toán tiêu chuẩn tại Kế toán > Cấu hình > Nhà cung cấp thanh toán, cấu hình theo đúng quy trình như mọi nhà cung cấp khác.
- Mã truy cập (Access Token) và khóa bí mật webhook chỉ nhập một lần, giới hạn cho quản trị viên hệ thống, và khóa bí mật webhook được ẩn trên màn hình.
- Sản phẩm dùng chung mà mọi phiên checkout cần được khởi tạo tự động ngay khi bạn kích hoạt nhà cung cấp. Nếu đúng lúc đó Polar tạm thời không phản hồi, nút "Chuẩn bị sản phẩm Polar" cho phép thử lại chỉ bằng một cú click - phần lớn trường hợp bạn sẽ không cần đụng đến nút này.
- Odoo không cho phép chuyển Polar sang chế độ chạy thật hoặc thử nghiệm cho đến khi cả Tài khoản trung gian và Tài khoản chi phí cho phí nền tảng đều được thiết lập - lỗi cấu hình được phát hiện ngay từ bước thiết lập, không phải giữa lúc đang thanh toán.
- Một dải cảnh báo không chặn thao tác sẽ nhắc bạn kiểm tra thêm những điểm khác đáng lưu ý (thiết lập xuất hóa đơn, sản phẩm chưa được chuẩn bị) mà vẫn cho phép lưu bình thường.
Trải nghiệm checkout người mua đã quen thuộc
- Người mua được chuyển đến trang checkout riêng của Polar để nhập thông tin thẻ - hệ thống Odoo của bạn không bao giờ nhìn thấy hay lưu trữ dữ liệu thẻ.
- Chế độ thử nghiệm (sandbox) và chạy thật (production) được chuyển đổi tự động theo đúng cờ Thử nghiệm/Kích hoạt mà mọi nhà cung cấp thanh toán khác trong Odoo đang dùng.
- Khi người mua quay lại sau khi checkout, Odoo xác nhận lại kết quả trực tiếp với API của Polar thay vì tin vào tham số trên đường dẫn trả về.
Được thiết kế để giao dịch không bao giờ bị kẹt
- Mọi webhook Polar gửi đến đều được xác thực chữ ký trước khi Odoo tin tưởng; một chữ ký giả mạo hoặc đã hết hạn sẽ bị từ chối ngay.
- Một webhook mà Odoo không đọc được sẽ bị bỏ qua và ghi log, không bao giờ làm sập endpoint - nên một lượt gửi lỗi không thể kéo theo mọi giao dịch khác đang dùng chung webhook đó.
- Nếu số liệu Polar báo về không khớp với số tiền Odoo đang chờ khi tất toán, giao dịch sẽ được đánh dấu lỗi thay vì âm thầm ghi nhận sai số tiền.
- Một tác vụ định kỳ chạy mỗi giờ sẽ kiểm tra lại mọi giao dịch còn đang chờ xử lý với API của Polar - đây là phương án dự phòng nếu một webhook bị trễ, bị mất, hoặc endpoint ngừng nhận webhook.
- Nếu API của Polar giới hạn tốc độ (rate limit) giữa lượt kiểm tra, tác vụ này chỉ đơn giản dừng lại và tiếp tục vào giờ kế tiếp, không làm hỏng cả lượt xử lý.
Hoàn tiền ngay trong Odoo
Thực hiện hoàn tiền toàn phần hoặc một phần từ đúng thao tác Hoàn tiền bạn vẫn dùng cho mọi nhà cung cấp khác; Odoo gọi API hoàn tiền của Polar trên đúng đơn hàng gốc và theo dõi khoản hoàn tiền như một giao dịch riêng cho đến khi Polar xác nhận.
Quy trình hoạt động
Kích hoạt Polar
Nhập Mã truy cập tổ chức (Organization Access Token) và Khóa bí mật Webhook lấy từ bảng điều khiển Polar.
Trỏ đúng tài khoản kế toán
Vào Thiết lập > Kế toán, chọn Tài khoản trung gian Polar và Tài khoản chi phí cho phí nền tảng Polar. Từ đây Odoo tự động gán tài khoản trung gian vào phương thức thanh toán tương ứng.
Kích hoạt chính thức
Chuyển nhà cung cấp sang trạng thái Kích hoạt. Odoo kiểm tra cả hai tài khoản đã được thiết lập, sau đó tự động khởi tạo sản phẩm dùng chung cho checkout trước khi cho phép lưu.
Người mua thanh toán
Tại bước checkout, người mua được chuyển đến Polar, thanh toán bằng đúng loại tiền tệ của họ, và nhận hóa đơn từ Polar với vai trò Merchant of Record.
Odoo tự động tất toán
Webhook (hoặc, nếu lỡ bị mất, tác vụ định kỳ giờ kế tiếp) xác nhận đơn hàng và ghi nhận tiền thực nhận, khoản phải thu gộp, cùng phí nền tảng trong một bút toán duy nhất.
Hoàn tiền khi cần
Chỉ một thao tác từ đúng giao dịch đó, giống hệt mọi nhà cung cấp khác.
Từ Checkout đến Bút toán Kế toán
Phần lớn các cổng thanh toán chỉ dừng lại ở "đã nhận được tiền". Module này đi xa hơn, thẳng vào sổ sách kế toán.
Ngay khi Polar xác nhận một đơn hàng đã thanh toán, module ghi một bút toán thanh toán cân đối duy nhất: số tiền thực nhận từ Polar vào Tài khoản trung gian Polar riêng, khoản phải thu của khách hàng được tất toán theo đúng số tiền gộp, và phí nền tảng của Polar được ghi thẳng vào tài khoản chi phí bạn chọn. Không có con số nào được ước tính sau đó, và không cần bút toán thủ công nào.
Nếu Polar báo phí nền tảng bằng một loại tiền tệ khác với loại tiền người mua đã thanh toán, module sẽ quy đổi trước khi ghi sổ, để bút toán được định giá đúng - chứ không chỉ cân đối về mặt số học.
Vì tài khoản trung gian chỉ dành riêng cho Polar, kế toán của bạn luôn phân biệt được dòng tiền ròng của Polar với mọi nhà cung cấp thanh toán khác - đây chính là điều giúp bước tiếp theo, đối soát khoản Polar chuyển vào ngân hàng, trở nên đơn giản: dùng đúng tiện ích đối soát ngân hàng tiêu chuẩn của Odoo, theo ngày và số tiền, trên một tài khoản duy nhất đó.
Phạm vi & Những điều cần biết
- Đối soát khoản chuyển tiền (payout) được thực hiện thủ công theo ngày và số tiền - đây là một lựa chọn thiết kế có chủ đích. Polar chuyển tiền theo đợt gộp - một lần chuyển có thể gộp nhiều đơn hàng - và không cung cấp cho ứng dụng kết nối bản đồ giữa payout và từng đơn hàng cụ thể. Module cô lập dòng tiền ròng của Polar vào đúng tài khoản trung gian riêng, để kế toán của bạn đối soát bằng tiện ích đối soát ngân hàng tiêu chuẩn của Odoo, giống như với bất kỳ dòng ngân hàng nào khác.
- Tranh chấp và khiếu nại hoàn tiền (dispute/chargeback) được quản lý trên bảng điều khiển của Polar. Polar không gửi webhook cho sự kiện tranh chấp, nên các trường hợp này thể hiện qua số liệu payout, không phải một bản ghi riêng trong Odoo.
- Không hỗ trợ lưu thẻ. Mỗi lượt checkout là một phiên mới trên trang thanh toán của Polar; không có tính năng thanh toán lặp lại chỉ bằng một cú click.
- Nếu Polar ngừng gửi webhook đến endpoint của bạn, tác vụ định kỳ chạy mỗi giờ vẫn tự động giữ cho mọi giao dịch đang chờ tiếp tục được xử lý - bạn kích hoạt lại endpoint từ bảng điều khiển của Polar khi sẵn sàng.
Yêu cầu kỹ thuật
- Odoo 17 có cài ứng dụng Kế toán.
- Một tài khoản tổ chức trên Polar.sh với Mã truy cập tổ chức (Organization Access Token) và khóa bí mật ký theo chuẩn Standard-Webhooks.
- Tài khoản trung gian Polar và Tài khoản chi phí cho phí nền tảng Polar được thiết lập tại Thiết lập > Kế toán trước khi kích hoạt nhà cung cấp.
- Bật Hóa đơn tự động (Automatic Invoice, tại Thiết lập > Bán hàng) để mỗi lượt checkout qua Polar tự động phát sinh hóa đơn. Nếu tắt, Polar vẫn thu đủ khoản trả trước với vai trò Merchant of Record, nhưng khoản thanh toán đó sẽ nằm ở dạng tạm ứng của khách hàng chưa đối soát cho đến khi bạn tự xuất hóa đơn - Odoo sẽ cảnh báo ngay trên form nhà cung cấp nếu Polar đang hoạt động mà chưa bật thiết lập này.
- Phát hành theo giấy phép OPL-1.
Cần hỗ trợ về Cổng thanh toán Polar?
Hướng dẫn sử dụng: Cổng thanh toán Polar
Hướng dẫn này giải thích cách cấu hình và sử dụng mô-đun Cổng thanh toán Polar để chấp nhận thanh toán trực tuyến qua Polar.sh.
Note
Polar đóng vai trò Merchant-of-Record: Polar thu tiền thẻ của người mua, tự tính và nộp thuế VAT, xuất hóa đơn của chính Polar cho người mua, khấu trừ phí nền tảng, rồi chuyển phần tiền ròng còn lại cho bạn. Odoo không bao giờ tiếp nhận hay lưu trữ thông tin thẻ của người mua và không tính VAT cho đơn hàng qua Polar - việc của Odoo là ghi nhận khoản thanh toán vào các tài khoản thông thường của bạn, kiểm tra xem mỗi webhook có thực sự do Polar gửi đến hay không, và cho phép bạn hoàn tiền ngay trong Odoo.
Cài đặt
- Truy cập Ứng dụng (Apps).
- Tìm kiếm với từ khóa payment_polar.
- Nhấn Cài đặt (Install).
Trước khi kích hoạt Polar
Polar gần như không cần thiết lập gì trước khi bạn bật nó lên. Không có tài khoản Polar chuyên biệt nào phải cấu hình - Polar hoạt động với các tài khoản thanh toán tiêu chuẩn của bạn ngay từ đầu. Điều duy nhất Odoo yêu cầu là một sổ nhật ký ngân hàng dùng được, và bạn cũng nên bật Hóa đơn tự động. Nếu Odoo từ chối bật cổng thanh toán, thông báo sẽ chỉ rõ đúng một việc cần sửa, nên bạn có thể xử lý các mục dưới đây theo thứ tự bất kỳ.
Không cần thiết lập tài khoản chuyên biệt nào
Khác với một số tích hợp khác, Polar không có tài khoản chuyên biệt nào phải thiết lập. Ngay từ đầu, Polar dùng đúng những tài khoản tiêu chuẩn mà mọi nhà cung cấp thanh toán online khác đều dùng: tiền người mua trả sẽ vào tài khoản Outstanding Receipts (khoản thu tồn đọng) tiêu chuẩn của công ty bạn, còn phí nền tảng của Polar được đối soát với sao kê ngân hàng, y hệt phí của một đơn vị xử lý thẻ. Việc kích hoạt Polar trên một Hệ thống tài khoản hoàn toàn mới cứ thế chạy - không có gì phải cấu hình trước ở đây.
Kiểm tra sổ nhật ký ngân hàng của công ty
Công ty sở hữu cổng thanh toán này cần có một sổ nhật ký ngân hàng dùng được, vì đây chính là nơi Odoo dùng để ghi nhận dòng tiền Polar chuyển về. Nếu không, Odoo sẽ chặn việc kích hoạt và cho bạn biết bạn đang rơi vào trường hợp nào trong hai trường hợp sau:
- Nếu sổ nhật ký ngân hàng đã tồn tại nhưng đang bị lưu trữ, Odoo sẽ nêu tên sổ đó và yêu cầu bạn bỏ lưu trữ. Một sổ nhật ký đang bị lưu trữ thì không dùng được, nên công ty có thể trông như đã cấu hình đầy đủ mà cổng thanh toán vẫn không bật lên được. Đừng tạo thêm một sổ nhật ký thứ hai bên cạnh nó - hãy khôi phục lại sổ đang có.
- Nếu công ty không có sổ nhật ký ngân hàng nào đang hoạt động, Odoo sẽ yêu cầu bạn tạo mới một sổ, hoặc bỏ lưu trữ một sổ đã có.
Bật Hóa đơn tự động
Polar thu toàn bộ số tiền với vai trò Merchant-of-Record, và điều này có thể xảy ra trước khi Odoo có hóa đơn cho đơn hàng đó. Vào menu Bán hàng ‣ Cấu hình ‣ Cài đặt, mở phần Hóa đơn, và bật tùy chọn Hóa đơn tự động để mọi đơn hàng thanh toán online - kể cả qua Polar - được tự động xuất hóa đơn ngay khi thanh toán được xác nhận.
Cấu hình nhà cung cấp thanh toán
Polar được cài sẵn ở trạng thái Đã vô hiệu, và bạn sẽ tìm thấy nó tại Hóa đơn ‣ Cấu hình ‣ Khoản thanh toán online ‣ Các nhà cung cấp thanh toán (hoặc Kế toán ‣ Cấu hình ‣ Khoản thanh toán online ‣ Các nhà cung cấp thanh toán nếu bạn dùng ứng dụng Kế toán).
Mở Polar, rồi thực hiện lần lượt các bước sau:
- Đặt Trạng thái sang Chế độ kiểm thử hoặc Đã kích hoạt trước tiên. Đây là bước đầu tiên chứ không phải bước cuối: khi cổng thanh toán còn ở trạng thái Đã vô hiệu, Odoo không thể biết nên kết nối tới môi trường sandbox hay môi trường production của Polar, nên Odoo từ chối tạo bất cứ thứ gì bên phía Polar. Biểu mẫu có ghi rõ điều này, và cả hai nút bên dưới cũng sẽ từ chối với cùng lời giải thích nếu bạn nhấn quá sớm. Chọn Chế độ kiểm thử để làm việc với môi trường sandbox của Polar, hoặc Đã kích hoạt để làm việc với môi trường production của Polar.
- Tại tab Thông tin xác thực, điền Mã truy cập Polar: đây là Organization Access Token lấy từ bảng điều khiển Polar, dùng để xác thực mọi lời gọi mà Odoo thực hiện. Mã này bắt buộc phải có phạm vi quyền webhooks:write, nếu không bước tiếp theo sẽ thất bại. Môi trường sandbox và production mỗi bên cần một mã truy cập riêng.
- Lưu lại, rồi nhấn Tạo webhook của bạn. Odoo sẽ yêu cầu Polar tạo
webhook endpoint cho cơ sở dữ liệu này và tự điền cả Khóa bí mật
Webhook Polar lẫn Mã tham chiếu endpoint webhook Polar cho bạn. Bạn
không còn phải tự đăng ký gì trong bảng điều khiển Polar nữa, và cũng
không bao giờ phải đi tìm hay sao chép địa chỉ webhook của Odoo.
- Khóa bí mật Webhook Polar là thứ giúp Odoo phân biệt một thông điệp thật của Polar với một thông điệp giả mạo. Nếu có lúc nào bạn tự dán khóa này thay vì dùng nút bấm, hãy sao chép đúng nguyên văn như Polar hiển thị, bao gồm cả tiền tố whsec_.
- Mã tham chiếu endpoint webhook Polar được Odoo tự điền và bạn không thể gõ tay. Odoo dùng mã này cho lượt kiểm tra tình trạng endpoint hàng giờ, và sẽ báo trong banner cảnh báo của nhà cung cấp nếu Polar đã vô hiệu hóa endpoint.
- Không cần đụng tới Mã tham chiếu sản phẩm Polar. Odoo tự khởi tạo sản phẩm Polar dùng chung - sản phẩm duy nhất mà mọi lượt checkout đều tham chiếu tới - ngay khi bạn lưu nhà cung cấp ở trạng thái Chế độ kiểm thử hoặc Đã kích hoạt, bạn không phải tự làm việc này. Nút Chuẩn bị sản phẩm Polar chỉ dùng để thử lại nếu lần khởi tạo tự động đó không thành công.
Banner màu vàng ở đầu biểu mẫu liệt kê những gì còn thiếu - sản phẩm dùng chung, khóa bí mật webhook, sổ nhật ký ngân hàng, hay hóa đơn tự động - mỗi vấn đề một dòng, mỗi dòng nêu rõ cách khắc phục của riêng nó. Đây là cách nhanh nhất để biết bạn còn phải làm gì.
Dùng thử Polar ở Chế độ kiểm thử
Ở Chế độ kiểm thử, Odoo kết nối tới môi trường sandbox của Polar thay vì môi trường thật. Sandbox là một máy chủ riêng biệt, có tài khoản, tổ chức và mã truy cập riêng - mã truy cập production của bạn sẽ không dùng được ở đó, và mọi thao tác trong sandbox đều không đụng tới tiền thật.
Biểu mẫu nhà cung cấp có liên kết dẫn thẳng tới hướng dẫn thiết lập sandbox của Polar. Sau khi thiết lập xong, hãy thanh toán bằng thẻ kiểm thử 4242 4242 4242 4242, với ngày hết hạn bất kỳ trong tương lai và CVC bất kỳ. Sandbox của Polar xử lý thẻ thông qua Stripe, nên danh sách thẻ kiểm thử đầy đủ nằm trong tài liệu của Stripe.
Khi bạn đổi mã truy cập
Nếu bạn thay Mã truy cập Polar bằng một mã khác, Odoo sẽ xóa khóa bí mật webhook, mã tham chiếu endpoint webhook và mã tham chiếu sản phẩm, rồi khởi tạo lại sản phẩm bằng mã truy cập mới.
Đây là hành vi có chủ đích, và bạn nên hiểu rõ trước khi lỡ tay đổi mã. Mỗi mã truy cập chỉ thuộc về đúng một tổ chức trên Polar, và sandbox của Polar là một máy chủ hoàn toàn tách biệt với production - nên mọi thứ mà mã cũ đã tạo ra đều vô nghĩa đối với mã mới. Sau khi đổi mã truy cập, hãy nhấn Tạo webhook của bạn lần nữa để tạo một webhook endpoint mới.
Một lượt checkout qua Polar diễn ra như thế nào
Khi người mua chọn thanh toán bằng Polar, Odoo tạo một phiên checkout Polar cho một dòng sản phẩm duy nhất, đã bao gồm thuế, rồi chuyển hướng trình duyệt của người mua tới trang checkout do chính Polar lưu trữ. Polar xử lý toàn bộ việc thu thông tin thẻ, tính VAT và xuất hóa đơn của riêng Polar cho người mua; Odoo không bao giờ thu thập hay lưu trữ thông tin thẻ.
Một lượt checkout qua Polar có thể hiển thị cho người mua và thu tiền của họ bằng bất kỳ loại tiền tệ nào trong số 126 loại tiền tệ mà Polar hỗ trợ. Với vai trò Merchant-of-Record, Polar tự tính và nộp thuế VAT theo khu vực pháp lý tương ứng - vì vậy không cần và cũng không được phép cấu hình quy đổi tiền tệ trên nhà cung cấp Polar. Trước khi chuyển hướng người mua, Odoo cũng kiểm tra số tiền so với mức thu tối thiểu theo từng loại tiền tệ mà Polar quy định, và chặn lại với thông báo rõ ràng nếu số tiền quá thấp, thay vì để checkout thất bại phía Polar.
Khi trình duyệt của người mua quay lại từ trang checkout, Odoo không tin tưởng ngay các tham số được trả về: Odoo sẽ truy vấn lại trạng thái checkout đáng tin cậy trực tiếp từ API của Polar trước khi hiển thị trạng thái thanh toán cho người mua.
Note
Hình minh họa cho chính trang checkout do Polar lưu trữ hiện chưa có - trang này do Polar phục vụ và cần thông tin xác thực Polar thật mới truy cập được.
Cách Odoo ghi nhận bút toán khi tất toán
Ngay khi Polar xác nhận một đơn hàng đã thanh toán, Odoo tự động ghi nhận khoản thanh toán, không cần thao tác sổ sách thủ công. Ngay từ đầu - khi chưa thiết lập tài khoản Polar chuyên biệt nào - Polar tất toán y hệt mọi nhà cung cấp thanh toán online khác:
- Toàn bộ số tiền tổng tất toán khoản phải thu của khách hàng và được ghi vào tài khoản Outstanding Receipts (khoản thu tồn đọng) tiêu chuẩn của công ty bạn.
- Phí nền tảng của Polar nằm luôn trong khoản thanh toán đó. Nó không được ghi thành một khoản chi phí riêng; thay vào đó, phí sẽ lộ ra sau này, khi khoản chi trả của Polar - số tiền tổng trừ đi phí - về tới ngân hàng của bạn và bạn đối soát khoản tiền về đó với khoản thanh toán, đúng nơi mà phí của bất kỳ đơn vị xử lý thẻ nào cũng được đối soát (xem Đối soát khoản thanh toán từ Polar là thủ công, theo thiết kế ở dưới).
Note
Người dùng nâng cao có thể tùy chọn tách riêng dòng tiền của Polar vào một tài khoản chuyên biệt và ghi từng khoản phí vào tài khoản chi phí riêng, bằng cách đặt hai trường Polar Clearing Account và Polar Fee Expense Account trên hồ sơ công ty thông qua công cụ nhà phát triển; nếu để trống - trường hợp thông thường - thì luồng tiêu chuẩn ở trên được áp dụng.
Thực hiện hoàn tiền
Bạn có thể hoàn tiền toàn phần hoặc một phần cho một khoản thanh toán Polar đã tất toán trực tiếp từ nút hoàn tiền tiêu chuẩn của Odoo trên giao dịch. Odoo gọi API hoàn tiền của Polar trên đơn hàng Polar gốc và theo dõi khoản hoàn tiền như một giao dịch riêng, giữ trạng thái đang chờ xử lý cho đến khi Polar xác nhận đã hoàn tiền thành công.
Note
Hình minh họa cho luồng hoàn tiền hiện chưa có - cần một khoản thanh toán Polar thật đã tất toán để hoàn tiền.
Tác vụ định kỳ hàng giờ: lưới an toàn của bạn
Mỗi giờ, tác vụ định kỳ Polar: thăm dò các giao dịch đang chờ xử lý kiểm tra lại mọi giao dịch Polar vẫn còn ở trạng thái nháp hoặc đang chờ xử lý trong 7 ngày gần nhất, trực tiếp với API của Polar, rồi tất toán hoặc cập nhật giao dịch đó theo trạng thái đáng tin cậy này.
Đây là lưới an toàn cho trường hợp một webhook không bao giờ được gửi tới - và nếu Polar tự vô hiệu hóa endpoint sau nhiều lần gửi webhook thất bại liên tiếp, tác vụ định kỳ hàng giờ này vẫn giúp các giao dịch của bạn tiếp tục được xử lý cho đến khi bạn kích hoạt lại endpoint từ chính bảng điều khiển của Polar.
Xử lý sự cố: Checkout báo lỗi ngay sau khi kích hoạt
Odoo tự động khởi tạo sản phẩm Polar dùng chung ngay khi bạn kích hoạt nhà cung cấp. Nếu tại đúng thời điểm đó Polar không thể kết nối được (ví dụ mã truy cập chưa hợp lệ), lần khởi tạo tự động đó chỉ được ghi lại như một cảnh báo - không bao giờ chặn việc lưu nhà cung cấp - và mã tham chiếu sản phẩm sẽ trống. Lượt checkout đầu tiên khi đó sẽ báo lỗi rõ ràng thay vì thu tiền sai của bất kỳ ai.
Để khắc phục, mở nhà cung cấp Polar và nhấn Chuẩn bị sản phẩm Polar để thử lại. Bạn có thể nhấn nút này an toàn ngay cả khi sản phẩm đã được khởi tạo trước đó - thao tác sẽ không làm gì nếu mã tham chiếu sản phẩm đã tồn tại.
Xử lý sự cố: Thanh toán mỗi giờ mới được xác nhận một lần
Nếu các khoản thanh toán Polar về tới Odoo chậm, theo từng đợt mỗi giờ thay vì chỉ sau vài giây, thì webhook đang không tới được và tác vụ định kỳ đang phải gánh toàn bộ. Banner cảnh báo của nhà cung cấp sẽ nêu rõ lý do:
- Chưa thiết lập khóa bí mật webhook. Hãy nhấn Tạo webhook của bạn để tạo một khóa.
- Polar đã tự vô hiệu hóa webhook endpoint sau nhiều lần gửi thất bại liên tiếp. Hãy kích hoạt lại endpoint từ bảng điều khiển Polar; banner sẽ tự biến mất khi Polar báo endpoint đã hoạt động bình thường trở lại.
Những điều cần biết trước khi vận hành chính thức
Đối soát khoản thanh toán từ Polar là thủ công, theo thiết kế
API tra cứu khoản thanh toán (payout) của Polar không thể gọi được bằng access token mà máy chủ Odoo đang giữ, nên Odoo không thể biết một khoản thanh toán cụ thể từ Polar đã tất toán cho những đơn hàng nào. Mô-đun này không cố đoán. Dòng tiền của Polar đi theo tài khoản Outstanding Receipts tiêu chuẩn của bạn, và khi một khoản chi trả của Polar - số tiền ròng, sau khi trừ phí nền tảng - về tới ngân hàng, kế toán viên của bạn đối chiếu khoản tiền về đó với các khoản thanh toán đứng sau nó bằng tiện ích đối soát ngân hàng sẵn có của Odoo, dựa trên số tiền và ngày tháng làm tín hiệu khớp. Phí nền tảng lộ ra ngay tại đây, dưới dạng phần chênh lệch giữa các khoản thanh toán tổng và khoản tiền ròng về tài khoản. Đây là một phương pháp đối soát mang tính suy đoán (heuristic), không phải một cách khớp từng đơn hàng đáng tin cậy tuyệt đối - hãy lên kế hoạch đối soát của bạn cho phù hợp.
Polar không có webhook cho tranh chấp hoặc yêu cầu hoàn tiền bắt buộc
Mô-đun này không tiếp nhận hay xử lý bất kỳ sự kiện tranh chấp (dispute) hoặc yêu cầu hoàn tiền bắt buộc (chargeback) nào, vì Polar không phát webhook cho các sự kiện này. Tranh chấp được xử lý hoàn toàn trong bảng điều khiển của Polar, và chỉ đến được Odoo một cách gián tiếp, thông qua số liệu payout mà kế toán viên của bạn đối soát.
Bật Hóa đơn tự động, nếu không sẽ phát sinh khoản trả trước chưa đối soát
Polar thu toàn bộ số tiền với vai trò Merchant-of-Record trước khi Odoo chắc chắn đã có hóa đơn cho khoản đó. Nếu tùy chọn Hóa đơn tự động (xem mục Bật Hóa đơn tự động ở trên) đang tắt, một lượt checkout qua Polar sẽ nằm trong Odoo dưới dạng khoản trả trước của khách hàng chưa được đối soát, cho đến khi có người tạo hóa đơn bằng tay. Biểu mẫu nhà cung cấp Polar sẽ luôn cảnh báo đúng điều này khi tùy chọn còn tắt; hãy bật tùy chọn này để mọi khoản thanh toán Polar đã tất toán được tự động xuất hóa đơn.
Phần mềm này và các tệp liên kết ("Phần mềm") được sử dụng (chạy, tuỳ biến, chạy sau khi được tuỳ biến) chỉ khi bạn mua được giấy phép có hiệu lực từ tác giả, điển hình như qua các Ứng dụng Odoo, hoặc trong trường hợp bạn nhận được thoả thuận bằng văn bản từ tác giả của Phần mềm (chi tiết tại tệp COPYRIGHT).
Bạn có thể phát triển các phân hệ Odoo có sử dụng Phần mềm như một Thư viện (thường là phụ thuộc vào, nhập vào và sử dụng nguồn của nó) nhưng không sao chéo bất kỳ mã nguồn hay tài liệu nào thuộc Phần mềm. Bạn có thể phân phối những phân hệ này theo giấy phép mà bạn lựa chọn, miễn sao nội dung giấy phép đó tương tích với điều khoản của Giấy phép Phần mềm Độc quyền Odoo (ví dụ: LGPL, MIT hay bất kỳ loại giấy phép phần mềm độc quyền nào tương tự vậy).
Nghiêm cấm phát hành, phân phối, cấp phép lại hoặc bán bản sao của Phần mềm hoặc bản sao Phần mềm đã được sửa đổi.
Thông báo bản quyền và chấp thuận nêu trên buộc phải được bao gồm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm.
PHẦN MỀM ĐƯỢC CUNG CẤP "NGUYÊN TRẠNG", KHÔNG BẢO ĐẢM DƯỚI BẤT KỲ HÌNH THỨC NÀO, ĐƯỢC THỂ HIỆN RÕ RÀNG HOẶC NGỤ Ý, KHÔNG GIỚI HẠN ĐẢM BẢO VỀ CÁC BẢO ĐẢM NGỤ Ý VỀ KHẢ NĂNG THƯƠNG MẠI, PHÙ HỢP VỚI MỤC ĐÍCH CỤ THỂ VÀ KHÔNG VI PHẠM. TRONG MỌI TRƯỜNG HỢP SẼ KHÔNG CÓ TÁC GIẢ HOẶC CHỦ SỞ HỮU BẢN QUYỀN NÀO CHỊU TRÁCH NHIỆM VỀ BẤT KỲ KHIẾU NẠI, THIỆT HẠI HOẶC TRÁCH NHIỆM PHÁP LÝ KHÁC NÀO TRONG PHẠM VI HỢP ĐỒNG, CÁC THIỆT HẠI HOẶC CÁCH KHÁC, PHÁT SINH TỪ, NGOÀI HOẶC CÓ LIÊN KẾT VỚI PHẦN MỀM HOẶC VIỆC SỬ DỤNG HOẶC KINH DOANH KHÁC TẠI PHẦN MỀM.