如何获取洋红色捆绑产品的捆绑商品


How can get the bundle item of a bundle product in magento

我有一个捆绑产品,我通过管理面板向其添加了 3 个捆绑商品(复选框类型)。 捆绑商品中的 2 个只有一个选择,而第三个有 7 个选择(每个都是简单产品)。

现在我遇到一种情况,我需要显示已添加到第三个捆绑产品而不是整个捆绑商品的简单产品的名称(默认情况)。我尝试了很多,但找不到解决方案

提示:复选框默认显示是在文件app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/checkbox.phtml中定义的,我认为我们需要在此文件中进行编码。

请帮助我伙计们..我真的需要一个解决方案..

是的...我想我已经找到了解决方案。我添加了名称为"LLC"的捆绑商品,并添加了简单的产品作为复选框。我需要做的是显示我在 LLC 捆绑包项目下添加的简单产品的名称,而不是显示 LLC 及其复选框(默认情况)。

复选框的显示方式在文件中定义:app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/checkbox.phtml

所以我在那里定义了一个函数,如下所示。

<?php 
if($this->htmlEscape($_option->getTitle())=="LLC")
{
     $current_product=Mage::registry('current_product');
     echo $this->getpackagedetails($current_product,$this->htmlEscape($_option->getTitle()));
 }
 ?>

如您所见,我检查了捆绑项目的名称是否为 LLC。如果是,将当前产品获取到一个变量中,然后我调用了一个函数"getpackagedetails()",该函数在复选框块中定义,您可以在此处找到/app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php。此函数传递两个参数:当前产品和捆绑商品名称。

现在将我们的函数添加到块文件中。 下面给出。

<?php
 public function getpackagedetails($currentproduct,$optid)
 {
        $display="";
        $bundled = Mage::getModel('catalog/product');
        $bundled->load($currentproduct->getId());
        $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
        $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);
        foreach($selectionCollection as $option)
        {
            $sku=$option->getSku();
            if($optid=="LLC" && $optid==$bistype)
            {
                if(strpos($sku,"llc")!== false)
                {
                    $display.=$option->getName();
                }
            }
        }
        return($display);
  }

在这里,我所做的是使用变量$bundled加载了当前产品。然后,我将添加到捆绑产品中的所有选择类型选项都添加到变量$selectionCollection。为了分离对应于LLC捆绑包项目的选项,我已经检查了每个选项的SKU中是否有"llc"字符串(所有简单产品都对应于LLC捆绑包项目,我已经在那里设置了"llc"字符串)。如果是,则获取名称并将其存储到变量$display中。然后返回变量。

就是这样。现在,您只能看到我为名为 LLC 的捆绑商品添加的简单产品名称。