[英]Magento Payment Module: Getting All Items in Cart
我在Magento 1.8上创建了一个支付网关模块
在我的模型代码中,我试图以正确的格式构建一个字符串,以准备进行SOAP请求。
我需要收集订购产品,并且正在使用以下代码:
$order_string = "";
$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();
foreach ($items as $item) {
$order_string .= "prod=" . $item->getName() . ",item_amount=" . $item->getPrice() . 'x' . $item->getQty() . ';';
}
我面临的问题是$items
变量始终为空。 我已经尝试了多种获取此信息的方法:
$items = Mage::getSingleton('checkout/cart')->getAllItems();
$items = Mage::helper('checkout/cart')->getAllItems();
$items = Mage::helper('checkout/cart')->getCart()->getAllItems();
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
等等
如果我尝试使用Mage::log
任何信息,则将遇到错误:
User Error: Some transactions have not been committed or rolled back in /Users/[Username]/Sites/[Site Name]/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 3865
如果我使用->getItemsCount();
作为后缀而不是getAllItems()
或getAllVisibleItems()
的后缀,我似乎正确地返回了项目数。
我只想返回一系列商品,但实际上,我需要的只是名称,价格和数量,因此,如果有另一种返回信息的方法,我可以接受。
我刚才也遇到过同样的问题。
$cartItems = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach ($cartItems as $item) {
echo Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getShortDescription();
echo $item->getPrice();
echo $item->getSku();
echo $item->getQty();
}
可以在以下网址找到: http : //www.kathirvel.com/magento-custom-attributes-of-products-in-the-cart/
如果不起作用,那么让您失望的是您的事件。 如果通过控制器运行它,则效果很好。
使用Magento社区1.9.0.1版
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.