Restaurant

pos_restaurant
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Aaron Bohy, Alexandre Kühn, Julien Castiaux, Xavier-Do, Victor Feyens, Julien Mougenot, Achraf (abz), Tiffany Chang (tic), Gorash, Pierre Paridans, odoo, roen-odoo, Renaud Thiry, rhe-odoo, David Monnom (moda), alsh-odoo, Pedram (PEBR), Louis Wicket (wil), Victor Piryns (pivi), Mahamadasif Ansari, Claire Bretton (clbr), Levi Siuzdak (sile), Dylan Kiss (dyki), Sarah Bellefroid, Louis Travaux, Pedram (pebr), Adrien Guilliams (adgu), shag-odoo, vava-odoo, kcv-odoo, Chrysanthe (chgo), mano-odoo, Joseph (jcb), parp-odoo, aamo-odoo, Loukas Wets (lowe), manv-afk, Xavier Luyckx (xlu), Stéphane Diez, gteboul, Pierre Pulinckx (PIPU), Jitendra Prajapat, paan-odoo, David Monnom, Nesma Harraz, Smit Patel, Arthur Nanson, Mohammad Abdulmoneim (abdu), Pierre Pulinckx, Bastien PIERRE, plha-odoo, kkuj-odoo, Shubham Agarwal [SHAG], Basioni (basm), Hadi El Yakhni, dhruv, Guillaume V, vlst-odoo, Meet Jivani [MEJI], ksku-odoo, vpan-odoo, bhra-odoo, aksi-odoo, sjai-odoo, Ali Hassan (alhy), path-odoo, suma-odoo, Léopold Cantraine, abhk-odoo, rpka-odoo, Stephane Vanmeerhaeghe, Stephane Vanmeerhaeghe (stva), Traina Ludo, chpa-odoo, Stephane vm, Shubham Agarwal(shag), krpat-odoo, adgu-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/app/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - resource
    - base
    - web
    - stock_account
    - stock
    - product
    - mail
    - base_setup
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - http_routing
    - auth_signup
    - account
    - onboarding
    - analytic
    - phone_validation
    - partner_autocomplete
    - iap_mail
    - iap
    - iot_base
    - google_address_autocomplete
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.pos_restaurant res.config.settings div Inherits point_of_sale.res_config_settings_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_pos_preset_form_inherit_pos_restaurant pos.preset.form pos.preset xpath Inherits point_of_sale.view_pos_preset_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor list New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (10)

New fields (5)
  • default_screen Selection
    default='tables' string='Default Screen' args: [('tables', 'Tables'), ('register', 'Register')]
  • floor_ids Many2many → restaurant.floor
    copy=False help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
  • load_onboarding_bar_scenario(self, with_demo_data=True)
    @api.model
  • load_onboarding_restaurant_scenario(self, with_demo_data=True)
    @api.model
  • write(self, vals)

New fields (3)
  • course_ids One2many → restaurant.order.course
    string='Courses' args: 'restaurant.order.course', 'order_id'
  • customer_count Integer
    help='The amount of customers that have been served by this order.' readonly=True string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index='btree_not_null' readonly=True string='Table' args: 'restaurant.table'
Public methods (1)
  • read_pos_data(self, data, config)

New fields (1)
  • course_id Many2one → restaurant.order.course
    index='btree_not_null' ondelete='set null' string='Course Ref' args: 'restaurant.order.course'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • use_guest Boolean
    default=False help='Force guest selection when clicking on order button in PoS restaurant' string='Guest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • pos_default_screen Selection
    readonly=False related='pos_config_id.default_screen'
  • pos_floor_ids Many2many
    readonly=False related='pos_config_id.floor_ids'
  • pos_iface_printbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_iface_splitbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_set_tip_after_payment Boolean
    compute='_compute_pos_set_tip_after_payment' readonly=False store=True
Public methods (0)

No public methods.

