Repository
odoo/odoo · module folder
Module version
1.0
Category
Sales/Point Of Sale
Folder size
4.45 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-08-21 16:14:25
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier ALT, Raphael Collet, Odoo Translation Bot, David Monjoie, Aaron Bohy, qsm-odoo, Pierre Masereel, Laurent Smet, Alexandre Kühn, Julien Castiaux, Andrea Grazioso (agr-odoo), Sébastien Theys, Julien Mougenot, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Romain Estievenart, Arnaud Baes, roen-odoo, Mathieu Walravens, rhe-odoo, Habib (ayh), Loan (LSE), David Monnom (moda), tsm-odoo, alsh-odoo, Pedram (PEBR), Adrien Widart (awt), Dylan Kiss (dyki), Sarah Bellefroid, Pedram (pebr), Louis Travaux, Adrien Guilliams (adgu), shag-odoo, sesn-odoo, Walid (wasa), Maryam Kia, Junqi Wu, Parth Solanki[PASO], manv-afk, Max Whale, Joseph (jcb), parp-odoo, Loukas Wets (lowe), yaso, Xavier Luyckx (xlu), gteboul, Pierre Pulinckx (PIPU), paan-odoo, Jitendra Prajapat, David Monnom, Nesma Harraz, Arthur Nanson, Pierre Pulinckx, Anton Romanova (roan), Bastien PIERRE, Corentin Heinix (cohe), lse-odoo, Krzysztof Magusiak (krma), Omar (OSAH), Ajit Singh, Shubham Agarwal [SHAG], vpan-odoo, dhruv, vlst-odoo, Radu Macocian (admac), Guillaume V, Meet Jivani [MEJI], Hadi El Yakhni, bhra-odoo, sjai-odoo, Ali Hassan (alhy), Traina Ludo, rpka-odoo, Stephane Vanmeerhaeghe (stva), Youssef (yoma), Léopold Cantraine, Eve Lin (evlin), abhk-odoo, Nikita Desai, mson-odoo, ELCO, adgu-odoo, jipr-odoo, Abhishek Khant
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
pos_online_payment_self_order, pos_self_order_adyen, pos_self_order_pine_labs, pos_self_order_qfpay, pos_self_order_razorpay, pos_self_order_sale, pos_self_order_stripe, pos_self_order_viva_com
Description

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
custom_link_tree custom.link.list pos_self_order.custom_link list New
pos_self_order.index POS Self Order ir.ui.view qweb New
pos_self_order_menu_item pos.config.kanban.view.inherit.self_order pos.config kanban Inherits point_of_sale.view_pos_config_kanban
pos_self_order_product_pos_category_form_view pos.self.pos.category.form.view pos.category form Inherits point_of_sale.product_pos_category_form_view
pos_self_order_search_view pos.self.order.search.view pos.config search Inherits point_of_sale.view_pos_config_search
pos_self_order_table_form_view Restaurant Table restaurant.table form Inherits pos_restaurant.view_restaurant_table_form
pos_self_view_pos_config_tree pos.self.pos.config.list.view pos.config list Inherits point_of_sale.view_pos_config_tree
pos_self_view_pos_session_form pos.self.session.form.view pos.session form Inherits point_of_sale.view_pos_session_form
product_template_form_view product.template.form.inherit product.template form Inherits product.product_template_form_view
product_template_search_view_pos product.template.search.pos.form product.template form Inherits point_of_sale.product_template_search_view_pos
product_template_tree_view product.template.product.list.inherit product.template list Inherits point_of_sale.product_template_tree_view
qr_codes_page qr_codes_page ir.ui.view qweb New
res_config_settings_view_form_menu res.config.settings.view.form.inherit.pos_self_order.view res.config.settings form Inherits point_of_sale.res_config_settings_view_form
view_pos_preset_form pos.preset.form pos.preset form Inherits point_of_sale.view_pos_preset_form
HTTP endpoints (14)
Route(s)HandlerAuthTypeMethodsFlags
/pos-self/data/<config_id> PosSelfKiosk.get_self_ordering_data public jsonrpc ALL website
/pos-self/relations/<config_id> PosSelfKiosk.get_self_ordering_relations public jsonrpc ALL
/pos-self/<config_id>, /pos-self/<config_id>/<path:subpath> PosSelfKiosk.start_self_ordering public http ALL sudo website
/pos-self-order/change-printer-status PosSelfOrderController.change_printer_status public jsonrpc ALL website
/pos-self-order/get-user-data PosSelfOrderController.get_orders_by_access_token public jsonrpc ALL website
/pos-self-order/get-slots PosSelfOrderController.get_slots public jsonrpc ALL website
/pos_self_order/kiosk/increment_nb_print/ PosSelfOrderController.pos_kiosk_increment_nb_print public jsonrpc ALL website
/pos-self/ping PosSelfOrderController.pos_ping public jsonrpc ALL
/kiosk/payment/<int:pos_config_id>/<device_type> PosSelfOrderController.pos_self_order_kiosk_payment public jsonrpc ALL website
/pos-self-order/process-order/<device_type>/ PosSelfOrderController.process_order public jsonrpc ALL sudo website
/pos-self-order/remove-order PosSelfOrderController.remove_order public jsonrpc ALL website
/pos-self-order/send_self_order_receipt PosSelfOrderController.send_self_order_receipt public jsonrpc ALL website
/pos-self-order/validate-partner PosSelfOrderController.validate_partner public jsonrpc ALL sudo website
(inherited route override) WebManifest.scoped_app_icon_png inherited http ALL
Models touched (19)

