0

当从购物篮中添加或删除商品时,我网站上的商店会调整商品数量。但是,如果有人来到该站点并将一件商品中的 10 件添加到购物篮中并且没有删除这 10 件商品就离开了,那么他们将永远不会返回到数据库中。

如果有人在将商品从购物篮中取出之前离开网站,我该如何补充商品数量?也许是一个cron?

4

6 回答 6

2

用户将物品放入购物篮后是否需要立即“保留”?

是的

当用户预订项目时,将其预订时间存储在表格中。在计算产品的可用项目数时,减去当前保留的项目数。

当/如果用户为该项目付款时,从保留表中删除该项目并将其标记为已购买。

然后使用 cron 在 time 之后删除保留表中的所有项目x

这样做的缺点是用户的购物篮将在 time 之后清空x,因此您必须告知用户他们还剩下多少时间来支付他们的物品。

这更适合需求量大的商品,这些商品在付款之前可能会缺货。例如,活动门票。

不要在用户将商品放入购物篮时将其标记为已保留,并在用户付款时再次检查库存。如果产品在他们将商品放入购物篮后已经缺货,则显示错误。

这更容易,更适合低需求的产品。

于 2012-06-07T15:59:01.400 回答
1

编写一个脚本来清理陈旧的备份(例如,最后一次访问是在 2 小时前)并在 cron 中调用它。

于 2012-06-07T15:48:23.760 回答
1

您可以创建一个 cron 作业,在商品放入购物车后每隔 X 小时自动从客户购物车中删除元素,但这可能会从购物车中删除仍在被活动用户使用的商品,因此这可能会被忽视。

一种做你想做的事的方法也是使用 JavaScript 来捕捉用户关闭网站/去 afk X 小时。一旦任何一个元素被触发,您就可以进行 AJAX 调用以从购物车中删除商品并相应地更新网站。这似乎是解决您的问题“当他们离开网站时”最直接的解决方案,但如果 cookie 被客户端本身破坏,则不会真正解决问题。

无论哪种方式,您都需要考虑一种方法来确保客户端、会话和数据库上的数据同步,以确保没有物品是“孤立的”,并且不会对不存在的物品进行购买。

于 2012-06-07T15:55:16.440 回答
1

首先,很难确定用户何时离开站点并且不会返回。有很多方法,但并非所有方法都是万无一失的。我在下面详细介绍的最好的一个:

访问者可以是注册用户,也可以是尚未注册的新用户。您的代码应将购物车内容连同添加时间一起保存在数据库表中。记录需要与用户标识 - 已注册或未注册。注册后,您只需将注册用户的 ID 保存在购物车表中即可。如果它是未注册用户,那么您需要使用 cookie 并在购物车表和 cookie 上保存一个 ID。

如果用户在特定时间段内离开并返回,例如 1 小时,则用户可以看到购物车内容完好无损。

同时,您需要编写一个脚本来查找超过 1 小时的购物车内容并删除它们并将库存退回到您的库存中。您可以设置一个 cron,每隔几分钟(例如 15 分钟等)运行一次此脚本。

如果用户在此过程运行后返回,则购物车将不包含添加的项目,用户将需要再次添加它们。

于 2012-06-07T15:56:46.557 回答
0

在他们完全完成购买之前,不要从您的库存中删除数量。

于 2012-06-07T15:52:19.350 回答
-1

为此使用 cookie。我在我的客户商店使用它的方法。示例: http: //magazinsvarki.ru/

于 2012-06-07T15:49:32.420 回答