New fields (8)
  • active Boolean
    default=True
  • background_color Char
    help='The background color of the floor in a html-compatible format' args: 'Background Color'
  • background_image Binary
    args: 'Background Image'
  • floor_background_image Image
    string='Floor Background Image'
  • name Char
    required=True args: 'Floor Name'
  • pos_config_ids Many2many → pos.config
    domain="[('module_pos_restaurant', '=', True)]" string='Point of Sales' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • table_ids One2many → restaurant.table
    string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (4)
  • deactivate_floor(self, session_id)
  • rename_floor(self, new_name)
  • sync_from_ui(self, name, background_color, config_id)
    @api.model
  • write(self, vals)

New fields (6)
  • fired Boolean
    default=False string='Fired'
  • fired_date Datetime
    string='Fired Date'
  • index Integer
    default=0 string='Course index'
  • line_ids One2many → pos.order.line
    readonly=True string='Order Lines' args: 'pos.order.line', 'course_id'
  • order_id Many2one → pos.order
    index=True ondelete='cascade' required=True string='Order Ref' args: 'pos.order'
  • uuid Char
    copy=False default=<expr> readonly=True string='Uuid'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (11)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    index='btree_not_null' string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • parent_id Many2one → restaurant.table
    help='The parent table if this table is part of a group of tables' string='Parent Table' args: 'restaurant.table'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • table_number Integer
    default=0 help='The number of the table as displayed on the floor plan' required=True args: 'Table Number'
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (2)
  • are_orders_still_in_draft(self)
  • set_parent_id(self, parent_id, config_id)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Aaron Bohy, Yannick Tivisse, Odoo Online, Laurent Smet, Xavier-Do, Joseph Caburnay, Julien Mougenot, Tiffany Chang (tic), Gorash, roen-odoo, Vincent Larcin, Loan (LSE), David Monnom (moda), Pedram (PEBR), Louis Wicket (wil), tsm-odoo, Mahamadasif Ansari, Gauthier Wala (gawa), Claire Bretton (clbr), Dylan Kiss (dyki), Chong Wang (cwg), AH-Yussef, Sarah Bellefroid, Pedram (pebr), Adrien Guilliams (adgu), omra-odoo, shag-odoo, Youssef Bashandy, Louis (loti), axtr, Julien Carion (juca), kcv-odoo, mega, Louis (wil), Joseph (jcb), parp-odoo, Victorien (viso), Loukas Wets (lowe), manv-afk, Shaan Thakkar (THSH), vlst, Pierre Pulinckx (PIPU), Jitendra Prajapat, paan-odoo, David Monnom, Nesma Harraz, Arthur Nanson, Ahmed Abdelaziz Hasaneen, Pierre Pulinckx (pipu), Pierre Pulinckx, Bastien PIERRE, Baptiste Pellarin, Shubham Agarwal [SHAG], Robin Engels (roen), Hadi El Yakhni, dhruv, vlst-odoo, Meet Jivani [MEJI], ksku-odoo, vpan-odoo, aksi-odoo, sjai-odoo, Ali Hassan (alhy), David (davg), nesma-neha, Ali (alhy), zadh-odoo, rpka-odoo, taal-odoo, Audrey (auva), vladstroia
WEBSITE
WEBSITEhttps://www.odoo.com/app/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.pos_restaurant res.config.settings div Inherits point_of_sale.res_config_settings_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor list New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (8)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • floor_ids Many2many → restaurant.floor
    copy=False help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • module_pos_restaurant_appointment Boolean
    args: 'Table Booking'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
  • takeaway Boolean
    help='Allow to create orders for takeaway customers.' args: 'Takeaway'
  • takeaway_fp_id Many2one → account.fiscal.position
    help='This is useful for restaurants with onsite and take-away services that imply specific tax rates.' string='Alternative Fiscal Position' args: 'account.fiscal.position'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
  • load_onboarding_bar_scenario(self)
    @api.model
  • load_onboarding_restaurant_scenario(self)
    @api.model
  • write(self, vals)

