我正在用php製作我自己的電子商務網站。我想提供我過去的客戶優惠券代碼,而無需向可能像野火般蔓延的所有人發送通用的「10%OFF」。我希望每個代碼都是唯一的,但映射到已知的折扣價值。電子商務優惠券代碼:生成許多映射到一個折扣的獨特優惠券?
是否有一個插件/框架/容易實現的功能,我可以使用,可以評估的飛行優惠券代碼(串),而與所有可能的組合播種我的數據庫?
我正在用php製作我自己的電子商務網站。我想提供我過去的客戶優惠券代碼,而無需向可能像野火般蔓延的所有人發送通用的「10%OFF」。我希望每個代碼都是唯一的,但映射到已知的折扣價值。電子商務優惠券代碼:生成許多映射到一個折扣的獨特優惠券?
是否有一個插件/框架/容易實現的功能,我可以使用,可以評估的飛行優惠券代碼(串),而與所有可能的組合播種我的數據庫?
既然你是自己寫的,這就是我的建議。
創建一個新的優惠券類型,在使用優惠券時,它會檢查登錄的用戶訂單歷史記錄,以確保他們之前已經下了訂單。
在您的優惠券表,添加以下字段requireSignIn
和requirePastOrders
。創建一個設置了這些字段的優惠券。當客戶嘗試應用該優惠券時,請進行必要的檢查以確保他們已登錄並且之前已下訂單。如果這些測試失敗,請顯示適當的錯誤消
您可以通過某種方式來構造優惠券代碼,從而可以在不檢查數據庫的情況下確定優惠券的類型(或者可以將這些優惠券存儲在僅包含優惠券類型(請參見下文)的表格中, t需要存儲每種可能的組合),然後在最後附加一個唯一的號碼,用於檢查優惠券是否曾用過。例如:
d8h7bb0778719945
- >d8h7bb
是優惠券類型(同此類型的所有其他優惠券),並0778719945
是唯一的編號(對於所有券不同,而不管類型)。
檢查優惠券類型是否對首先購買的物品有效。如果是,請對照您的優惠券數據庫檢查0778719945
,看它是否已被索賠。
對於我工作的公司,我們創建了一個「優惠券代碼」發生器,使我們能夠產生數以百萬計的自我驗證碼,而不在數據庫中加載它們的費用。
的代碼計算如下:
創建並存儲的16個字符或更多的鹽。
環路從0到碼的數目的計數器 - 1.對於每個計數器:
一個。產生計數器和鹽的散列,說md5(counter + salt)
灣生成優惠券代碼作爲計數器加的散列值
然後被接收優待券代碼時,我們提取計數器,和散列計數器+的鹽,並將其與在代碼中發現的散列。如果它們相同,我們知道代碼是有效的。
如果使用代碼生成銷售,我們會將其用於表中,以便它不能再次使用。
對於打印媒體,我們使用大寫鹼基-32值(2-9,A-H,J-N,P-Z)生成的優惠券代碼。 對於電子郵件和URL,我們使用修改後的base-64值(請參閱urlsafe_b64encode())
不幸的是,我無法提供實際的代碼,因爲它在NDA下。祝你好運!
嘗試Voucherify - 這是一個優惠券代碼的API。利用他們web app,你將能夠創造一個券活動,即產生數以千計的映射到相同的折扣唯一代碼:
然後,你可以用它PHP SDK集成到您的電子商務網站。要兌換憑證:
$result = $voucherify->redeem("unique-voucher-code", "customer-id");
結果將包括$result->voucher->discount->percent_off
指定的折扣,如果給定的代碼是有效的。
完全披露,我是Voucherify的開發者。