繁体   English   中英

Magento付款模块:将所有物品放入购物车

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM