Magento:在会话中保存客户账单地址

时间:2011-08-17 15:29:42

标签: magento

我正在开发一家关于magento的多店铺商店。问题是应该将客户重定向到最近的商店。

我尝试实施的解决方案是在页面上放置一个半透明的div叠加层,并询问街道名称和号码,并根据这些值将客户重定向到正确的商店。

我现在面临的问题是,我不知道如何在会话中保存该地址,以后在结帐时我再也不会问他们了。

我试图做的是:

$address = Mage::getModel('checkout/session')->getQuote()->getBillingAddress();
$address->setStreet('test_value');
$address->save();

然而,在一次刷新后,信息就消失了。

你怎么建议我这样做?

更新

  • 所有商店都在同一个网站上,所以我认为会话是一样的(至少cookie没有改变,我查了一下)。

  • 在90%的情况下,客户将被取消注册,在这种情况下,客户ID的解决方案是否适用?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,因为你说你要去不同的商店,这意味着不同的会话,所以这些价值不会结转......我会建议一个控制器电话(你想要把商店的基本网址带到to)带参数的引用ID和商店ID从哪里被重定向,客户ID ...和控制器中的重置会话...基本上做:

设置客户

Mage::getSingleton('customer/session')->setCustomer(Mage::getSingleton('customer/customer')->load($customerId));

设置报价

Mage::getSingleton('checkout/cart')->getQuote()->setParentQuoteId($quoteId);

foreach (Mage::getModel('sales/quote')->setStoreId($originalStoreId)->load($quoteId)->getAllItems() as $quote_item) {
            $this->addToBasket($quote_item);                
}

设置优惠券等(如果有),然后重定向回购物篮。

应该工作