Drop shipments improvements in Odoo

Eficent has introduced a new module for Odoo/OpenERP v7 that makes it possible to maintain more accurate financial postings associated to drop shipments.

What is the problem?

The current module “sale_dropshipping” facilitates the drop shipping transactions and it is the foundation for the changes described in this article.

However, at the time when stock is issued from the vendor to the customer, no proper account postings are maintained.

Looking at the end to end procurement account journal entries for a drop shipment:sale_dropshipping_location_1

One realizes that the step “2. Accept 1 product”, that is represented in OpenERP with a stock move from the supplier to the customer location, will not generate an account journal entry.

The stock input account (that represents a liability account) is never credited, but debited in step ‘Supplier invoice’.

Looking at the end to end sales account journal entries for a drop shipment:sale_dropshipping_location_2

One realizes that the step “2. Deliver 1 product”, that is represented in OpenERP with a stock move from the supplier to the customer location, will not generate an account journal entry.

The stock output account (that represents an expense account) is never debited, but credited in step ‘Customer invoice’.

The flow would only be correct if  stock input account = stock output account. But as described in the post ‘Recognition of project expenses in Odoo‘,  that would be an incorrect configuration in normal flows.

What is the solution?

Eficent introduces a new module “Sale Dropshipping Location” that automatically proposes two chained stock moves associated to a drop shipment that are triggered automatically when the purchased products are received.


  1. Stock move 1: Supplier -> virtual ‘Drop Shipment’ internal location
  2. Stock move 2: Virtual ‘Drop Shipment’ internal location > Customer


See the corresponding Account Journal Entries created:

For move Supplier -> virtual ‘Drop Shipment’ internal location:sale_dropshipping_location_4

For move Virtual ‘Drop Shipment’ internal location > Customer:



Drop shipment returns

When the user creates a return for a drop shipment the user automatically creates a new incoming shipment associated to the supplier, where the destination location is the customer’s, and the source is a default Virtual Drop Shipment Returns location.

The Virtual Drop Shipment Returns location is automatically chained to a generic supplier location.

As a consequence of a customer return for a drop shipment, the following incoming shipments are generated:



Notice that the incoming shipment shows the actual supplier as the destination address.


The corresponding stock moves:sale_dropshipping_location_7


And the corresponding account journal entries:

For move Customer -> virtual ‘Drop Shipment Returns’ internal location:sale_dropshipping_location_8

For move Virtual ‘Drop Shipment Returns’ internal location -> Supplier location:sale_dropshipping_location_9

As a consequence the account journal entries created are the same as described in  ‘Recognition of project expenses in Odoo‘.

More information

The module that implements the features described in this post is available for free under the AGPL license. If you are interested to use this module and seek further assistance, please contact us and we will be happy to provide you with instructions on how to install it.

Leave a Reply

Your email address will not be published. Required fields are marked *