Direct Shipment - Dropshipping through an Internal Location
Description
The Direct Shipment feature in Odoo enables a route similar to dropshipping where goods pass through an internal location before reaching the customer. This allows the transaction to be recorded in the Profit & Loss statement. The solution involves a two-step delivery process, with the goods first moving from the supplier to an internal location and then from the internal location to the customer.
Module: xtech_direct_shipment
Setup
To activate the feature, it needs to be activated in the Purchase Settings:
Activating it will make it so that a few records are created:
- Warehouse Configuration:
- Creates a warehouse named "Supplier (SUP)" with a single location "SUP/Direct Shipment".
- Operation Types:
- Define operation types for incoming (IN) and outgoing (OUT) shipments for Sales Orders (SO) and Purchase Orders (PO), and Returns (in case they are necessary).
- Route Configuration:
- Establish a route that triggers the two-step flow:
- IN from the supplier to the internal location.
- OUT from the internal location to the customer.
- Establish a route that triggers the two-step flow:
- Sales Order Configuration:
- Allows the activation of a field "Is Direct Shipment" in the sales order.
- When enabled, it activates the Direct Shipment route.
Direct Shipment Flow
Sales Order
The flow starts with the creation of a sales order (SO) by activating the option "Is Direct Shipment".
Upon confirming the sales order, a delivery transfer is generated from "SUP/Direct Shipment" to the customer, and draft purchase orders are created.
Purchase Order
When a purchase order is confirmed, a receipt transfer is created from "Partners/vendors" to "SUP/Direct Shipment".
Delivery and Invoicing
- The inbound transfer (IN) is confirmed once the supplier informs the company that the goods are produced.
- The outbound transfer (OUT) is confirmed once the supplier informs the company that the goods were shipped to the customer.
- After the OUT operation (delivery to the customer) is validated, the system automatically posts the invoice based on the delivered quantities.
Edge Cases
1. Direct Shipment Deactivation:
- When Direct Shipment is turned off, all related warehouses, routes, and settings are archived.
- Upon re-enabling, all parameters are reset to the initial standard configuration.
2. Over-Production and Over-Delivery:
- In cases of over-production and over-delivery, the quantities in the IN operation and the PO (delivered quantity) accurately reflect the validated quantities.
- Example:
- Client A orders 100 units of product X.
- Supplier produces 110 units and informs the vendor.
- The vendor ships 110 units to Client A.
- The system correctly updates the IN operation and the PO to reflect the 110 units delivered.
- The invoice is posted based on the delivered quantities.
3. Backorders
- Backorders need to be created individually for the IN and OUT.
4. Returns
- Returns currently send the products back to the intermediate location. This flow is not expected but it is available just in case. If it becomes a common flow it might be necessary to expand the feature.
5. Preorders
- Order can be both direct shipment and preorder. In these cases, the pickings are already generated (contrary to normal preorders).