如何在magento中获取捆绑产品的捆绑项目

时间:2013-10-24 07:57:15

标签: php magento magento-1.7

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

显示复选框的方式在文件中定义: 应用程序/设计/前端/碱/默认/模板/束/目录/产品/视图/类型/束/选项/ 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的捆绑项目添加的简单产品名称。