Magento如何保存您的购物车?

Gre*_*ick 13 php magento

Magento有两种存放购物车的方法.登录用户可以定义购物车保存,只要您想要定义它并且它存储在与用户编号相关的数据库中.未登录的用户似乎受到您的网站保留其会话变量的时间限制.这引出了两个问题.

1)我认为未登录的用户购物车与会话超时有关吗?

2)由于Magento/Varien建议在相当短的时间内杀死会话变量(通常只有4个小时),如果问题1是真的,有没有办法在不更改会话超时变量的情况下保持未登录的购物车?

clo*_*eek 22

据我所知,推车被保存为报价,即使对于客人也是如此.登录用户的客户ID与报价一起存储,客人不会因此他们的报价具有空客户ID,因此您可能会发现商店在数据库中有大量孤立/不完整的报价.将访客与他们的购物车相关联的唯一方法是将报价ID存储在他们的会话中.

您可以通过长时间超时将引用ID直接存储在其cookie中来延长其引用可用的时间,但这会导致明显的安全漏洞; 任何人都可以调整他们的cookie中的值并查看其他人的购物车.

唯一安全的方法是继续创建一个客户令牌表并将其与引号相关联(抱歉这次没有代码,在低级别中解释太多了).令牌是唯一的公共部分,并在cookie中设置.令牌应该是随机的,长的,比如512位/ 64个字符,但不要太长,因为它们包含在每个HTTP头中.每次创建新会话时,它都可能是返回的guest虚拟机,因此请检查令牌并在表中查找.获取找到的报价ID并将其存储在会话中,从而恢复旧购物车.带有客户ID的报价不需要以这种方式获救,因此应该免除,特别是因为注销客户不希望看到其帐户的任何部分仍然可见.


小智 9

在"sales_flat_quote"表中查看您的magento数据库

关心boti