Receipts and invoices

Receipts

Set up receipts by going to Point of Sale ‣ Configuration ‣ Point of Sale, selecting a POS, and scrolling down to the Bills & Receipts section.

To customize the header and footer, activate Header & Footer and fill in both fields with the information to be printed on the receipts.

To print receipts automatically once the payment is registered, enable the Automatic Receipt Printing setting.

screenshot: pos-receipts-receipt-preview
menu
(POS interface) ‣ Receipt screen
shows
A POS receipt preview with the company header, the order lines, the taxes, the total and the payment method.
module
point_of_sale
notes
English UI, light theme; scale down to about 75 % of the page width.

Note

With the PoS Hungarian module (eyssen_l10n_hu_pos), the line Nem adóügyi bizonylat! (“Not a fiscal receipt!”) is printed in the header of every receipt, in Hungarian, whatever the language of the point of sale. See Hungary.

Reprint a receipt

From the POS interface, click Orders, open the dropdown selection menu next to the search bar, and change the default All active orders filter to Paid. Then, select the corresponding order and click Print Receipt.

screenshot: pos-receipts-reprint
menu
(POS interface) ‣ Orders
shows
The order list inside the POS filtered on "Paid", with a paid order selected and the "Print Receipt" button visible.
highlight
The "Print Receipt" button (red frame).
module
point_of_sale
notes
English UI, light theme, 1440px width.

Note

You can filter the list of orders using the search bar. Type in your reference and click Receipt Number, Date, or Customer.

Receipt designs

The POS Receipt Design module (custom_receipts_for_pos) replaces the standard receipt layout with a custom one, so the receipt can be adapted to the shop’s branding or to local requirements without touching the source code.

To manage the available layouts, go to Point of Sale ‣ Configuration ‣ Receipt Designs. Each record holds a Name and the Receipt XML field containing the QWeb template of the receipt. Two ready-made designs are installed with the module and can be duplicated as a starting point.

To apply a design to a point of sale, go to Point of Sale ‣ Configuration ‣ Point of Sale, open the POS, enable Custom Receipt in the Bills & Receipts section, and select the layout in the Receipt Design field.

screenshot: pos-receipts-custom-design
menu
Point of Sale ‣ Configuration ‣ Receipt Designs ‣ (a design)
shows
A receipt design form with its name and the "Receipt XML" field showing the QWeb template in the code editor.
data
Design "Compact receipt".
module
custom_receipts_for_pos
notes
English UI, light theme, 1440px width.

Important

The Receipt XML field expects a valid QWeb template. An invalid template prevents the receipt from being rendered, so test a new design on a test point of sale before using it in the shop.

Invoices

Point of Sale allows you to issue and print invoices for registered customers upon payment and retrieve all past invoiced orders.

Note

An invoice created in a POS creates an entry into the corresponding accounting journal, previously set up.

Configuration

To define what journals will be used for a specific POS, go to the POS’ settings and scroll down to the accounting section. Then, you can determine the accounting journals used by default for orders and invoices in the Default Journals section.

screenshot: pos-receipts-invoicing-setting
menu
Point of Sale ‣ Configuration ‣ Settings
shows
The "Accounting" section of the POS settings with the "Invoicing" option enabled and an invoice journal selected.
highlight
The "Invoicing" setting block (red frame).
module
point_of_sale
notes
English UI, light theme, 1440px width, crop to the settings block.

Invoice a customer

Upon processing a payment, click Invoice underneath the customer’s name to issue an invoice for that order.

Select the payment method and click Validate. The invoice is automatically issued and ready to be downloaded and/or printed.

Note

To be able to issue an invoice, a customer must be selected.

Retrieve invoices

To retrieve invoices from the POS dashboard,

  1. access all orders made through your POS by going to Point of Sale ‣ Orders ‣ Orders;

  2. to access an order’s invoice, open the order form by selecting the order, then click Invoice.

screenshot: pos-receipts-invoice-smart-button
menu
Point of Sale ‣ Orders ‣ Orders ‣ (an invoiced order)
shows
A POS order form with the "Invoice" smart button in the upper right corner of the form.
highlight
The "Invoice" smart button (red frame).
module
point_of_sale
notes
English UI, light theme, 1440px width, crop to the top of the order form.

Note

  • Invoiced orders can be identified by the Invoiced status in the Status column.

  • You can filter the list of orders to invoiced orders by clicking Filters and Invoiced.

QR codes to generate invoices

Customers can also request an invoice by scanning the QR code printed on their receipt. Upon scanning, they must fill in a form with their billing information and click Get my invoice. On the one hand, doing so generates an invoice available for download. On the other hand, the order status goes from Paid or Posted to Invoiced in the Odoo backend.

screenshot: pos-receipts-portal-order-status
menu
(Customer portal) ‣ POS order
shows
The customer portal view of a POS order reached from the receipt QR code, showing the order status and the download links.
module
point_of_sale
notes
English UI, light theme, 1440px width, crop to the portal page.

To use this feature, you have to enable QR codes on receipts by going to Point of Sale ‣ Configuration ‣ Settings. Then, select the POS in the Point of Sale field, scroll down to the Bills & Receipts section and enable Use QR code on ticket.

Payment terms on POS invoices

By default, an invoice issued from the POS carries no payment term, which is inconvenient when the POS is also used for deferred-payment sales. The PoS Invoice module (eyssen_pos_invoice) links a payment term to each payment method.

To set it, go to Point of Sale ‣ Configuration ‣ Payment Methods, open a payment method, and fill in the Payment Term field. The field is required; it defaults to a payment term due immediately. When an order paid with that payment method is invoiced, the invoice is created with the payment term of the method.

The module also checks the customer’s invoicing address while the order is being registered: if the street, city, ZIP code or country is missing, the missing fields are listed next to the customer in the POS customer list, so the cashier can complete them before issuing the invoice. With the Hungarian localization, a Hungarian company must also have a valid Hungarian tax number.

screenshot: pos-invoice-payment-term
menu
Point of Sale ‣ Configuration ‣ Payment Methods ‣ (a payment method)
shows
A payment method form with the "Payment Term" field filled in.
highlight
The "Payment Term" field (red frame).
data
Payment method "Bank transfer" with payment term "30 Days".
module
eyssen_pos_invoice
notes
English UI, light theme, 1440px width, crop to the form.

Note

The module can be used in any country. The Hungarian tax number check is added by the PoS Invoice - Hungary module (l10n_hu_pos_invoice), which is installed automatically when the Hungarian localization is installed.