New fields (3)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' readonly=True string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index='btree_not_null' readonly=True string='Table' args: 'restaurant.table'
  • takeaway Boolean
    default=False string='Take Away'
Public methods (4)
  • action_pos_order_cancel(self)
  • remove_from_ui(self, server_ids)
    @api.model
  • send_table_count_notification(self, table_ids)
  • sync_from_ui(self, orders)
    @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 (7)
  • pos_floor_ids Many2many
    readonly=False related='pos_config_id.floor_ids'
  • pos_iface_printbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_iface_splitbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_module_pos_restaurant_appointment Boolean
    readonly=False related='pos_config_id.module_pos_restaurant_appointment'
  • pos_set_tip_after_payment Boolean
    compute='_compute_pos_set_tip_after_payment' readonly=False store=True
  • pos_takeaway Boolean
    readonly=False related='pos_config_id.takeaway'
  • pos_takeaway_fp_id Many2one
    readonly=False related='pos_config_id.takeaway_fp_id'
Public methods (0)

No public methods.

New fields (8)
  • active Boolean
    default=True
  • background_color Char
    default='rgb(249,250,251)' help='The background color of the floor in a html-compatible format' args: 'Background Color'
  • background_image Binary
    args: 'Background Image'
  • floor_background_image Image
    string='Floor Background Image'
  • name Char
    required=True args: 'Floor Name'
  • pos_config_ids Many2many → pos.config
    domain="[('module_pos_restaurant', '=', True)]" string='Point of Sales' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • table_ids One2many → restaurant.table
    string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (4)
  • deactivate_floor(self, session_id)
  • rename_floor(self, new_name)
  • sync_from_ui(self, name, background_color, config_id)
    @api.model
  • write(self, vals)

New fields (11)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    default='#35D374' help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • parent_id Many2one → restaurant.table
    help='The parent table if this table is part of a group of tables' string='Parent Table' args: 'restaurant.table'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • table_number Integer
    default=0 help='The number of the table as displayed on the floor plan' required=True args: 'Table Number'
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • are_orders_still_in_draft(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Xavier Morel, qdp-odoo, Géry Debongnie, Yannick Tivisse, Odoo Online, Jorge Pinna Puissant, Xavier-Do, Victor Feyens, Joseph Caburnay, Samuel Degueldre, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, William Braeckman, Arnaud Baes, roen-odoo, pedrambiria, Jacky (trj), william-andre, Julien Van Roy, mafo-odoo, Demesmaeker, rhe-odoo, niyasraphy, Loan (LSE), David Monnom (moda), Archana Vaghasiya, Pedram (PEBR), Louis Wicket (wil), Saurabh Mishra, Djamel Touati, Fernanda Hernández, Dylan Kiss (dyki), Michael (mcm), CarmenMiranda, Brieuc-brd, AH-Yussef, Sarah Bellefroid, “moda”, Theo VINCENT (thvi), Pedram (pebr), Adrien Guilliams (adgu), stefanorigano (SRI), Youssef Bashandy, Jordan D. (Joda), axtr, Louis (wil), asno-odoo, Loukas Wets (lowe), manv-afk, Shaan Thakkar (THSH), vlst, Jitendra Prajapat, Pierre Pulinckx (pipu), Pulinckx Pierre (PIPU), Shubham Agarwal [SHAG], Hadi El Yakhni, vlst-odoo, vpan-odoo, sjai-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/app/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.pos_restaurant res.config.settings div Inherits point_of_sale.res_config_settings_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (8)

New fields (7)
  • floor_ids Many2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor'
  • iface_orderline_notes Boolean
    help='Allow custom Internal notes on Orderlines.' string='Internal Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • module_pos_restaurant Boolean
    default=True
  • module_pos_restaurant_appointment Boolean
    args: 'Table Booking'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
Public methods (5)
  • create(self, vals_list)
    @api.model_create_multi
  • get_tables_order_count_and_printing_changes(self)
  • post_install_pos_localisation(self, companies=False)
    @api.model
  • setup_defaults(self, company)
  • write(self, vals)

New fields (2)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' readonly=True string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index='btree_not_null' readonly=True string='Table' args: 'restaurant.table'
Public methods (5)
  • export_for_ui_table_draft(self, table_ids)
    @api.model
  • remove_from_ui(self, server_ids)
    @api.model
  • send_table_count_notification(self, table_ids)
  • set_no_tip(self)
    Override this method to introduce action when setting no tip.
  • set_tip(self, tip_line_vals)
    Set tip to `self` based on values in `tip_line_vals`.

New fields (1)
  • note Char
    args: 'Internal Note added by the waiter.'
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 (2)
  • get_onboarding_data(self)
  • get_pos_ui_restaurant_floor(self)

New fields (6)
  • pos_floor_ids Many2many
    readonly=False related='pos_config_id.floor_ids'
  • pos_iface_orderline_notes Boolean
    readonly=False related='pos_config_id.iface_orderline_notes'
  • pos_iface_printbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_iface_splitbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_module_pos_restaurant_appointment Boolean
    readonly=False related='pos_config_id.module_pos_restaurant_appointment'
  • pos_set_tip_after_payment Boolean
    compute='_compute_pos_set_tip_after_payment' readonly=False store=True
Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor in a html-compatible format' args: 'Background Color'
  • background_image Binary
    args: 'Background Image'
  • name Char
    required=True args: 'Floor Name'
  • pos_config_ids Many2many → pos.config
    domain="[('module_pos_restaurant', '=', True)]" string='Point of Sales' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • table_ids One2many → restaurant.table
    string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (4)
  • create_from_ui(self, name, background_color, config_id)
    @api.model
  • deactivate_floor(self, session_id)
  • rename_floor(self, new_name)
  • write(self, vals)

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    default='#35D374' help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • are_orders_still_in_draft(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Yannick Tivisse, qsm-odoo, Pierre Masereel, Romain Derie, Adrien Dieudonne, Jorge Pinna Puissant, Romeo Fragomeli, Victor Feyens, Hugo Adan, Joseph Caburnay, Julien Mougenot, Samuel Degueldre, Adrien Widart, Ivan Yelizariev, lejeune quentin, Gorash, Mathieu Duckerts-Antoine, Romain Estievenart, roen-odoo, pedrambiria, Jacky (trj), thcl-odoo, mafo-odoo, aliya, rhe-odoo, niyasraphy, Loan (LSE), David Monnom (moda), Eleftherios Kritsotakis, Pedram (PEBR), Fernanda Hernández, CarmenMiranda, Adrien Guilliams (adgu), Jordan D. (Joda), Martin Trigaux (mat), Loukas Wets (lowe), vlst
WEBSITE
WEBSITEhttps://www.odoo.com/app/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.pos_restaurant res.config.settings div Inherits point_of_sale.res_config_settings_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (9)

New fields (9)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom internal notes on Orderlines.' string='Internal Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printer'
  • is_table_management Boolean
    args: 'Floors & Tables'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
Public methods (3)
  • add_cash_payment_method(self)
    @api.model
  • get_tables_order_count(self)
  • write(self, vals)

New fields (3)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • multiprint_resume Char
    help='Last printed state of the order' string='Multiprint Resume'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index='btree_not_null' string='Table' args: 'restaurant.table'
Public methods (4)
  • get_table_draft_orders(self, table_ids)
    @api.model
    Generate an object of all draft orders for the given table. Generate and return an JSON object with all draft orders for the given table, to send to the front end application. :param table_ids: Ids of the selected tables. :type table_ids: list of int. :returns: list -- list of dict representing the table orders
  • remove_from_ui(self, server_ids)
    @api.model
    Remove orders from the frontend PoS application Remove orders from the server by id. :param server_ids: list of the id's of orders to remove from the server. :type server_ids: list. :returns: list -- list of db-ids for the removed orders.
  • set_no_tip(self)
    Override this method to introduce action when setting no tip.
  • set_tip(self, tip_line_vals)
    Set tip to `self` based on values in `tip_line_vals`.

New fields (3)
  • mp_skip Boolean
    args: 'Skip line when sending ticket to kitchen printers.'
  • note Char
    args: 'Internal Note added by the waiter.'
  • uuid Char
    copy=False readonly=True string='Uuid'
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 (8)
  • pos_floor_ids One2many
    domain=<expr> readonly=False related='pos_config_id.floor_ids'
  • pos_iface_orderline_notes Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_iface_printbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_iface_splitbill Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_is_order_printer Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_is_table_management Boolean
    compute='_compute_pos_module_pos_restaurant' readonly=False store=True
  • pos_printer_ids Many2many
    readonly=False related='pos_config_id.printer_ids'
  • pos_set_tip_after_payment Boolean
    compute='_compute_pos_set_tip_after_payment' readonly=False store=True
Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor in a html-compatible format' args: 'Background Color'
  • background_image Binary
    args: 'Background Image'
  • name Char
    required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 args: 'Sequence'
  • table_ids One2many → restaurant.table
    string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (1)
  • write(self, vals)

New fields (4)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • printer_type Selection
    default='iot' selection=[('iot', ' Use a printer connected to the IoT Box')] string='Printer Type'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Goffin Simon, Aaron Bohy, Yannick Tivisse, qsm-odoo, Pierre Masereel, Adrien Dieudonne, Jorge Pinna Puissant, Antoine Prieels, Xavier-Do, Romeo Fragomeli, Hugo Adan, Loan (lse), Joseph Caburnay, Nasreddin (bon), Julien Mougenot, Anh Thao Pham (pta), Adrien Widart, lejeune quentin, Romain Estievenart, roen-odoo, Robin Heinz, pedrambiria, Jacky (trj), thcl-odoo, rhe-odoo, niyasraphy, Eleftherios Kritsotakis, Pedram (PEBR), Fernanda Hernández, CarmenMiranda, ayo-odoo, Jordan D. (Joda), Basit, payen000
WEBSITE
WEBSITEhttps://www.odoo.com/app/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
pos_config_view_form_inherit_restaurant pos.config.form.inherit.restaurant pos.config div Inherits point_of_sale.pos_config_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (7)

New fields (9)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom internal notes on Orderlines.' string='Internal Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printer'
  • is_table_management Boolean
    args: 'Floors & Tables'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
Public methods (3)
  • add_cash_payment_method(self)
    @api.model
  • get_tables_order_count(self)
  • write(self, vals)

New fields (3)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • multiprint_resume Char
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index=True string='Table' args: 'restaurant.table'
Public methods (4)
  • get_all_table_draft_orders(self, pos_config_id)
    @api.model
  • get_table_draft_orders(self, table_id)
    @api.model
    Generate an object of all draft orders for the given table. Generate and return an JSON object with all draft orders for the given table, to send to the front end application. :param table_id: Id of the selected table. :type table_id: int. :returns: list -- list of dict representing the table orders
  • set_no_tip(self)
    Override this method to introduce action when setting no tip.
  • set_tip(self, tip_line_vals)
    Set tip to `self` based on values in `tip_line_vals`.

New fields (3)
  • mp_dirty Boolean
  • mp_skip Boolean
    args: 'Skip line when sending ticket to kitchen printers.'
  • note Char
    args: 'Internal Note added by the waiter.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (1)
  • write(self, vals)

New fields (4)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • printer_type Selection
    default='iot' selection=[('iot', ' Use a printer connected to the IoT Box')] string='Printer Type'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Goffin Simon, Yannick Tivisse, qsm-odoo, Pierre Masereel, Antoine Prieels, Xavier-Do, Romeo Fragomeli, Victor Feyens, Joseph Caburnay, Nasreddin (bon), fw-bot, Anh Thao Pham (pta), Adrien Widart, lejeune quentin, Romain Estievenart, Kevin Baptiste, roen-odoo, Robin Heinz, pedrambiria, Jacky (trj), thcl-odoo, rhe-odoo, niyasraphy, Fernanda Hernández, Cyril VINH-TUNG
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
assets_backend hr assets ir.ui.view qweb Inherits web.assets_backend
assets_tests POS Restaurant Assets Tests ir.ui.view qweb Inherits web.assets_tests
pos_config_view_form_inherit_restaurant pos.config.form.inherit.restaurant pos.config button Inherits point_of_sale.pos_config_view_form
pos_restaurant.qunit_suite_tests pos_restaurant.qunit_suite_tests ir.ui.view qweb Inherits point_of_sale.qunit_suite_tests
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_search restaurant.floor.search restaurant.floor search New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (7)

New fields (9)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom notes on Orderlines.' string='Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printer'
  • is_table_management Boolean
    args: 'Floors & Tables'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
  • set_tip_after_payment Boolean
    help='Adjust the amount authorized by payment terminals to add a tip after the customers left or at the end of the day.' args: 'Set Tip After Payment'
Public methods (2)
  • get_tables_order_count(self)
  • write(self, vals)

New fields (3)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • multiprint_resume Char
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index=True string='Table' args: 'restaurant.table'
Public methods (3)
  • get_table_draft_orders(self, table_id)
    @api.model
    Generate an object of all draft orders for the given table. Generate and return an JSON object with all draft orders for the given table, to send to the front end application. :param table_id: Id of the selected table. :type table_id: int. :returns: list -- list of dict representing the table orders
  • set_no_tip(self)
    Override this method to introduce action when setting no tip.
  • set_tip(self, tip_line_vals)
    Set tip to `self` based on values in `tip_line_vals`.

New fields (3)
  • mp_dirty Boolean
  • mp_skip Boolean
    args: 'Skip line when sending ticket to kitchen printers.'
  • note Char
    args: 'Note added by the waiter.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (2)
  • unlink(self)
  • write(self, vals)

New fields (4)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • printer_type Selection
    default='iot' selection=[('iot', ' Use a printer connected to the IoT Box')] string='Printer Type'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (2)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
  • unlink(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales/Point Of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, David Monjoie, Xavier Morel, Joren Van Onder, Aaron Bohy, GitHub, Damien Bouvy, Yannick Tivisse, qsm-odoo, Pierre Masereel, Gert Pellin, Antoine Prieels, Xavier-Do, Sébastien Theys, Joseph Caburnay, Nasreddin (bon), Adrien Widart, Robin Heinz, Jacky (trj), thcl-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several features to the Point of Sale that are specific to restaurant management:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
assets_backend hr assets ir.ui.view qweb Inherits web.assets_backend
assets_tests POS Restaurant Assets Tests ir.ui.view qweb Inherits web.assets_tests
pos_config_view_form_inherit_restaurant pos.config.form.inherit.restaurant pos.config button Inherits point_of_sale.pos_config_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (6)

New fields (8)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom notes on Orderlines.' string='Orderline Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printer'
  • is_table_management Boolean
    args: 'Table Management'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
Public methods (1)
  • get_tables_order_count(self)

New fields (2)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' index=True string='Table' args: 'restaurant.table'
Public methods (1)
  • get_table_draft_orders(self, table_id)
    @api.model
    Generate an object of all draft orders for the given table. Generate and return an JSON object with all draft orders for the given table, to send to the front end application. :param table_id: Id of the selected table. :type table_id: int. :returns: list -- list of dict representing the table orders

New fields (2)
  • mp_skip Boolean
    args: 'Skip line when sending ticket to kitchen printers.'
  • note Char
    args: 'Note added by the waiter.'
Public methods (0)

No public methods.

New fields (6)
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (1)
  • unlink(self)

New fields (4)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • printer_type Selection
    default='iot' selection=[('iot', ' Use a printer connected to the IoT Box')] string='Printer Type'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Josse Colpaert, Christophe Simonis, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Antoine Prieels, Xavier-Do, Kinjal Mehta
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale-restaurant
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - http_routing
    - digest
    - web_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several restaurant features to the Point of Sale:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
pos_config_view_form_inherit_restaurant pos.config.form.inherit.restaurant pos.config button Inherits point_of_sale.pos_config_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (5)

New fields (8)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom notes on Orderlines.' string='Orderline Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printer'
  • is_table_management Boolean
    args: 'Table Management'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
Public methods (0)

No public methods.

New fields (2)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' string='Table' args: 'restaurant.table'
Public methods (0)

No public methods.

New fields (6)
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    attachment=True help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Olivier Dony, Denis Ledoux, Christophe Simonis, Joren Van Onder, Goffin Simon, Jérome Maes, qdp-odoo, Aaron Bohy, GitHub, Yannick Tivisse, Odoo Online, Pierre Masereel, Adrien Dieudonne, Christophe Monniez, Gert Pellin
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
    - account
    - analytic
    - portal
    - http_routing
    - web_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

This module adds several restaurant features to the Point of Sale:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
pos_config_view_form_inherit_restaurant pos.config.form.inherit.restaurant pos.config button Inherits point_of_sale.pos_config_view_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_kanban restaurant.floor.kanban restaurant.floor kanban New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (5)

New fields (8)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale.' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom notes on Orderlines.' string='Orderline Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment.' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale.' string='Bill Splitting'
  • is_order_printer Boolean
    args: 'Order Printers'
  • is_table_management Boolean
    args: 'Table Management'
  • module_pos_restaurant Boolean
    default=True
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
Public methods (0)

No public methods.

New fields (2)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' string='Table' args: 'restaurant.table'
Public methods (0)

No public methods.

New fields (6)
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    attachment=True help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Denis Ledoux, Christophe Simonis, Joren Van Onder, Nicolas Martinelli, Jérome Maes, Julien Legros, qdp-odoo, Lucas Perais (lpe), Yannick Tivisse
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

=======================

This module adds several restaurant features to the Point of Sale:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
view_pos_config_form pos.config.form.view.inherit pos.config sheet Inherits point_of_sale.view_pos_config_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (5)

New fields (5)
  • floor_ids One2many → restaurant.floor
    help='The restaurant floors served by this point of sale' string='Restaurant Floors' args: 'restaurant.floor', 'pos_config_id'
  • iface_orderline_notes Boolean
    help='Allow custom notes on Orderlines' string='Orderline Notes'
  • iface_printbill Boolean
    help='Allows to print the Bill before payment' string='Bill Printing'
  • iface_splitbill Boolean
    help='Enables Bill Splitting in the Point of Sale' string='Bill Splitting'
  • printer_ids Many2many → restaurant.printer
    string='Order Printers' args: 'restaurant.printer', 'pos_config_printer_rel', 'config_id', 'printer_id'
Public methods (0)

No public methods.

New fields (2)
  • customer_count Integer
    help='The amount of customers that have been served by this order.' string='Guests'
  • table_id Many2one → restaurant.table
    help='The table where this order was served' string='Table' args: 'restaurant.table'
Public methods (0)

No public methods.

New fields (6)
  • background_color Char
    default='rgb(210, 210, 210)' help='The background color of the floor layout, (must be specified in a html-compatible format)' args: 'Background Color'
  • background_image Binary
    attachment=True help='A background image used to display a floor layout in the point of sale interface' args: 'Background Image'
  • name Char
    help='An internal identification of the restaurant floor' required=True args: 'Floor Name'
  • pos_config_id Many2one → pos.config
    string='Point of Sale' args: 'pos.config'
  • sequence Integer
    default=1 help='Used to sort Floors' args: 'Sequence'
  • table_ids One2many → restaurant.table
    help='The list of tables in this floor' string='Tables' args: 'restaurant.table', 'floor_id'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    default='Printer' help='An internal identification of the printer' required=True args: 'Printer Name'
  • product_categories_ids Many2many → pos.category
    string='Printed Product Categories' args: 'pos.category', 'printer_category_rel', 'printer_id', 'category_id'
  • proxy_ip Char
    help="The IP Address or hostname of the Printer's hardware proxy" args: 'Proxy IP Address'
Public methods (0)

No public methods.

New fields (10)
  • active Boolean
    default=True help='If false, the table is deactivated and will not be available in the point of sale' args: 'Active'
  • color Char
    help="The table's color, expressed as a valid 'background' CSS property value" args: 'Color'
  • floor_id Many2one → restaurant.floor
    string='Floor' args: 'restaurant.floor'
  • height Float
    default=50 help="The table's height in pixels" args: 'Height'
  • name Char
    help='An internal identification of a table' required=True args: 'Table Name'
  • position_h Float
    default=10 help="The table's horizontal position from the left side to the table's center, in pixels" args: 'Horizontal Position'
  • position_v Float
    default=10 help="The table's vertical position from the top to the table's center, in pixels" args: 'Vertical Position'
  • seats Integer
    default=1 help='The default number of customer served at this table.' args: 'Seats'
  • shape Selection
    default='square' required=True string='Shape' args: [('square', 'Square'), ('round', 'Round')]
  • width Float
    default=50 help="The table's width in pixels" args: 'Width'
Public methods (1)
  • create_from_ui(self, table)
    @api.model
    create or modify a table from the point of sale UI. table contains the table's fields. If it contains an id, it will modify the existing table. It then returns the id of the table.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Antony Lesuisse, Olivier Dony, Denis Ledoux, Christophe Simonis, Joren Van Onder, Frédéric van der Essen, Nicolas Martinelli, Richard Mathot, Géry Debongnie, Martin, Yannick Tivisse
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_tip
    - web_planner
    - procurement
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

=======================

This module adds several restaurant features to the Point of Sale:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
view_pos_config_form pos.config.form.view.inherit pos.config sheet Inherits point_of_sale.view_pos_config_form
view_pos_pos_form pos.order.form.view.inherit pos.order xpath Inherits point_of_sale.view_pos_pos_form
view_restaurant_floor_form Restaurant Floors restaurant.floor form New
view_restaurant_floor_tree Restaurant Floors restaurant.floor tree New
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
view_restaurant_table_form Restaurant Table restaurant.table form New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/pos_restaurant
VERSION
VERSION 1.0
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Frederic van der Essen, Nicolas Lempereur
WEBSITE
WEBSITEhttps://www.odoo.com/page/point-of-sale
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - web_kanban_sparkline
    - account_voucher
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - board
    - edi
    - email_template
    - procurement
    - stock_account
    - stock
    - web_kanban_gauge
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

=======================

This module adds several restaurant features to the Point of Sale:
- Bill Printing: Allows you to print a receipt before the order is paid
- Bill Splitting: Allows you to split an order into different orders
- Kitchen Order Printing: allows you to print orders updates to kitchen or bar printers

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
assets_frontend assets_frontend ir.ui.view qweb Inherits web.assets_common
index Restaurant Index ir.ui.view qweb Inherits point_of_sale.index
view_pos_config_form pos.config.form.view.inherit pos.config sheet Inherits point_of_sale.view_pos_config_form
view_restaurant_printer Order Printers restaurant.printer tree New
view_restaurant_printer_form Order Printer restaurant.printer form New
Models touched (0)

No models found for this module.