Php 在订购过程中增加折扣的最佳方式是什么?
假设一个网站销售产品,并希望使用优惠券代码进行折扣。构建此结构的最佳方式是什么?这是我的想法,你能确认这是一个正确的方法吗?还有其他建议吗?别人是怎么做的 以下是我的想法: 订单中将包含一个给定的产品作为订单项。将有一个输入优惠券代码的输入,如果输入了正确的代码,将向订单添加一个具有负值的新行项目。换句话说,现在的订单将包括两项:Php 在订购过程中增加折扣的最佳方式是什么?,php,architecture,schema,structure,Php,Architecture,Schema,Structure,假设一个网站销售产品,并希望使用优惠券代码进行折扣。构建此结构的最佳方式是什么?这是我的想法,你能确认这是一个正确的方法吗?还有其他建议吗?别人是怎么做的 以下是我的想法: 订单中将包含一个给定的产品作为订单项。将有一个输入优惠券代码的输入,如果输入了正确的代码,将向订单添加一个具有负值的新行项目。换句话说,现在的订单将包括两项: 产品-$10 折扣-$5 总计:5美元 这是处理折扣和优惠券的正确方法吗?有多种方法可以做到这一点。没有一个解决办法。然而,这里有一些陷阱 用户是否从购物车中删
- 产品-$10
- 折扣-$5 总计:5美元
这是处理折扣和优惠券的正确方法吗?有多种方法可以做到这一点。没有一个解决办法。然而,这里有一些陷阱
- 用户是否从购物车中删除折扣项目
- 用户是否添加多个相同的优惠券代码
- 用户是否有空购物车
最后,在订单完成时应用折扣的解决方案最不容易出现上述情况。不要试图跟踪订单并在数据库或会话中添加标志。这将是徒劳的。你真的想专注于测试优惠券的条件是否满足。设想像
applyCoupons()
或eligibleForDiscount($优惠券)
这样的函数,您应该在数据库中有两个关系表。
优惠券有不同的折扣值吗
您可能有带有id、代码、折扣的优惠券
表,您可以在code
字段中以逗号分隔优惠券代码(ABC、BBC、CCS)或每行一个
如果用户在输入字段中输入优惠券id,请在数据库中进行检查,读取折扣
,然后执行$final_price=$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'] }
}
美元折扣=1;
而($var=mysql\u fetch\u assoc($result)){
$优惠券=分解(“,”,$var['code']);
$count=count($优惠券);
对于($i=0;$i)