这可能会让人有点困惑,因为我已经尝试了所有的方法来让它工作。我想要的是在我的品牌网站(domain.com)中的一个链接,它显示了我的magento 1.5.1购物车(domain.com/shop)中的数量,我很容易拉入产品数据和导航块,但无论我做什么,购物车数量总是从magento之外的0。我尝试的主要方式是在我的品牌网站上:
require_once $_SERVER['DOCUMENT_ROOT'].'/shop/app/Mage.php';
umask(0);
Mage::app();
Mage::getSingleton('core/session', array('name'=>'frontend'));
// trying everything
Mage::getSingleton('checkout/cart')->getItemsCount(); // returns 0
Mage::helper('checkout/cart')->getItemsCount(); // returns 0
Mage::getSingleton('customer/session')->isLoggedIn(); // returns blank
Mage::helper('checkout/cart')->getCart()->getItemsCount(); // returns 0
Mage::helper('checkout/cart')->getCart()->getQuote()->getItemsCount(); // returns blank然后,当所有这些都不起作用时,我在Magento中创建了一个模板,只是给我一个cart数量作为一个块,它返回块很好,但在cart中仍然是零!
$block = $this->layout->createBlock('core/template');
$block->setTemplate('page/html/cartForBrand.phtml');
return $block->renderView();magento中的区块很简单
Mage::getSingleton('core/session', array('name'=>'frontend'));
$cart = Mage::getModel('checkout/cart')->getQuote()->getData()['items_qty'];我见过很多人有类似的问题:/ session_cookie_management,.domain.com cookie_domain(尽管这是特定于子域名的),我已经阅读并尝试了两天能找到的所有东西。不断删除会话和缓存目录,并在禁用magento缓存的情况下清除缓存和cookies。
这是我使用多年后在这个网站上发布的第一个问题,我已经被这个问题困了3天了!把我的头发拔出来!
发布于 2012-06-23 12:26:14
如果你想要的只是数量,为什么要实例化magento。只需设置一个客户端cookie (即cart_qty),然后在主站点标题上阅读此cookie即可。
发布于 2012-06-22 16:58:27
我复制了你的代码,并在Magento 1.5、1.6和1.7上进行了测试。
我将代码放在Magento根目录中名为test.php的PHP文件中。这是我使用的代码:
umask(0);
require_once 'app/Mage.php';
Mage::app();
Mage::getSingleton('core/session', array('name'=>'frontend'));
var_dump(array(
"Mage::getSingleton('checkout/cart')->getItemsCount()" =>
Mage::getSingleton('checkout/cart')->getItemsCount()
)); // returns number of items (w/o qty)
var_dump(array(
"Mage::helper('checkout/cart')->getSummaryCount()" =>
Mage::helper('checkout/cart')->getSummaryCount()
)); // returns number according to configuration
var_dump(array(
"Mage::getSingleton('customer/session')->isLoggedIn()" =>
Mage::getSingleton('customer/session')->isLoggedIn()
)); // returns bool true|falseMagento实例使用本地测试主机名magento15.dev、magento16.dev和magento17.dev。
我请求了相应的Magento实例,并在购物车中放置了一个产品(使用一个可配置的和一个简单的产品进行了测试),然后更新了购物车中的产品数量。
在每一步之间,我在浏览器中重新加载了test.php文件。
结果总是一样的:它按预期工作。每次调用都会返回与Magento站点上相同的值。
因此,这意味着您的代码是正确的,可能是您的域和/或设置(当您请求测试脚本时,浏览器是否会发送Magento前端cookie )?
发布于 2013-07-25 02:14:08
您的代码很好,但是默认情况下,Magento的“前端”cookie不能在Magento之外访问(因此您不能访问会话数据)。您需要在Admin > System > Configuration > Web > Session Cookie Management > Cookie Path中更改Cookie的路径。尝试将其设置为/
https://stackoverflow.com/questions/11152613
复制相似问题