Post by NTCart.com » Tue Jan 21, 2020 8:30 pm

OpenCart 內建了一組宅配運送方式(Flat),可以滿足大部分商家的需求,但如果商家需要不同地區有不同的宅配運費(例如台灣本島與離島不同運費),那麼內建的宅配運送模組就不夠使用了。

不過 OpenCart 的特性就是自由與開放,你可自行複製一套宅配運送模組,作為其他運送地區的宅配模組,就可以輕易滿足不同地區不同運費的需求了。

本文章要來教大家如何複製一套宅配運送模組,這不只是可以給離島不同運費的需求使用而已,其他例如不同貨運公司、或低溫運送,也都會有類似的需求,都可以透過複製一套宅配運送模組來完成客製。

Image

內建的宅配運送模組,包含了以下的檔案 :
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 中所定義的名稱,進入編輯之後,就會看到與原宅配模組相同的設定畫面及欄位,您可以為此運送模組設定不同的運費、適用地區等等。

以上是自行複製運送模組的基本教學,對於有點程式能力的人來說,其實並不算很困難,若能再搭配貨到付款手續費、依運送方式顯示付款方式、修改適當的地區設定,就能輕易客製出符合實際需求的運送模組了。

台灣頂級 OpenCart 技術支援廠商
OpenCart 網站代管、客製、維護 https://www.osec.tw/
OpenCart 台灣優化版 https://www.osec.tw/opencart.html
OpenCart 台灣技術支援 FB 粉絲頁 https://www.facebook.com/ntcart/
OpenCart 台灣電商社團 https://www.facebook.com/groups/opencart.taiwan/
OpenCart 技術交流論壇 https://www.ntcart.com/


New member

Posts

Joined
Tue Nov 15, 2016 9:15 pm

Who is online

Users browsing this forum: No registered users and 2 guests