OpenCart 內建了一組宅配運送方式(Flat),可以滿足大部分商家的需求,但有些商家希望系統能做到運送台灣本島是一種運費,離島是另外一種運費,因為某些情形下,離島的運費成本是比本島來得高的。
OpenCart 內建的宅配運送方式,並無法做到上面的需求,不過 OpenCart 的特性就是自由與開放,你可以自行複製內建的宅配運送模組,改成離島專用的運送模組,就可以輕易滿足本島與離島宅配運費不同的需求了。
本文章要來教大家如何複製一套宅配運送模組,這不只是可以給離島不同運費的需求使用而已,其他例如不同貨運公司、或低溫運送,也都會有類似的需求,都可以透過複製一套宅配運送模組來完成客製。
內建的宅配運送模組,包含了以下的檔案 :
admin/controller/extension/shipping/flat.php
admin/language/zh-TW/extension/shipping/flat.php
admin/view/template/extension/shipping/flat.twig
catalog/model/extension/shipping/flat.php
catalog/language/zh-TW/extension/shipping/flat.php
假設我們要客製一套離島專用的宅配運送模組(Flat2),就將上面5個檔案,個別在同目錄下複製並更名為 flat2.php 或 flat2.twig,flat2 是可以自行命名的,這裡只是方便教學。
由於我們要的新宅配運送模組(Flat2)與內建的宅配運送模組(Flat),功能其實是完全相同的(主要是設定值不同),所以我們只要將原程式中的相關變數名稱,由 flat 改為 flat2 即可。
首先使用文字編輯器(或IDE)開啟 admin/controller/extension/shipping/flat2.php 來編輯 ...
然後用 replace 的功能將 flat 取代成 flat2,其中的 class name 請維持大小寫的命名規則 class ControllerExtensionShippingFlat2
接著編輯 admin/language/zh-TW/extension/shipping/flat2.php
這是後台編輯設定的相關欄位或訊息語系檔,可自行依需求來編輯。
然後編輯 admin/view/template/extension/shipping/flat2.twig
這是後台編輯設定的版型檔,用 replace 的功能將檔案中的 flat 取代成 flat2 即可。
然後編輯 catalog/model/extension/shipping/flat2.php
這是前台結帳時新宅配模組的主要程式,用 replace 的功能將檔案中的 flat 取代成 flat2 即可。
最後編輯 catalog/language/zh-TW/extension/shipping/flat2.php
這是前台結帳時新宅配模組的語系檔,可自行依需求來編輯。
編輯以上 5 個檔案之後,必須幫管理者設定權限才能進行設定,請進到 [系統管理] > [使用者管理] > [使用者群組],編輯你要授權的管理者群組,通常是 [最高管理員]。
進入權限編輯畫面之後,分別將 [檢視權限] 及 [修改權限] 中的 extension/shipping/flat2 打勾並儲存,即可至 [擴充模組管理] > [擴充模組管理] > [運送模組],找到 [離島宅配] 或是您剛剛在 admin/language/zh-TW/extension/shipping/flat2.php 中所定義的名稱,進入編輯之後,就會看到與原宅配模組相同的設定畫面及欄位,您可以為此運送模組設定不同的運費、適用地區等等。
以上是自行複製運送模組的基本教學,對於有點程式能力的人來說,其實並不算很困難,若能再搭配貨到付款手續費、依運送方式顯示付款方式、修改適當的地區設定,就能輕易客製出符合實際需求的運送模組了。
參考資源
電商系統工程筆記 https://24cc.com/
台灣電商社團 https://www.twec.org/
台灣電商 FB 社團 https://www.facebook.com/groups/opencart.taiwan/
OpenCart 網站代管、客製、維護 https://www.osec.tw/
OpenCart 台灣電商技術支援粉絲頁 https://www.facebook.com/ntcart/
OpenCart 台灣優化版專頁 https://www.osec.tw/opencart.html
OpenCart 台灣中文用戶討論區 https://www.ntcart.com/