我正在使用分组产品来跟踪促销活动。简单的产品有时会属于多个分组产品,因此检查parentProductIds是没有用的。我想知道如何通过分组(促销)SKU购买产品时跟踪分组的产品ID。我可以看到它存储在订单中的info_buyRequest和super_product_config中,但是如何将这些信息取回?有没有办法在购物车/报价中找到它?
答案 0 :(得分:6)
我能够使用cart.phtml中的以下代码获取它,在foreach中($ this-> getItems()为$ _item):
$values = unserialize($_item->getOptionByCode('info_buyRequest')->getValue());
$parentId = $values['super_product_config']['product_id'];
答案 1 :(得分:0)
根据您希望获取此信息的位置,您可以在结帐过程结束时保存销售。然后,您可以使用事件sales_order_save_after
并在类中创建方法以获取分组产品的项目。
这里重要的是类Mage_Sales_Model_Order_Item
的对象,它具有关于产品和产品父母的信息
这是一个例子:
public function processSalesOrder($observer)
{
$order = $observer->getOrder()
$quoteItems = $order->getItemsCollection(null, true);
/*@var $item Mage_Sales_Model_Order_Item */
foreach ($quoteItems as $item) {
$parent = $item->getParentItem();
if(!is_null($parent)){
// do your stuff - you have a product parent which has children product
// $item is the children
echo 'The parent product is ' . $parent->getSku();
echo 'One of the children product is' .$item->getSku();
}
}
答案 2 :(得分:0)
在购物车页面上,分组产品被视为简单产品。在Magento 2中,您可以从会话中获取这些简单产品的父ID。这对我有用:
<?php
$catalogSession = $_SESSION['catalog'];
$parentId = $catalogSession['last_viewed_product_id'];
?>