2011-04-07 71 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链接表)来简化过程。

相关问题