Automatic Landed Cost
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 180.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) • Inventory (stock) |
| Lines of code | 533 |
| Technical Name |
dh_automatic_landed_cost |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) • Inventory (stock) |
| Lines of code | 533 |
| Technical Name |
dh_automatic_landed_cost |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
Automatic Landed Cost
Define rules once - landed costs are created automatically every time an incoming shipment is validated. No more manual cost entry for recurring transport, customs, or storage charges.
In standard Odoo, every time an incoming shipment is validated, your warehouse team must manually create a Landed Cost record, add each cost line, enter amounts, and link it to the transfer - even when the charges follow predictable rules.
- No predefined rules available - every cost line entered from scratch
- Prone to inconsistencies and human error when applying recurring percentages or fixed fees
- Transport, customs, and storage charges are often forgotten until the vendor bill arrives
- Time-consuming for high-volume purchasing operations
- Cost amounts must be manually calculated based on quantity and price
This module introduces Landed Cost Rules - a new configuration object that links a purchased product and an optional vendor to a cost product with a fixed amount per unit or a percentage of the unit price. When the incoming transfer is validated, the system automatically finds all matching rules and creates a ready-to-validate Landed Cost record with computed amounts - zero manual intervention required.
- Landed Cost Rules: Define rules per product - optionally restricted to a specific vendor
- Two Calculation Types: Fixed amount per unit (e.g. $5/unit transport) or percentage of unit price (e.g. 20% customs)
- Auto-Creation on Validation: Landed Cost record created automatically when an incoming transfer is validated
- Manual Trigger Button: "Create Landed Cost" button on any Done transfer for on-demand creation
- Multi-Rule Support: Multiple cost types (transport + customs + storage) in one Landed Cost record
- Smart Button: Instant access to linked Landed Costs from the transfer form
- All Split Methods: Equal / By Quantity / By Current Cost / By Weight / By Volume - configurable per rule
- Currency Conversion: Unit price automatically converted from PO currency to company currency
- Auto-Computed Adjustments: Valuation adjustments computed automatically after LC creation
- FIFO & AVCO Compatible: Works with all automated inventory valuation methods supported by Odoo Landed Costs
Percentage Rule
Example: Customs 20%, Qty = 5, Unit Price = 10
-> Amount = (20 / 100) x 5 x 10 = $10.00
Fixed Amount Rule
Example: Transport $5/unit, Qty = 5
-> Amount = 5 x 5 = $25.00
Full Example - Product with 2 Rules, Qty = 5, Unit Price = $10
| Cost Line | Rule Type | Value | Formula | Amount |
|---|---|---|---|---|
| Transport | Fixed | $5/unit | 5 x 5 | $25.00 |
| Custom Duties | Percentage | 20% | 5 x 10 x 20% | $10.00 |
| Total Landed Cost | $35.00 | |||
Configure Landed Cost Rules
Go to Inventory -> Configuration -> Landed Cost Rules and create a rule. Select the purchased product, optionally restrict it to a vendor, choose a cost product (e.g. Transport Fees), pick the rule type (Fixed or Percentage), set the value, and configure the split method and account.
Set Up Product Costing Method
Landed costs require the product category to use FIFO or Average Cost (AVCO) with Automated inventory valuation. Go to: Purchase -> Products -> [Product] -> Category -> Inventory Valuation.
Create a Purchase Order & Validate Transfer
Create a PO for the product using the same vendor as the rule (or any vendor if no vendor restriction is set). Confirm and validate the Receipt. The system picks up the received quantity and unit price from the PO line.
Landed Cost Created Automatically
Upon validation the system: finds matching rules -> computes amounts -> creates a Landed Cost record linked to the transfer -> runs valuation adjustments automatically. A smart button on the transfer gives immediate access to the generated record.
Review & Validate the Landed Cost
Go to Inventory -> Operations -> Landed Costs (or click the smart button on the transfer). Review the cost lines and valuation adjustments, then click Validate to post the accounting entries and update stock valuation.
Step 1 - Landed Cost Rules List
Navigate to Inventory -> Configuration -> Landed Cost Rules to see all configured rules at a glance. Rules are filterable by product, vendor, and rule type.
Step 2 - Create or Edit a Landed Cost Rule
Select the purchased product, optionally restrict to a vendor, choose a cost product (e.g. Transport Fees), set Fixed Amount or Percentage, enter the value, and configure the split method.
Step 3 - Purchase Order with Matched Product & Vendor
Create a Purchase Order for the product and vendor matching your rule. The quantity and unit price from this PO are used to compute the landed cost amounts.
Step 4 - Validate the Incoming Transfer (Receipt)
Open the Receipt linked to the PO from Inventory -> Receipts, set done quantities, and click Validate. The system matches rules automatically at this moment. The "Create Landed Cost" button is also available here for manual on-demand creation on Done transfers.
Step 5 - Smart Button: Landed Costs Count on Transfer
After validation, the smart button on the transfer shows the number of auto-created Landed Costs. Click it to navigate directly to the Landed Cost record.
Step 6 - Auto-Created Landed Cost Record (Draft)
The Landed Cost is created in Draft state, linked to the transfer, with cost lines already filled in and amounts computed. The Additional Costs tab shows each cost type as a separate line.
Step 7 - Valuation Adjustments Tab
The Valuation Adjustments tab shows how each cost line is distributed across the products in the shipment, with the original value, additional cost, and resulting new value per move.
Step 8 - Validate the Landed Cost
Click Validate to post the accounting entries and update the stock valuation layers. The Landed Cost moves to Posted state and the Journal Entry is created automatically.
Step 9 - Updated Stock Valuation Layers
After validation, the stock valuation layers for the received products are updated. The landed cost amount is added to the product's FIFO/AVCO cost price, giving you the true total landed cost per unit.
Import & Freight
Automatically apply fixed freight charges per unit for imported goods arriving from overseas suppliers.
Customs & Duties
Apply percentage-based customs duties specific to each product category or vendor country.
Warehouse Storage
Allocate recurring warehouse storage fees proportionally across all received product lines.
Last-Mile Transport
Add a fixed per-unit last-mile delivery cost for products received from specific regional vendors.
Insurance Charges
Calculate insurance costs as a percentage of the declared product value on each shipment.
Raw Materials
Combine customs + transport rules on raw materials to get accurate FIFO/AVCO cost prices automatically.
Installation & Configuration
- Prerequisites: Requires Odoo Enterprise modules
stock_landed_costsandpurchase_stock - Install: Copy the module to your addons path and install via Apps -> Update App List -> Search "Automatic Landed Cost"
- Configure Products: Ensure purchased products use a category with FIFO or AVCO + Automated inventory valuation
- Create Cost Products: Create service products with "Is a Landed Cost" enabled (Transport Fees, Custom Duties, etc.)
- Create Rules: Go to Inventory -> Configuration -> Landed Cost Rules and set up rules per product/vendor
- Test: Create a PO -> Confirm -> Validate Receipt -> Check that the Landed Cost was auto-created
Demo Data: The module ships with 5 ready-to-use demo rules covering transport (fixed), customs (percentage), and storage (percentage) across 3 product types and 2 vendors - activate demo mode to explore.
Why is no Landed Cost created after validating my transfer?
- Check that a Landed Cost Rule exists for the product and vendor combination.
- Verify the rule is Active (not archived).
- Ensure the product's costing method is FIFO or Average Cost (AVCO) with Automated inventory valuation - go to the product category's Inventory Valuation settings.
- Confirm the transfer is an incoming receipt (not an internal or outgoing transfer).
- Verify the transfer is linked to a Purchase Order so the vendor can be matched.
Can I apply multiple cost types (transport + customs + storage) to the same product?
Yes. Create one rule per cost type for the same product. All matching rules are processed and their amounts are combined into separate cost lines in the same Landed Cost record. For example, product A can have a transport rule ($5/unit) and a customs rule (20%) - both appear as distinct lines in the generated LC.
What if a vendor-specific rule and a general (no-vendor) rule both match?
Both are applied (cumulative). A general rule (no vendor) applies to all vendors; a vendor-specific rule applies only to that vendor. If the same product has both, and you buy from the matched vendor, you will get both amounts on the LC. Design your rules accordingly to avoid unintended double-counting - for example, use vendor-specific rules to replace a general rule rather than supplement it.
Where is the account for the cost lines taken from?
Set the account directly in the Landed Cost Rule. If no account is specified, it falls back to the Stock Input account of the Cost Product's product category. The account is also auto-filled when you select a Cost Product on the rule form.
What quantity and price are used for the amount calculation?
Quantity: The actually received (done) quantity from the stock move, converted to the product's unit of measure.
Unit Price: The price from the linked Purchase Order line, converted from the PO currency to the company currency at today's rate. If no PO line is found, the product's standard price is used as fallback.
Does the auto-creation fail if no rules match?
No. Auto-creation is silent - if no rules match the products and vendor, no Landed Cost is created and the transfer validates normally without any error. The "Create Landed Cost" manual button, however, will show a user-friendly error message if clicked and no rules match.
Does it work with partial deliveries or backorders?
Yes. Each validated transfer (including backorders) is treated independently. The amount calculation uses the done quantity on that specific transfer, so partial receipts automatically produce a proportionally smaller landed cost.
Can I still create Landed Costs manually the standard Odoo way?
Yes, fully. This module adds automation on top of the existing Odoo workflow - it does not replace or restrict any standard functionality. You can still create Landed Costs manually from Inventory -> Operations -> Landed Costs at any time.
Time Savings
Eliminate repetitive manual cost entry for every incoming shipment - especially valuable in high-volume purchasing operations.
Consistency & Accuracy
Rules guarantee the same cost percentages and amounts are applied every time - no forgotten charges, no calculation mistakes.
Accurate Inventory Value
All landing costs are captured in FIFO/AVCO stock valuation, giving you true landed cost pricing for product costing and margin analysis.
Full Audit Trail
Each auto-created Landed Cost is linked to its transfer via smart button, providing clear traceability from shipment to accounting entry.
Need Help or Have a Feature Request?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module