From b8db75ba64b67e7aeb23bbf18904c1afa94c5122 Mon Sep 17 00:00:00 2001 From: yatiw-odoo Date: Wed, 25 Mar 2026 12:37:45 +0530 Subject: [PATCH] [ADD] pos_pay: add pay functionality to POS ticket screen Point of sale users were not able to pay from ticket screen which was quite frustrating for them. pos_pay app enables users to pay from ticket screen directly. this commit improves pos by: - add instant pay button to pos ticket screen. - direct load orders and pay from ticket screen - mobile responsive button. task - POS Improvements --- pos_pay/__manifest__.py | 24 +++++++++++++++++ .../static/src/app/screens/ticket_screen.js | 14 ++++++++++ .../static/src/app/screens/ticket_screen.xml | 27 +++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 pos_pay/__manifest__.py create mode 100644 pos_pay/static/src/app/screens/ticket_screen.js create mode 100644 pos_pay/static/src/app/screens/ticket_screen.xml diff --git a/pos_pay/__manifest__.py b/pos_pay/__manifest__.py new file mode 100644 index 00000000000..9b95996e8e5 --- /dev/null +++ b/pos_pay/__manifest__.py @@ -0,0 +1,24 @@ +{ + "name": "Instant Pay", + "summary": """ + Pay directly from Ticked Screen + """, + "description": """ + Pay directly from Ticked Screen + """, + "author": "Odoo", + "website": "https://www.odoo.com/", + "category": "Tutorials", + "version": "0.1", + "application": True, + "installable": True, + "depends": ["base", "point_of_sale"], + "data": [], + "assets": { + "point_of_sale._assets_pos": [ + "pos_pay/static/src/app/screens/ticket_screen.js", + "pos_pay/static/src/app/screens/ticket_screen.xml", + ], + }, + "license": "AGPL-3", +} diff --git a/pos_pay/static/src/app/screens/ticket_screen.js b/pos_pay/static/src/app/screens/ticket_screen.js new file mode 100644 index 00000000000..7fa8d4d38b8 --- /dev/null +++ b/pos_pay/static/src/app/screens/ticket_screen.js @@ -0,0 +1,14 @@ +import { patch } from "@web/core/utils/patch"; +import { TicketScreen } from "@point_of_sale/app/screens/ticket_screen/ticket_screen"; + +patch(TicketScreen.prototype, { + payFromTicketScreen() { + const selectedOrder = this.getSelectedOrder(); + if (!selectedOrder) { + this.env.services.notification.add("No order selected"); + return; + } + this.setOrder(selectedOrder); + this.pos.pay(); + }, +}); diff --git a/pos_pay/static/src/app/screens/ticket_screen.xml b/pos_pay/static/src/app/screens/ticket_screen.xml new file mode 100644 index 00000000000..2a96d9651ad --- /dev/null +++ b/pos_pay/static/src/app/screens/ticket_screen.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + +