我是Magento的新手,我想做的是在不同的商店和相应的网站之间共享购物车,我已经实现了这篇文章中提供的解决方案,Magento多个网站共享购物车,这有效但有限制,
在我的情况下也是一个问题的限制是,如果某些东西是从 ROOT 类别添加到购物车的第一个,即使我们切换商店(所有商店都有不同的 ROOT 类别),它也保留在会话中,也从其他商店添加的项目也共享相同的购物车会话。但是,当我从任何其他商店(非默认商店)将某些东西添加到购物车然后移动到其他商店时,每个商店的购物车会话都是独立创建的(意味着没有共享会话)。现在我想知道我在这里做错了什么,或者我必须做什么才能在那里分享会话。?
试一试。我是我为Magento EE 1.12项目开发的东西,但它也应该适用于CE。Magento已经在同一网站的商店视图之间共享购物车。代码背后的主要思想是使magento共享所有商店视图的购物车,而不仅仅是同一网站中的购物车。
我不确定它是否适用于任何网站配置,但您可以拍摄。
尝试这肯定有效,但最好覆盖模型文件。
感谢这篇文章。单车多个网站在马本托
我以不同的方式制作了它并且它有效:我有一个带有多个域和存储以及单个 SSL 的单一安装
我有主网站,我有来自其他网站的所有产品,并使用SSL设置。1. 在多店之间共享客户帐户:您可以在此处配置此功能:System -> Configuration -> Customer Configuration -> Share Customer Accounts ->Global
2.在Magento多商店网站之间共享购物车内容:
Magento为每个商店使用单独的购物车会话。要在结帐会话中使用一个网站,您需要修改Mage_Checkout_Model_Session
类。将此文件:app/code/core/Mage/Checkout/Model/Session.php
复制到:app/code/local/Mage/Checkout/Model/Session.php
。
之后,将以下源代码添加到类中:
class Mage_Checkout_Model_Session extends Mage_Core_Model_Session_Abstract
{
const CHECKOUT_STORE_ID = 1;
public function getCheckoutStoreId()
{
return self::CHECKOUT_STORE_ID;
}
将CHECKOUT_STORE_ID
值1
更改为包含所有产品和SSL的Magento商店ID。
接下来,在文件中找到所有此类元素:
Mage::app()->getStore()
并将其更改为:
Mage::app()->getStore($this->getCheckoutStoreId())
就是这样!
清除Magento缓存并检查您的商店。现在,您的Magento将为不同的多域商店网站使用一个购物车。此解决方案有 3 个限制:
- 购物车中的所有价格都将来自您选择的商店(使用
CHECKOUT_STORE_ID
)。因此,如果您有不同的价格商店它不会在购物车中工作。 - 购物车中的货币将与您选择的商店中的货币相同。
- 用于编辑购物车中商品的链接不会将客户重定向到原始购物车网站。