OdooWiki OCA HUB

Point of Sale - Custom Bill by Environment

pos_environment folder_open OCA/server-env open_in_new
Point of Sale License: AGPL-3

This module extends the Odoo point of sale module to allow administrator to customize the bill printed by the point of sale, with a text depending on your environment. (Development, , Pre Production, Production, etc...)

The displayed and printed bill will display the custom message

This module is based on the mechanism introduced by the server_environment module.

Note

This module provides a feature that is legally required in some countries (such as France, under the law on accounting certification) where test and production receipts must be distinguishable.

auto_awesome What this module does

AI-generated from the code · Odoo 16.0

Lets administrators add a custom header and footer text to Point of Sale receipts, so tickets printed in test, pre-production or production environments can be told apart.

This module adds an "Environment Settings" block to the Point of Sale configuration screen. There, two read-only text areas show the header and footer that will be printed on receipts.

The content is not typed in Odoo: it comes from the server configuration mechanism provided by the server_environment module. The text is read from two configuration sections, one for the header and one for the footer, and each line found there is joined into the final message. Lines can be language-specific, so a different message can be shown depending on the language of the user.

On the Point of Sale side, the receipt screen is extended: the environment header is displayed after the standard receipt header, and the environment footer is displayed before the after-footer area. The same text therefore appears both on screen and on the printed bill.

Because the values are computed from the server configuration, they cannot be edited directly in the settings form; changing them requires updating the server configuration. This is useful where test and production receipts must be legally distinguishable.

Depends on

point_of_saleserver_environment
Models and fields (2)
  • pos.config · extends an existing modelreceipt_environment_footer, receipt_environment_header
  • res.config.settings · extends an existing modelreceipt_environment_footer, receipt_environment_header

Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/server-env.

terminal Installation and usage

OCA documentation · Odoo 16.0
  • Open your module server_environment_files
  • In each environment folder, create a new file named pos_environment.conf (for exemple)
  • In each file, write a section like this one, depending on your environment
[pos_environment_header]
line_1 = ===============================
line_2 = TICKET EDITED ON A TEST
line_3 = ENVIRONMENT
line_4 = ===============================

[pos_environment_footer]
line_1 = ===============================
line_2 = THIS TICKET HAS BEEN EDITED
line_3 = ON A TEST ENVIRONMENT
line_4 = -------------------------------
line_5 = IT CAN NOT BE CONSIDERED
line_6 = AS A PROOF OF PURCHASE
line_7 = ===============================

Internationalisation

If you deploy Odoo in a multi languages context, you can add a suffix __xx_xx in the name of each line, where xx_xx is the language. The text will be displayed on the bill, depending of the language of the current user. Sample :

line_1 = ===============================
line_2__en_US = TICKET EDITED ON A TEST SERVER
line_2__fr_FR = TICKET EDITE SUR SERVEUR DE TEST
line_3 = -------------------------------

Note

To be sure that your server is correctly configured, you can check the settings in the Point of Sale configuration.

No verified information in OCA: Installation, Usage.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.