Contributors mailing list archives

Browse archives


Re: Proforma invoices in Odoo

PyTech SRL, Alessandro Uffreduzzi
- 27/04/2023 15:52:37


thank you all for your replies. Based on your feedback me and my colleagues insisted with the most pressing customer and we convinced them to use

  1. The native odoo functionality with regards to proforma invoices (i.e. sales orders);
  2. Alternatively, by just changing the title when printing a draft invoice from "draft" to "proforma" (in case they want to send a proforma invoice that's only a part of the original SO)

therefore avoiding potentially problematic and hard-to-maintain customizations to the flow of invoices themselves.

Have a great day.

Alessandro Uffreduzzi


On 26/04/2023 8:12 pm, Antonio M. Vigliotti wrote:

Hi Alessandro,

I wrote the pro-forma some time ago on Odoo 10.0

Here you can find source code:

However this code is an improvement of OCA implementation, I think you could find it on account-invoicing repository

PS As Carlos wrote, pro-forma is somthing closer to a sale order but Italian people will not use sale orderfor thi purpose :-(


Il 26/04/2023 18:47, Janik von Rotz ha scritto:

Hi Allessandro

Can you give us some details on the business case? Is this going more towards downpayments?

Proforma in Odoo ist just the Sale Order with a different title.

I assume what you need, is a function to generate an invoice before the quotation is confirmed. Your requirements are more or less what the account module delivers.

Cheers, Janik

On 4/26/23 18:27, Alessandro Uffreduzzi wrote:

Hello all,

long time listener, first time caller. I need to develop a module to handle proforma invoices, as the default Odoo implementation is not at all adequate for the needs of multiple customers. What we need looks more like what Sales Orders have, with the 3 states ("Quotation" => "Quotation Sent" => "Sales Order"), where the proforma invoice corresponds to the "Quotation Sent" state.


  • Invoices (not SOs) can (optionally) become Proforma Invoices, before being confirmed and posted. It doesn't necessarily have to be a new "state" selection, but it seems to be the most natural fit for it.
  • When an invoice becomes a proforma (which logically implies it's being sent to the customer for confirmation), it should take a sequence number from a different sequence than posted invoices. When the invoice is eventually confirmed and posted, it will then take the usual number.  The number it takes when it becomes a proforma should be saved somewhere.
  • Proforma invoices can go back to draft, be cancelled, or be confirmed and posted.
  • The printed version should clearly state it's a proforma, but it's otherwise the same as a regular invoice.

I've searched for an OCA module resembling these requirements but couldn't find it. Is there an OCA module for this, or is someone developing it? If not, I will work on it myself and propose it in

Thank you for your time

Have a good day


Alessandro Uffreduzzi


PyTech Srl

Sede legale: Via Barozzi 40/8 - 41124 Modena

Sede operativa: Via P. Giardini 472/L - 41124 Modena

P.IVA 03988700369

PyTech Logo

Post to:

Post to:

Antonio M. Vigliotti

Mobile (+39) 342.8740910

Post to: