我试图在第三方网站和我们的Magento商店之间建立一座桥梁。一个客户可以在另一个网站上建立一个购物车,但是一旦他们被洗牌到我们的网站,我就必须重新创建它。
控制器内部:
$quote = Mage::getSingleton( 'checkout/session' )->getQuote();
$catalog = Mage::getModel( 'catalog/product' );
$cart = json_decode( $this->getRequest()->getParam( 'cart' ) );
foreach ($cart as $sku => $qty) {
$product = Mage::getModel( 'catalog/product' )->load( $sku );
$quote->addProduct( $product, $qty );
}
$quote->collectTotals()->save();
这似乎有效。创建购物车后,我可以检查,并且报价似乎已创建并填充:
echo $quote->getId() . '<br><br>';
foreach ($quote->getAllItems() as $item) {
var_dump($item->getProduct()->getName());
}
问题是永远不会附加到用户身上。所以第二个你移动到另一个页面,它会完全忘记你的购物车。我确信(我希望)这是一个我很容易忽视的事情。此时我没有客户ID,因为他们还没有登录。这是他们见过的第一页。