可以說一個網站銷售的產品,並希望使用優惠券代碼折扣。什麼是最好的方式來構建這個?以下是我的想法,你能證實這是一個正確的方法嗎?還有其他建議嗎?其他人如何做到這一點?在訂購過程中添加折扣的最佳方式是什麼?
這裏是我的想法:
一個訂單將有它的特定產品作爲訂單項。將會有一個輸入優惠券代碼輸入,並且如果輸入了正確的代碼,則會將具有負值的新訂單項添加到該訂單中。換句話說,現在的訂單將包含兩個項目:
- 產品 - $ 10
- 折扣 - $ 5 Totoal:$ 5
這是接近的折扣和優惠券的正確方法?
可以說一個網站銷售的產品,並希望使用優惠券代碼折扣。什麼是最好的方式來構建這個?以下是我的想法,你能證實這是一個正確的方法嗎?還有其他建議嗎?其他人如何做到這一點?在訂購過程中添加折扣的最佳方式是什麼?
這裏是我的想法:
一個訂單將有它的特定產品作爲訂單項。將會有一個輸入優惠券代碼輸入,並且如果輸入了正確的代碼,則會將具有負值的新訂單項添加到該訂單中。換句話說,現在的訂單將包含兩個項目:
這是接近的折扣和優惠券的正確方法?
有多種方法可以做到這一點。沒有一個解決方案。但是,這裏有幾個陷阱。
最後,在訂單完成時應用折扣的解決方案將最不容易實現上述目標。不要嘗試跟蹤訂單並在數據庫或會話中添加標誌。這將是徒勞的。如果優惠券的條件得到滿足,您真的想專注於測試。設想功能如applyCoupons()
或eligibleForDiscount($coupon)
。
您應該在數據庫中有兩個關係表。 優惠券有不同的折扣價值?
您可能有coupons
帶有ID,代碼和折扣的表格,您可以在code
字段(ABC,BBC,CCS)或每行一個字段中存儲以逗號分隔的優惠券代碼。
如果用戶在輸入字段中輸入優惠券編號,檢查它在數據庫中,讀取discount
並做$ final_price = $價格* $折扣(假設你將存儲的折扣爲0.2(20%)等。
如果你想以逗號分隔的優惠券代碼,這樣做是爲了操縱他們:
$discount = 1;
while ($var = mysql_fetch_assoc($result)) {
$coupon = explode(',', $var['code']);
$count = count($coupon);
for ($i = 0; $i <= $count; $i++) {
if($_POST['input_coupon'] == $coupon[$i]) { $discount = $var['discount'] }
}
,然後你$ final_price = $價格* $優惠; 你可以把它放在一個AJAX POST請求,瞧;
或使用每條優惠券代碼一行,更簡單。
或者做一個JOIN查詢(通過id鏈接表)來簡化過程。