这可能会有点令人困惑,因为我已经尝试了一切来使这项工作成功。我想要的只是我的品牌网站 (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 中创建了一个模板,只是为了给我购物车数量作为一个块,它返回块很好,但购物车中仍然为零!
$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_管理, .domain.com cookie_domain(即使这是特定于子域的),我已经阅读并尝试了两天我能找到的所有内容。不断删除会话和缓存目录,并在禁用 magento 缓存的情况下清除缓存和 cookie。
这是我使用这个网站多年后在这个网站上发布的第一个问题,我已经被这个问题困扰了 3 天!拔我的头发!
我复制了你的代码并在 Magento 1.5、1.6 和 1.7 上进行了测试。
我将代码放在一个名为的 PHP 文件中test.php在 Magento 根目录中。这是我使用的代码:
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|false
Magento 实例使用本地测试主机名 magento15.dev、magento16.dev 和 magento17.dev。
我请求相应的 Magento 实例并将产品放入购物车(使用可配置的简单产品进行测试),然后更新购物车中产品的数量。
在每个步骤之间我重新加载了test.php文件在浏览器中。
结果总是一样的:它按预期工作。每次调用都会返回与 Magento 站点上相同的值。
所以这意味着您的代码是正确的,它可能是您的域和/或设置(当您请求测试脚本时浏览器是否发送 Magento 前端 cookie)?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)