Odoo Help


This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Is there any way to make a purchase order partially fulfilled?

on 6/26/15, 6:40 AM 1,230 views

Update 20150701:

After @Ray's answer: the scenario that I'm facing involved PO with multiple lines in which not all lines are fulfilled (e.g. purchasing Product A and Product B but only receive and pay for Product A).

Original Question:

I can't seem to find a way to make a PO partially fulfilled.  By partially fulfilled I mean that either the shipment is only partial or the only partially invoiced.

In general there are 3 paths that PO can follow, depending on how the invoice will be created:

  • Based on Purchase Order lines,

  • Based on generated draft invoice (by the whole PO),

  • Based on incoming shipments.

Now, PO will wait for 2 conditions to be marked 'Done': That goods have all been received (incoming shipment Done) and invoices have been all paid.

If there is an exception at picking, the PO will enter to the 'Shipping Exception' state.  From here, user can click on the 'Manually Corrected' button to by-pass the checking on goods receipt (assumes that all goods has been received) and the PO can continue it's workflow.

If there is an exception at invoice, the PO will enter to the 'Invoice Exception' state, but I can't find anyway to make the PO continue the workflow.  The problem lies in the fact there is an activity called 'invoice_end' that stands between 'invoice_done' activity to 'done' activity.  The transition that is available between 'invoice_end' to 'done' should pass the condition that the PO's invoiced field is set to True.

The PO's invoice field is a calculated field that check that all related lines have their invoiced field set to True to return True value (All PO lines need to be invoiced first).

The PO line 'invoiced' field is set true when an invoice related to the PO is validated.  Hence, it seems that currently there is no way to make PO to be considered 'done' (or any stage that signify that this PO has been completely processed) if it is partially fulfilled without incurring any AP entry.

I can certainly make all the PO lines invoiced first (create invoice on that PO line and validate them and hence creating AP entry), then refund-cancel the invoice. However, if the invoicing is Based on incoming shipments', that also mean that all goods need to be considered received first, then returned.

Any other way that I've not considered?


Ray Carnes

--Ray Carnes--
| 9 7 9
Greater Los Angeles, United States
--Ray Carnes--

Senior Odoo Analyst

OpenERP 6.1, 7.0 and Odoo 8.0, 9.0 (Since 2012)

Completed Functional and Technical Training.

Major Skills:

  • Needs Discovery and Requirements Analysis;

  • Function and Technical Specifications;

  • Project Planning;

  • Prototyping and Proof of concepts;

  • Data migration;

  • Configuration & Customization (UI and modules);

  • Integration - data, business logic and service levels;

  • Training and Knowledge transfer;

  • Go Live support;

  • Help desk;

  • Version Migration.

I have over 20 years of experience empowering and enabling users with enterprise information systems that make a real and measurable difference in their ability to proactively manage their businesses and organizations. 

Ray Carnes
On 6/26/15, 9:03 AM


See https://www.odoo.com/apps/modules/8.0/purchase_partial_invoicing/


1.  Create a PO for 100 units as normal.

Consider two scenarios:

A) You find out before receiving anything that the PO will only be fulfilled for 80 units.

  • Edit the Incoming Shipment to match 80 units

  • Receive 80 units

  • Invoice 80 units

  • PO is now DONE

A) You receive 80 units, then find out that no further products will be shipped to you.

  • Receive 80 units

  • Invoice 80 units

  • Back order Incoming Shipment created for 20 units

  • Edit the back order Incoming Shipment to match 0 units

  • Receive 0 units

  • Invoice 0 units

  • PO is now DONE

@Ray: would you like to answer https://www.odoo.com/forum/help-1/question/how-to-set-a-po-done-without-invoicing-is-done-87398

on 6/29/15, 9:09 AM

@Ray, the scenario in question (sorry if it is not clear in the question) involves multiple purchase.order.lines in which only 1 (or part of 1) is processed.

on 7/1/15, 6:07 AM

Hey Ray, I like your answer but it is not good way to create invoice for "0" qty. Obviously client will never agree to do this. ( Why to make one step more unnecessarily ?) Is there any other option ?

Emipro Technologies Pvt. Ltd.
on 7/10/15, 6:16 AM

This invoice does not get sent to the client - you can pay it straight away (with a $0 payment) and it will be closed. There is also a module that closes $0 invoices without payments. If your supplier tells you in time, you won't need the invoice at all. It is an extra step, but this is what is supported out of the box.

Bista Solutions US, Ray Carnes
on 7/10/15, 12:05 PM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)


Asked: 6/26/15, 6:40 AM
Seen: 1230 times
Last updated: 7/9/15, 11:17 PM