回到台灣後的第二週,德華正忙著整理巴西行的後續工作。
臨別前的會議上,客戶還特別叮囑:
「先寄一批樣品來吧,讓我們內部測試一下。」
德華一聽如獲至寶。雖然只是樣品,但他不想再失去機會,乾脆照正式訂單流程來做。
立刻在 Odoo Sales 建立了一張 樣品訂單 (Sample Order),
系統自動生成 Delivery Order,並指派到 Sample Location。
他轉頭交代小李:「照單出貨,越快越好!」
小李雖然納悶:「樣品不算正式庫存吧?」
但還是依單撿貨、打包,並附上 Proforma Invoice,特別標註:
「No Commercial Value」。
誰知一週後,德華的手機響起,客戶傳來冷冰冰的一句話:
「這稅比貨還貴,你們還是收回去吧。」
一場看似簡單的樣品寄送,瞬間演變成跨部門的麻煩。
一般公司都有「樣本費」「推廣費」科目,但這次事件凸顯的問題在於:
德華氣得直拍桌子:「稅比貨還貴,這單等於白做!」
小李小聲補了一句:「要是真的退回來,還得再付運費、再驗收,搞不好比樣品更貴。」
財務同事在月底核帳時,也只能苦笑:「這些費用到底該掛哪一科目?」
沈如蘭卻很冷靜,她提醒兩人:「有時候放棄反而划算,但前提是要把損失記清楚,別讓它消失在帳上。」
阿哲最後收斂全場:「重點不是退回或放棄,而是這些成本和經驗能不能被制度化,釐清了下次遇到的話就不會再亂了。」
if sample_picking.state == 'done':
return_wizard = self.env['stock.return.picking'].create({
'picking_id': sample_picking.id,
'product_return_moves': return_lines,
})
return_wizard.action_validate()
💡 註:stock.return.picking 是 wizard,analytic_account 通常要在 stock.move 層級設定。
這裡的程式碼為簡化範例,主要凸顯流程概念。
樣品退回 Sample Location,費用掛專案 analytic。
landed_cost = self.env['stock.landed.cost'].create({
'picking_ids': [(6, 0, [sample_picking.id])],
'cost_lines': [
(0, 0, {'name': 'Brazil Import Tax','account_id': tax_account.id,'price_unit': 2000}),
(0, 0, {'name': 'Return Freight','account_id': freight_account.id,'price_unit': 800})
],
'analytic_account_id': project_analytic.id
})
landed_cost.compute_landed_cost()
landed_cost.button_validate()
即使樣品標註「No Commercial Value」,巴西海關仍課稅。這些費用透過 Landed Cost 歸到專案,避免成為黑洞。
阿哲展示 Dashboard:
if expense.currency_id != expense.company_id.currency_id:
expense.amount_company_currency = expense.currency_id._convert(
expense.amount_currency,
expense.company_id.currency_id,
expense.company_id,
expense.date
)
寄樣品金額不大,但一旦制度化,就不再是小事。
它會變成能被追蹤、能被教、能被學的資產。
在跨國市場,小訂單能反映大問題。
沈如蘭看著桌上的單據,語氣格外冷靜:
「真正拉開差距的,不是訂單大小,而是企業對『細節』的管理深度。」