TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Point Of Sale
Folder size
5.16 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-10-05 00:19:47
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Xavier ALT, Raphael Collet, Odoo Translation Bot, Aaron Bohy, Géry Debongnie, Lucas Perais (lpe), Julien Castiaux, Victor Feyens, Adrien Dieudonné, Julien Mougenot, Tiffany Chang (tic), Gorash, Pierre Paridans, william-andre, Mathieu Walravens, luvi, rhe-odoo, David Monnom (moda), tsm-odoo, Pedram (PEBR), Mahamadasif Ansari, amdi-odoo, Dylan Kiss (dyki), tong-odoo, Brieuc-brd, Sarah Bellefroid, Louis Travaux, Adrien Guilliams (adgu), omra-odoo, Chrysanthe (chgo), sami odoo, Harsh Shah, Parth Solanki[PASO], manv-afk, Max Whale, parp-odoo, Loukas Wets (lowe), yaso, Xavier Luyckx (xlu), paan-odoo, Jitendra Prajapat, David Monnom, Arthur Nanson, Pierre Pulinckx, Michaël Mattiello, Mahdi Alijani (malj), Krzysztof Magusiak (krma), Ajit Singh, zadh-odoo, vpan-odoo, dhruv, vlst-odoo, Radu Macocian (admac), Guillaume V, Meet Jivani [MEJI], Hadi El Yakhni, bhra-odoo, romc-odoo, sjai-odoo, Julien Launois (jula), Saurabh, Nisarg (nipl), Ravij Parikh, Traina Ludo, rpka-odoo, Stephane Vanmeerhaeghe (stva), Youssef (yoma), Léopold Cantraine, Eve Lin (evlin), abhk-odoo, Youssef (abyo), Nikita Desai, mson-odoo, ELCO, adgu-odoo, Shubham Agarwal, Shubham Agarwal(shag), jipr-odoo, Abhishek Khant, Vedant Pandey (vpan-odoo), Julien Coppin (jucop), jean (jebou), nby, Jean Schoenlaub, pusu-odoo, Aditi Pawar(adpaw), Ahmed Hamila
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_id_pos_self_order_qris, pos_online_payment_self_order, pos_self_order_bancontact_pay, pos_self_order_event, pos_self_order_pine_labs, pos_self_order_qfpay, pos_self_order_razorpay, pos_self_order_sale, pos_self_order_sms
Description

Code Analysis info_outline

Views touched (18)
XML IDNameModelTypeStatus
custom_link_tree custom.link.list pos_self_order.custom_link list New
pos_config_view_form_inherit_pos_self_order pos.config.form.inherited.pos.self.order pos.config form Inherits point_of_sale.pos_config_view_form
pos_self_order.DynamicQrReceipt pos_self_order.DynamicQrReceipt ir.ui.view qweb New
pos_self_order.index POS Self Order ir.ui.view qweb New
pos_self_order.pos_order_change_receipt pos_self_order.pos_order_change_receipt ir.ui.view qweb Inherits point_of_sale.pos_order_change_receipt
pos_self_order.pos_order_receipt_header pos_self_order.pos_order_receipt_header ir.ui.view qweb Inherits point_of_sale.pos_order_receipt_header
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
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.list.self.order.inherit product.template list Inherits point_of_sale.product_template_tree_view_point_of_sale
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
view_pos_preset_tree pos.preset.list pos.preset list Inherits point_of_sale.view_pos_preset_tree
HTTP endpoints (17)
Route(s)HandlerAuthTypeMethodsFlags
/pos-self/data/<config_id> PosSelfKiosk.get_self_ordering_data public jsonrpc ALL website
/pos-self/<config_id>, /pos-self/<config_id>/<path:subpath> PosSelfKiosk.start_self_ordering public http ALL website
/pos-self-order/change-printer-status PosSelfOrderController.change_printer_status public jsonrpc ALL website
/pos-self-order/get-order/<int:order_id> PosSelfOrderController.get_order 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
/pos-self/autocomplete/address PosSelfOrderController.pos_self_order_autocomplete_address public jsonrpc POST sudo website
/pos-self/autocomplete/address_full PosSelfOrderController.pos_self_order_autocomplete_address_full public jsonrpc POST sudo website
/kiosk/payment/<int:pos_config_id>/<device_type> PosSelfOrderController.pos_self_order_kiosk_payment public jsonrpc ALL website
/kiosk/payment_method_action/<action> PosSelfOrderController.pos_self_order_kiosk_payment_method_action public jsonrpc ALL website
/pos-self-order/receipt/<int:order_id> PosSelfOrderController.pos_self_order_receipt public http ALL sudo
/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/validate-partner PosSelfOrderController.validate_partner public jsonrpc ALL sudo website
(inherited route override) WebManifest.scoped_app_icon_png inherited http ALL
Models touched (24)

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (14)
  • 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='Media items to display on the self order screen' string='Add Media' 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_primary_color Char
    default=<expr> string='Color'
  • 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'), ('dynamic_qr', 'Dynamic QR')]
  • 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 (13)
  • action_close_kiosk_session(self)
  • action_open_wizard(self)
  • close_ui(self)
  • create(self, vals_list)
    @api.model_create_multi
  • get_dynamic_qr_url(self, order_id: int) -> str
  • 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_onboarding_kiosk_scenario(self)
    @api.model
  • load_self_data(self)
  • notify_session_state_changed(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)
  • cancel_order_from_pos(self)
  • recompute_prices(self)
  • remove_from_ui(self, server_ids)
    @api.model
  • sync_from_ui(self, orders)
    @api.model

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 (1)
  • order_receipt_generate_data(self, basic_receipt=False)

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 (16)
  • available_in_self Boolean
    default=False string='Available in self'
  • delivery_distance_unit Selection
    default=<expr> selection=[('km', 'km'), ('mi', 'mi')] string='Distance unit'
  • delivery_from_address Char
    compute='_compute_delivery_from_address' store=True string='Sender address'
  • delivery_from_city Char
    string='City'
  • delivery_from_country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • delivery_from_latitude Float
    digits=(10, 7) string='Latitude'
  • delivery_from_longitude Float
    digits=(10, 7) string='Longitude'
  • delivery_from_state_id Many2one → res.country.state
    comodel_name='res.country.state' string='State'
  • delivery_from_street Char
    string='Street'
  • delivery_from_zip Char
    string='Zip'
  • delivery_max_distance_km Float
    default=10.0 help='Maximum delivery distance, in the unit shown next to the field.' string='Max radius'
  • delivery_product_id Many2one → product.product
    comodel_name='product.product' default=<expr> help='Product used for delivery fees in self order.' string='Delivery Product'
  • delivery_product_price Float
    default=0.0 string='Fixed Price'
  • free_delivery_min_amount Float
    help='Delivery is free when the order total reaches this amount.' string='Free if order amount is above'
  • 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 (3)
  • create(self, vals_list)
    @api.model_create_multi
  • default_get(self, fields)
    @api.model
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • close_session_from_ui(self, payment_method_closing={})

New fields (1)
  • type Selection
    ondelete={'self-ordering': 'cascade'} selection_add=[('self-ordering', 'Self Order Service')]
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 (11)
  • 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_primary_color Char
    readonly=False related='pos_config_id.self_ordering_primary_color'
  • pos_self_ordering_service_mode Selection
    readonly=False related='pos_config_id.self_ordering_service_mode' required=True
Public methods (6)
  • 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)

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…

Loading…