New fields (0)

No new fields.

Public methods (1)
  • get_nearest_lang(self, lang_code: str) -> str
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • pos_config_ids Many2many → pos.config
    string='Linked PoS Configurations' args: 'pos.config'
Public methods (0)

No public methods.

New fields (13)
  • has_paper Boolean
    default=True args: 'Has paper'
  • self_ordering_available_language_ids Many2many → res.lang
    default=_self_order_kiosk_default_languages help='Languages available for the kiosk mode' string='Available Languages' args: 'res.lang'
  • self_ordering_default_language_id Many2one → res.lang
    default=<expr> help='Default language for the kiosk mode' string='Default Language' args: 'res.lang'
  • self_ordering_default_user_id Many2one → res.users
    default=_self_order_default_user help='Access rights of this user will be used when visiting self order website when no session is open.' string='Default User' args: 'res.users'
  • self_ordering_image_background_ids Many2many → ir.attachment
    bypass_search_access=True help='Image to be displayed in the background' relation='pos_self_order_background_rels' string='Set background image' args: 'ir.attachment'
  • self_ordering_image_brand Image
    help='Image to display on the self order screen' max_height=250 max_width=1200 string='Self Order Kiosk Image Brand'
  • self_ordering_image_brand_name Char
    help='Name of the image to display on the self order screen' string='Self Order Kiosk Image Brand Name'
  • self_ordering_image_home_ids Many2many → ir.attachment
    bypass_search_access=True help='Image to display on the self order screen' string='Add images' args: 'ir.attachment'
  • self_ordering_mode Selection
    default='nothing' help='Choose the self ordering mode' required=True string='Self Ordering Mode' args: [('nothing', 'Disable'), ('consultation', 'QR menu'), ('mobile', 'QR menu + Ordering'), ('kiosk', 'Kiosk')]
  • self_ordering_pay_after Selection
    default='meal' help='Choose when the customer will pay' required=True selection=<expr> string='Pay After:'
  • self_ordering_service_mode Selection
    default='counter' help='Choose the kiosk mode' required=True string='Self Ordering Service Mode' args: [('counter', 'Pickup zone'), ('table', 'Table')]
  • self_ordering_url Char
    compute='_compute_self_ordering_url'
  • status Selection
    compute='_compute_status' store=False string='Status' args: [('inactive', 'Inactive'), ('active', 'Active')]
Public methods (12)
  • action_close_kiosk_session(self)
  • action_open_wizard(self)
  • close_ui(self)
  • create(self, vals_list)
    @api.model_create_multi
  • get_kiosk_url(self)
  • get_pos_qr_order_data(self)
  • has_valid_self_payment_method(self)
    Checks if the POS config has a valid payment method (terminal or online).
  • load_data_params(self)
  • load_onboarding_kiosk_scenario(self)
    @api.model
  • load_self_data(self)
  • preview_self_order_app(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • self_ordering_table_id Many2one → restaurant.table
    readonly=True string='Table reference' args: 'restaurant.table'
  • source Selection
    selection_add=[('mobile', 'Self-Order Mobile'), ('kiosk', 'Self-Order Kiosk')]
  • table_stand_number Char
    string='Table Stand Number'
Public methods (6)
  • action_pos_order_cancel(self)
  • action_send_self_order_receipt(self, email, mail_template_id, ticket_image, basic_image)
  • recompute_prices(self)
  • remove_from_ui(self, server_ids)
    @api.model
  • sync_from_ui(self, orders)
    @api.model
  • write(self, vals)

New fields (1)
  • combo_id Many2one → product.combo
    string='Combo reference' args: 'product.combo'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • available_in_self Boolean
    default=False string='Available in self'
  • mail_template_id Many2one → mail.template
    comodel_name='mail.template' domain="[('model', '=', 'pos.order')]" string='Email Confirmation'
  • service_at Selection
    default='counter' required=True string='Service at' args: [('counter', 'Pickup zone'), ('table', 'Table'), ('delivery', 'Delivery')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • link_html Html
    compute='_compute_link_html' readonly=True store=True args: 'Preview'
  • name Char
    required=True string='Label' translate=True
  • pos_config_ids Many2many → pos.config
    domain="[('self_ordering_mode', '!=', 'nothing')]" help="Select for which points of sale you want to display this link. Leave empty to display it for all points of sale. You have to select among the points of sale that have the 'QR Code Menu' feature enabled." string='Points of Sale' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • style Selection
    default='primary' required=True string='Style' args: [('primary', 'Primary'), ('secondary', 'Secondary'), ('success', 'Success'), ('warning', 'Warning'), ('danger', 'Danger'), ('info', 'Info'), ('light', 'Light'), ('dark', 'Dark')]
  • url Char
    required=True string='URL'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • self_order_available Boolean
    default=True help='If this product is available in the Self Order screens' string='Available in Self Order'
  • self_order_visible Boolean
    compute='_compute_self_order_visible'
Public methods (1)
  • write(self, vals)

New fields (10)
  • pos_self_ordering_available_language_ids Many2many
    readonly=False related='pos_config_id.self_ordering_available_language_ids'
  • pos_self_ordering_default_language_id Many2one
    readonly=False related='pos_config_id.self_ordering_default_language_id'
  • pos_self_ordering_default_user_id Many2one
    readonly=False related='pos_config_id.self_ordering_default_user_id'
  • pos_self_ordering_image_background_ids Many2many
    readonly=False related='pos_config_id.self_ordering_image_background_ids'
  • pos_self_ordering_image_brand Image
    readonly=False related='pos_config_id.self_ordering_image_brand'
  • pos_self_ordering_image_brand_name Char
    readonly=False related='pos_config_id.self_ordering_image_brand_name'
  • pos_self_ordering_image_home_ids Many2many
    readonly=False related='pos_config_id.self_ordering_image_home_ids'
  • pos_self_ordering_mode Selection
    readonly=False related='pos_config_id.self_ordering_mode' required=True
  • pos_self_ordering_pay_after Selection
    readonly=False related='pos_config_id.self_ordering_pay_after' required=True
  • pos_self_ordering_service_mode Selection
    readonly=False related='pos_config_id.self_ordering_service_mode' required=True
Public methods (7)
  • custom_link_action(self)
  • generate_qr_codes_page(self)
    Generate the data needed to print the QR codes page
  • generate_qr_codes_zip(self)
  • get_pos_qr_stands(self)
    Redirect to the get the free stands with the data of QR codes for the current POS config
  • pos_close_ui(self)
  • preview_self_order_app(self)
  • update_access_tokens(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • identifier Char
    copy=False default=<expr> required=True args: 'Security Token'
Public methods (0)

No public methods.

Loading…

Loading…