搜索
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

扫一扫,访问微社区

注册 找回密码
查看: 4747|回复: 1
打印 上一主题 下一主题

为何有一些订单时放弃/丢失的订单?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-21 14:30:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为何有一些订单时放弃/丢失的订单?

在 1.4.x 版本系列,当结账/确认页面加载时生成临时订单。
在 1.5.x 版本系列,当结账的第六步页面加载时,产生临时订单。

当支付完成后,会更新该临时订单的订单状态,转换成为真实的订单。但如果没有支付,或客户在结账过程中放弃了,那该临时订单会一直保留。当客户在结账过程中来回反复时,也会产生新的临时订单,这样旧的临时订单也会予以保留。

以前的时候,我们会清除无用的临时订单,但现在决定保留它们,这样可以提醒客户回来再次付款。

但问题在于客户每次加载确认页面时均会产生新的临时订单,例如你在结账过程中反复了5次,生成了六个订单,客户只是结账了地六个订单。于是前五个临时订单就永远保留在了系统中。当你问客户为何不付款时,客户会说我付过了啊。这会造成一些困惑。

一个解决办法是限定临时订单的数量,同一个客户使用已经产生的一个临时订单。
如下附件成功解决了此问题,请下载安装使用即可。适合于opencart 1.4.x-1.5.x,使用前请安装好vqmod。

single_temp_order_id.zip (1.84 KB, 下载次数: 155)

该附件的作用原理是:一旦客户生成了临时订单,则强制购物车使用此临时订单,例如一个客户走到了确认页面生成了订单id为101,则无论该客户回去又选择了多个产品,还是修改了其他的东西,再次回到确认页面时,仍然使用订单id为101的。

在有许多临时订单的情况下,可以在后台查看这些订单。Admin->Sales->Order,选择abandoned 或 Missing状态(根据你的opencart版本来决定)。你可以到订单的编辑页面,此时你会看到该订单的状态栏是canceled,但其实不是这样。之所以是canceled状态,是因为订单状态列表的第一项就是canceled,并不是真的canceled。这样的情况,管理员会误认为是canceld取消订单,这回造成一些困惑。

一个订单在真实支付后,订单的状态还处于临时订单状态的时,会是如下情况造成的:
- 你所在服务器防火墙或端口屏蔽了
- 代码错误
- 支付接口没有返回任何信息
- 错误的 htaccess
- http密码保护组织了信息

如果你想手工删除这些临时订单,可以在phpmyadmin中运行如下sql语句:

DELETE FROM `oc_order` WHERE order_status_id = 0


根据你是否使用了数据库表前缀,来决定是否添加使用前缀oc_
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

QQ|手机版|OpenCart - 中文官方网站 ( 蜀ICP备09033774号|人工智能

GMT+8, 2024-12-23 04:25 , Processed in 0.059309 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表