Odoo Help


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

on 6/26/15, 6:40 AM 2,857 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
Keyport, United States
--Ray Carnes--

Senior ERP Analyst

OpenERP 6.1, 7.0; Odoo 8.0, 9.0, 10.0 and 11.0.

Completed Odoo Functional and Technical Training.

Functional Areas:

  • CRM/Sales

  • Inventory

  • Manufacturing

  • Accounting

  • Purchasing

Major Skills:

  • Business Process Reengineering

  • Efficiency Consulting

  • User Needs and GAP Analysis;

  • Functional and Technical Design;

  • Prototyping and Proof of Concepts;

  • Requirements Specifications;

  • Agile Implementation;

  • Data Migration;

  • Configuration & Customization (UI and code);

  • Integration - Odoo and non Odoo Applications and Services;

  • Training and Knowledge Transfer;

  • Go Live Support;

  • Helpdesk;

  • Version Upgrades and Migration.

  • Accounting Expert.

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. 

I am a skilled Communicator and I only take the serious things seriously!

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.

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

About This Community

This platform 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.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


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