destoon 商城团购购物逻辑错误 付款之前检查购买数量是否小于等于库存

2015年10月22日10:42:05 评论 637 次浏览

上次给大家修复了一个dt商城的逻辑问题,后来修改为付款后,就减去库存。

这次客户又发现了一个问题,客户反馈的问题如下:

是否在支付时检查一下卖家的实际库存是否大于要支付的库存。

卖家在商城上实际库存90吨的情况下,出现总计大于90吨的订单,请测试一下如下情况:

购买过程中,设定ABC三个角色,A是卖家,BC是买家,卖家A发布100吨库存,已售出10吨,现余90吨库存,买家B下单买了10吨,卖家A进行了确认,但是B未进行付款,买家C下单买了90吨,卖家A进行了确认,买家C付款后,买家B限于也进行了付款,卖家待发货订单中出现了网上这两个买家支付前库存剩余90吨,支付后待发货90吨+10吨,如何规避这种情况

这个问题,我测试后发现,确实是真实存在的,修改的方法就是在客户的付款页面做一个判断,如果客户购买的商品数量大于库存的时候,就提示客户不能付款,反之则能付款。

修改方法如下:

打开\template\default\member\trade.htm

在订单的付款页面,大约是470行添加代码

<!--{php $tags=tag("moduleid=16&condition=itemid=$mallid&template=null");}-->
{loop $tags $t}
{if $td[number]>$t[amount]}
不能付款
{else}
可以付款
{/if}
{/loop}

上面就是代码的具体写法,第一步是根据客户购买的商品的id获取当前商品的库存,然后跟客户的购买数量进行对比,我使用的代码是

<!--{php $tags=tag("moduleid=16&condition=itemid=$mallid&template=null");}-->
{loop $tags $t}
{if $td[number]>$t[amount]}
<tr id="payword" style="display:none;">
<td class="tl"><span class="f_red">*</span> 无法付款</td>
<td class="tr">对不起,您付款晚了一步,没有足够的库存给您发货了!</td>
</tr>
{else}
<tr id="payword" style="display:none;">
<td class="tl"><span class="f_red">*</span> 支付密码</td>
<td class="tr">{template 'password', 'chip'}&nbsp;<span id="dpassword" class="f_red"></span><a href="/member/send.php?action=payword"><font color="#FF0000">修改支付密码</font></a></td>
</tr>
{/if}
{/loop}

这样基本保存了原来的风格。截图如下

destoon 商城团购购物逻辑错误 付款之前检查购买数量是否小于等于库存

当客户购买的数量大于库存的时候,提示不能付款

 

destoon 商城团购购物逻辑错误 付款之前检查购买数量是否小于等于库存

当客户购买数量小于等于库存时候,可以付款

团购那边,应该都是一个方法,但是因为表结构不同,所以还是贴一下代码吧

修改的文件\template\default\member\group.htm

<!--{php $tags=tag("moduleid=17&condition=itemid=$gid&template=null");}-->
{loop $tags $t}
{if $td[number]>($t[amount]-$t[sales])}
<tr id="payword" style="display:none;">
<td class="tl"><span class="f_red">*</span> 无法付款</td>
<td class="tr">对不起,您付款晚了一步,没有足够的库存给您发货了! </td>
</tr>
{else}
<tr id="payword" style="display:none;">
<td class="tl"><span class="f_red">*</span> 支付密码</td>
<td class="tr">{template 'password', 'chip'}&nbsp;<span id="dpassword" class="f_red"></span><a href="/member/send.php?action=payword"><font color="#FF0000">修改支付密码</font></td>
</tr>

{/if}
{/loop}

区别在于团购商品的id为 gid,而且模块编号为17.而且计算库存,使用的是$t[amount]-$t[sales] 商品添加时候库存减去销量得出的实际库存。

继续阅读
weinxin
加我微信
微信扫一扫,加我微信好友,共同交流,共同进步! (备注:焦国强博客)
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: