Magento有两种存放购物车的方法.登录用户可以定义购物车保存,只要您想要定义它并且它存储在与用户编号相关的数据库中.未登录的用户似乎受到您的网站保留其会话变量的时间限制.这引出了两个问题.
1)我认为未登录的用户购物车与会话超时有关吗?
2)由于Magento/Varien建议在相当短的时间内杀死会话变量(通常只有4个小时),如果问题1是真的,有没有办法在不更改会话超时变量的情况下保持未登录的购物车?
clo*_*eek 22
据我所知,推车被保存为报价,即使对于客人也是如此.登录用户的客户ID与报价一起存储,客人不会因此他们的报价具有空客户ID,因此您可能会发现商店在数据库中有大量孤立/不完整的报价.将访客与他们的购物车相关联的唯一方法是将报价ID存储在他们的会话中.
您可以通过长时间超时将引用ID直接存储在其cookie中来延长其引用可用的时间,但这会导致明显的安全漏洞; 任何人都可以调整他们的cookie中的值并查看其他人的购物车.
唯一安全的方法是继续创建一个客户令牌表并将其与引号相关联(抱歉这次没有代码,在低级别中解释太多了).令牌是唯一的公共部分,并在cookie中设置.令牌应该是随机的,长的,比如512位/ 64个字符,但不要太长,因为它们包含在每个HTTP头中.每次创建新会话时,它都可能是返回的guest虚拟机,因此请检查令牌并在表中查找.获取找到的报价ID并将其存储在会话中,从而恢复旧购物车.带有客户ID的报价不需要以这种方式获救,因此应该免除,特别是因为注销客户不希望看到其帐户的任何部分仍然可见.
| 归档时间: |
|
| 查看次数: |
22380 次 |
| 最近记录: |