【问题标题】:How to get grouped product ID from purchased or cart product如何从已购买或购物车产品中获取分组产品 ID
【发布时间】:2011-10-21 13:48:57
【问题描述】:

我正在使用分组产品来跟踪促销活动。简单的产品有时会属于多个分组产品,因此检查 parentProductIds 是没有用的。我想知道通过分组(促销)SKU 购买产品时如何跟踪分组产品 ID。我可以看到它被存储在订单中的 info_buyRequest 和 super_product_config 中,但是我该如何取回这些信息呢?有没有办法把它从购物车/报价中拿出来?

【问题讨论】:

    标签: magento magento-1.4


    【解决方案1】:

    我能够在 foreach($this->getItems() as $_item) 中使用 cart.phtml 中的以下代码获取它:

    $values = unserialize($_item->getOptionByCode('info_buyRequest')->getValue());
    $parentId = $values['super_product_config']['product_id'];
    

    【讨论】:

      【解决方案2】:

      根据您希望从何处获取此信息,您可以在保存销售后的结帐流程后获取该信息。然后您可以使用事件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();
              }
      
      }
      

      【讨论】:

      • 谢谢,但这似乎不起作用。它到达了 foreach,但 $parent 为空。
      【解决方案3】:

      购物车页面上的分组产品被视为简单产品。在 Magento 2 中,您可以从会话中获取这些简单产品的父 ID。这对我有用:

      <?php 
      
      $catalogSession = $_SESSION['catalog'];             
      $parentId = $catalogSession['last_viewed_product_id'];
      
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-27
        • 2017-01-03
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多