First Understand the Big Picture
Your module connects 6 departments together:
1. Purchase
2. Inventory
3. Accounting
4. Logistics
5. Manufacturing
6. Management
All your reports come from ONE FLOW.
🧠 STEP 1: What is a Shipment in Your
System?
Example from your report:
SHP-024 – Electronics
PO Value: 125,000
Freight: 12,500
Duty: 6,250
Other: 2,500
Landed Cost: 146,250
Now I explain this in simple words.
Purchase Department says:
“I bought goods worth AED 125,000 from supplier.”
But in reality, goods do NOT cost only 125,000.
You also paid:
Freight
Customs duty
Insurance
Clearance
Port charges
So the real cost of inventory is higher.
That is called:
📦 Landed Cost
Definition (very important):
Landed cost = Purchase price + all expenses required to bring goods to warehouse.
🧮 STEP 2: Why Journal Entry is Needed?
You said:
“Landed cost will be posted via adjustment journal entry”
but difficult to understand.
Now I explain properly.
🔢 Example with Real Numbers
Supplier invoice:
Inventory Value = 125,000
Odoo automatically does:
Dr Inventory 125,000
Cr Accounts Payable 125,000
Now goods are in stock at 125,000.
But then you pay freight company:
Freight bill = 12,500
If you just book it normally:
Dr Freight Expense 12,500
Cr Payable 12,500
🚨 Problem:
Inventory still shows 125,000
But real cost is 137,500
Your stock valuation is WRONG.
✅ Correct Way (Automated Valuation Safe
Method)
Instead of treating freight as expense:
We increase inventory value.
So we create Adjustment Journal Entry
Dr Inventory 12,500
Cr Freight Clearing 12,500
Now:
Inventory = 125,000 + 12,500 = 137,500
Correct value.
This is what your module automates.
🏗 Now Let’s Build Complete Flow Using
SHP-024
🔁 FULL SYSTEM FLOW (Beginner Version)
STEP A — Purchase Order
You create:
PO-001
Supplier: China Electric
Amount: AED 125,000
Nothing special yet.
STEP B — Create Shipment Record
You create:
SHP-024
Link PO-001
ETA: 22 Feb
Port: Jebel Ali
This is your [Link] model.
This record tracks:
ETD
ETA
Port
Status
Linked PO
Linked pickings
This is what feeds:
📊 Container Shipment Status Report
STEP C — Goods Arrive
Warehouse validates picking.
Odoo creates:
Dr Inventory 125,000
Cr GRNI / Payable
Now stock exists physically.
STEP D — Add Shipment Costs
In SHP-024 you add:
Cost Type Amount
Freight 12,500
Duty 6,250
Other 2,500
Total = 21,250
STEP E — Allocation Engine
Now system must distribute 21,250 across products.
Example:
500 smartphones.
Freight per unit:
12,500 ÷ 500 = 25 per unit
That’s why your report shows:
Allocated Freight: AED 25.00/unit
This is done by your allocation method:
By Quantity
By Value
By Weight
STEP F — Post Landed Cost Journal
System creates:
Dr Inventory 21,250
Cr Freight Clearing 12,500
Cr Customs Clearing 6,250
Cr Other Clearing 2,500
Now inventory total value becomes:
125,000 + 21,250 = 146,250
Exactly matching your report.
📊 Now See How Reports Are Generated
1️⃣ Container Shipment Status Report
From [Link] table:
state
eta_date
arrival_date
customs_status
delay calculation
Delay = Today – ETA
That’s how:
SHP-007 -2 days ⚠️
is calculated.
2️⃣ Supplier Performance Scorecard
Calculated from shipment history:
On-Time %:
On-time shipments ÷ Total shipments × 100
If Mumbai Traders:
6 on-time out of 14
= 43%
That’s how:
43% CRITICAL
appears.
3️⃣ Landed Cost Analysis Report
Pulled from:
PO Value
Shipment Costs
Allocation lines
% Increase formula:
(Landed - PO Value) ÷ PO Value × 100
For SHP-028:
39,200 - 32,000 ÷ 32,000 = 22.5%
Exactly what your report shows.
4️⃣ Manufacturing Risk Report
This is advanced but simple logic.
MO-1026 needs:
PVC Granules
Connectors
System checks:
Is stock available?
If not, check:
Is linked shipment delayed?
If ETA > MO start date → Risk = HIGH
That’s how:
❌ 2 Items Delayed → HIGH 🔴
is generated.
🧱 Complete Architecture in Simple Words
Your module has 4 brains:
🧠 Brain 1: Shipment Engine
Tracks container lifecycle.
🧠 Brain 2: Cost Allocation Engine
Distributes freight/duty.
🧠 Brain 3: KPI Engine
Calculates:
On-time %
Delay days
Clearance time
Financial impact
🧠 Brain 4: Manufacturing Risk Engine
Checks ETA vs MO start date.
🎓 Now I Teach You Conceptually
Forget Odoo for a moment.
Your system answers 5 core questions:
1. Where is my shipment?
2. How much does it REALLY cost?
3. Which supplier is reliable?
4. Will production stop?
5. Are we within financial targets?
All 6 reports answer these 5 questions.
🔥 Most Important Concept You Must Master
Inventory value ≠ Purchase price.
Inventory value = Purchase + All inbound costs.
If this is wrong:
Profit is wrong
Margin is wrong
Financial statements are wrong
Executive dashboard is wrong
That is why:
“Landed cost via adjustment journal entry”
is critical.
FUNCTIONAL CONSULTANT
Your job is to:
1. Configure system correctly
2. Train users
3. Ensure accounting is correct
4. Make reports match management expectations
You are NOT coding.
You are designing workflow.
🏗 PHASE 1 — INITIAL CONFIGURATION
Before any shipment happens, you must configure system properly.
1️⃣ Inventory Configuration
Go to:
Inventory → Settings
Enable:
Storage Locations
Multi-Step Routes
Automated Inventory Valuation
Landed Costs
Why?
Because without Automated Valuation, landed cost adjustment will not affect accounting.
If manual valuation → journal entry won’t update stock value.
2️⃣ Product Configuration
Each product must be configured correctly.
For imported products:
Product Type: Storable
Costing Method: FIFO (recommended)
Inventory Valuation: Automated
Example:
Smartphones
Steel Coils
PVC Granules
If product is set as Consumable → landed cost will NOT apply.
Very important.
3️⃣ Accounting Configuration
You must configure:
Freight Clearing Account
Customs Clearing Account
Other Charges Clearing Account
Why clearing account?
Because freight invoice comes separately.
You don't want it as expense immediately.
Instead:
Freight bill →
Dr Freight Clearing
Cr Payable
Later shipment allocation moves it into inventory.
🚢 PHASE 2 — USER WORKFLOW
(OPERATIONAL FLOW)
Now let’s simulate full real scenario.
STEP 1 — Purchase Department
Create Purchase Order:
PO-001
Supplier: China Electric
Amount: 125,000
Confirm PO.
System creates incoming picking.
STEP 2 — Logistics Creates Shipment
Record
Logistics User creates:
Shipment: SHP-024
Link PO-001
Set:
ETD
ETA
Port
Forwarder
Status = Draft
This feeds your:
📊 Container Shipment Status Report
STEP 3 — Goods Arrive at Warehouse
Warehouse validates receipt.
System creates accounting:
Dr Inventory
Cr GRNI / Payable
Now goods are in stock.
Shipment status → Arrived
STEP 4 — Finance Receives Freight &
Customs Bills
Freight Company Invoice:
12,500
Account entry:
Dr Freight Clearing
Cr Accounts Payable
Customs Duty Invoice:
6,250
Dr Customs Clearing
Cr Accounts Payable
These are NOT expenses yet.
They are temporary.
STEP 5 — Apply Landed Cost
Now finance goes to:
Shipment → Compute Landed Cost
System:
Reads total clearing amounts
Allocates based on method (By Value / By Quantity)
Example:
Freight 12,500
Duty 6,250
Other 2,500
Total = 21,250
STEP 6 — Validate Landed Cost
System posts adjustment entry:
Dr Inventory 21,250
Cr Freight Clearing 12,500
Cr Customs Clearing 6,250
Cr Other Clearing 2,500
Now:
Inventory value = 146,250
Clearing accounts become zero.
System is balanced.
📊 Now Let’s Connect Reports to Workflow
📊 REPORT 1 — Container Shipment Status
Generated from:
Shipment Status
ETA
Arrival Date
Customs Status
Delay calculation:
Today – ETA
If positive → Delayed
This is purely logistics + date tracking.
No accounting involved.
📊 REPORT 2 — Supplier Performance
Scorecard
Calculated from:
Number of shipments
On-time deliveries
Delay days
Formula:
On-time % = On-time ÷ Total × 100
Procurement uses this in quarterly review.
You configure:
Tolerance days (±2 days allowed)
Risk categories
📊 REPORT 3 — Landed Cost Analysis
Generated from:
PO Value
Shipment cost lines
Allocation entries
Important consultant responsibility:
Ensure:
Sum of allocation = Total landed cost
And:
Inventory valuation report matches Landed Cost Report.
If mismatch → accounting setup is wrong.
🏭 REPORT 5 — Manufacturing Risk Report
How it works functionally:
MO requires materials.
System checks:
Is material available?
If not:
Is there linked incoming shipment?
If ETA > MO start date → Risk = HIGH
This connects:
Inventory + Purchase + Shipment + Manufacturing
As consultant, you must ensure:
MOs linked properly
Incoming shipments linked to products
Lead times configured
👔 Executive Dashboard (Report 6)
This is summary layer.
Pulls data from:
Inventory valuation
Shipment stats
Supplier KPIs
Landed cost %
If any base configuration wrong → Dashboard wrong.
⚠️COMMON IMPLEMENTATION
MISTAKES
As consultant, avoid these:
1. Product set as Consumable
2. Inventory valuation set to Manual
3. Freight booked as expense directly
4. Shipment not linked to PO
5. Allocation done before goods received
6. Users bypassing workflow
🧭 END-TO-END FLOW (In One Line)
Purchase → Shipment → Receipt → Freight Bills → Landed Cost Allocation → Accounting
Adjustment → Reports → Dashboard
Everything depends on discipline.
🧠 VERY IMPORTANT CONCEPT
Landed cost is NOT expense at purchase time.
It becomes part of product cost.
Expense happens only when product is sold (COGS).
That is how profit becomes correct.
🎓 What You Now Understand
You now understand:
✔ How shipment record works
✔ How landed cost works
✔ Why journal entry is needed
✔ How supplier KPI is calculated
✔ How manufacturing risk works
✔ How dashboard pulls everything