4

分组产品就是对简单产品进行分组,大家都知道。在我的自定义模块的某个地方,我需要知道我的购物车中是否有一个简单的产品(报价)“由分组产品添加”或“本身”?

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

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

感谢您的任何帮助/指令。

4

2 回答 2

8

我找到了解决方案。简单到让我难堪;

$_item->getProductType()

当该简单项目带有分组产品的添加操作时,返回“分组”。尽管如此,还是有一个逻辑错误,因为该产品的类型实际上是“简单”而不是“分组”。

于 2013-08-12T13:08:31.907 回答
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';
}
于 2017-04-03T12:32:35.333 回答