2011-04-07 72 views
0

可以說一個網站銷售的產品,並希望使用優惠券代碼折扣。什麼是最好的方式來構建這個?以下是我的想法,你能證實這是一個正確的方法嗎?還有其他建議嗎?其他人如何做到這一點?在訂購過程中添加折扣的最佳方式是什麼?

這裏是我的想法:

一個訂單將有它的特定產品作爲訂單項。將會有一個輸入優惠券代碼輸入,並且如果輸入了正確的代碼,則會將具有負值的新訂單項添加到該訂單中。換句話說,現在的訂單將包含兩個項目:

  • 產品 - $ 10
  • 折扣 - $ 5 Totoal:$ 5

這是接近的折扣和優惠券的正確方法?

回答

1

有多種方法可以做到這一點。沒有一個解決方案。但是,這裏有幾個陷阱

  • 用戶從購物車中刪除折扣商品?
  • 用戶添加了多個相同的優惠券代碼?
  • 用戶有一個空的購物車?

最後,在訂單完成時應用折扣的解決方案將最不容易實現上述目標。不要嘗試跟蹤訂單並在數據庫或會話中添加標誌。這將是徒勞的。如果優惠券的條件得到滿足,您真的想專注於測試。設想功能如applyCoupons()eligibleForDiscount($coupon)

0

您應該在數據庫中有兩個關係表。 優惠券有不同的折扣價值?

您可能有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鏈接表)來簡化過程。

相關問題