Post by NTCart.com » Fri May 22, 2020 2:27 am

OpenCart 內建的會員群組功能允許您自訂多個會員群組,並且可以針對不同的會員群組,設定不同的商品特價、量大折扣、紅利點數等等,不過系統並沒有內建自動變更會員群組的功能,如果您需要系統能依據會員的累計消費金額,來變動會員群組(或等級)的話,您就必須另外安裝擴充模組來達成。

在 OpenCart 的 Extension Store 中,有好幾套模組能提供會員自動升級的功能,本文分享一下我們使用其中一套的經驗。
模組名稱 : Customer Group Auto Switcher
模組網址 : https://www.opencart.com/index.php?rout ... on_id=4666

這一套會員自動升級模組,是自從 OpenCart 1.5.x 的年代就開始發展的,所以目前替換代碼的部分,仍是以 vqmod 所設計的,如果你不喜歡系統多掛一套 vqmod,那建議考慮其他廠商開發的模組,例如 : https://www.opencart.com/index.php?rout ... n_id=25207

這套 Customer Group Auto Switcher,它的設定介面是直接改寫了系統的會員群組管理的功能,會員群組管理清單,多了每個會員群組的升級規則說明。
Image

進入到會員群組的編輯畫面,可以看到擴增了一些升(降)級相關的欄位設定,例如升級後的下一個等級、訂單累計金額門檻、訂單累計期、訂單累計的訂單狀態、還有啟用降級功能等等。
Image

模組能依照規則運作,尚稱穩定,但在使用上我們遇到了幾個不滿足的地方,跟大家分享。

第一點

這套模組設計成在會員結帳、會員登入、會員進到我的帳號時,都會進行會員等級變動的檢查,觸發時機沒問題,即使現有會員已有達升級資格者,也會在模組安裝後,再次登入時觸發升級。

但是我們卻發現,這套模組被設計成每次變動只跳一級,即使明明會員應該有資格連跳2級,也只會在第一次觸發升級時升等一級,必須再次被觸發,才會升到應有的等級,沒有辦法一次升到位,分析過模組成程式,的確如此設計,應該是沒有考慮到一次跳升2級的需求,如果您不介意,例如您的網站只分2個會員等級,這問題就可以忽略。

第二點

會員累計消費金額的日期區間,是抓訂單的產生日期計算的,例如設定 90 天的累計區間,就會找訂單產生日期是落在往前 90 天之內的訂單,當然還會搭配指定的訂單狀態。

不過,OpenCart 訂單產生日期,並不一定是紀錄著結帳的時間,例如當你安裝了一頁式結帳,在會員初次進入到結帳畫面時,系統就會建立一筆臨時的訂單,並使用會員編號或 Session ID 來關聯,所以當某個會員或訪客,在系統中已經存在臨時訂單的紀錄,則在該會員完成結帳之前,都會使用該筆紀錄作為訂單資料,包含訂單編號及產生日期,即使會員是在建立了臨時訂單後的一個月才真正結帳,該筆訂單仍會是使用一個月前所建立的訂單編號及產生日期。

於是,以訂單的產生日期來做為區間的判別欄位,可能會失真,一張在 91 天前建立臨時訂單,在 3 天之後完成結帳的正式訂單,有可能因此不會被納入累計金額,因為它被視為 91 天前的訂單,不在累計區間內。

如果您的系統沒有使用一頁式結帳,或您的一頁式結帳模組沒有這種情形,那就可以忽略這個問題。

以上 2 個問題,我們都以自行改寫模組完成修正,若您正準備導入依會員累計消費自動升等的功能,請注意我們提到的問題,希望以上的分享,對您有所幫助。

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


New member

Posts

Joined
Tue Nov 15, 2016 9:15 pm

Who is online

Users browsing this forum: No registered users and 2 guests