1

我有一个 Magento 安装,其中多个域(domain1.com、domain2.com)共享一个结帐 URL(checkoutdomain.com)。问题是当我继续购物车并对新域执行操作时,我收到“购物车中没有物品”错误。由于某种原因,会话/cookie 没有传递到结帐域。

我正在运行 Magento 1.7。我去了system/config/web/sessioncookie 管理并在 cookie 域字段中尝试了以下所有值:

.domain.com
.domain.com/
http://www.domain.com
http://www.domain.com

这里应该有别的东西吗?

我也有 cookie 路径字段空白(默认)并使用 http only 设置为是(默认)。

我不确定在这里还能做什么。

4

3 回答 3

0

我要检查的第一个地方是您的商店设置。请记住,您不能轻松地在多个网站之间共享购物车,只有商店和商店视图(使用 Magento 的命名法)。

假设没问题,您的下一个问题是确保所有域都使用相同的 PHP 会话。您可以通过告诉他们都使用相同的会话 ID 来做到这一点。Cookie 是解决此问题的理想解决方案,但 Cookie 不能跨完全不同的域工作。

这意味着我们必须明确告诉checkoutdomain.com会话我们希望加载。SID我们可以通过将会话 ID 作为GET 参数传递来强制 Magento 加载特定会话。您可以通过调用来获取此值Mage::getModel("core/session")->getEncryptedSessionId()

于 2012-06-13T21:51:36.103 回答
0

您应该在系统配置中设置web/session/use_frontend_sidyes

于 2012-06-13T23:07:21.950 回答
0

您还应该记住,不指定 cookie 路径将使其默认为设置 cookie 时所在的当前路径。您应该将其默认为“/”以确保它是为站点全局设置的。

于 2013-10-30T11:12:46.593 回答