Magento程序化添加到购物车会话问题


Magento Programmatic Add To Cart Session Issue

我试图创建一个ajax脚本添加可配置的项目到用户购物车。脚本如下:

require_once('app/Mage.php');
umask(0);
Mage::app();
error_reporting(E_ALL);
ini_set('display_errors', 1);
$json = json_decode($_POST['json'],true);
$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
if ( $_POST['form_key'] == $session->getFormKey() ) {
    $cart = Mage::getSingleton('checkout/cart')->init();
    $_product = Mage::getModel('catalog/product')->load($json['product']);
    $cart->addProduct($_product,$json)->save();
    $session->setCartWasUpdated(true);
    echo $cart->getItemsQty();
} else {
    echo "Access Denied";
}

该脚本通过POST获得以下内容。

"json" = "{"super_attribute": {"76":"10","576":"82"},"qty":"1","product":"532"}"
"form_key" = "**form_key**"

将商品添加到购物车中,并准确地输出更新后的数量。

我的问题是前端用户会话购物车从未更新。即使GetItemsQty输出一个递增的数字,前端的'My Cart'链接总是空的。

我甚至检查了$session id匹配浏览器会话

为将来参考,这一行

Mage::app();    

需要包含以下

Mage::app(5)->loadArea('frontend');

'5'为存储id