可以说一个网站销售的产品,并希望使用优惠券代码折扣。什么是最好的方式来构建这个?以下是我的想法,你能证实这是一个正确的方法吗?还有其他建议吗?其他人如何做到这一点?在订购过程中添加折扣的最佳方式是什么?
这里是我的想法:
一个订单将有它的特定产品作为订单项。将会有一个输入优惠券代码输入,并且如果输入了正确的代码,则会将具有负值的新订单项添加到该订单中。换句话说,现在的订单将包含两个项目:
- 产品 - $ 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链接表)来简化过程。