如何获得Magento报价项的类型?

时间:2013-08-12 12:51:43

标签: magento magento-1.13

分组产品正在将简单的产品分组,众所周知。在我的自定义模块的某个地方,我需要知道我的购物车中是否有一个简单的产品(报价)“由分组产品添加”或“自身”?

我知道有一张表sales_flat_quote_item_option。 sales_flat_quote_item中的商品记录没有差异,但在该选项表中存在一些差异。当您使用“分组产品添加操作”添加简单产品时,它会在sales_flat_quote_item_option表中创建一行包括info_buyRequest。

我想以编程方式确定该记录。

感谢您提供任何帮助/指示。

2 个答案:

答案 0 :(得分:6)

我找到了解决方案。它足以让我难堪;

$_item->getProductType()
当该简单项目带有分组产品的添加操作时,

返回“已分组”。尽管如此,这是一个逻辑错误,因为该产品的类型实际上是“简单”而不是“分组”。

答案 1 :(得分:0)

如果您不想遍历购物车项目中的所有产品,您可以做的是获取报价ID并直接从数据库加载项目,包括产品类型过滤器。

/** @var Mage_Sales_Model_Quote $quote */
$quoteId = Mage::getModel('checkout/cart')->getQuote()->getId();
/** @var Mage_Sales_Model_Resource_Quote_Item_Collection $quoteItems */
$quoteItems = Mage::getModel('sales/quote_item')->getCollection();
$quoteItems->addFieldToFilter('quote_id', $quoteId);
$quoteItems->addFieldToFilter('product_type', 'bundle');

if ($quoteItems->getSize() >= 1) {
    echo 'We have bundle products in the cart';
}