1

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

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

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

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

4

1 回答 1

1

是的......我想我已经找到了解决方案。我添加了名为“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 的捆绑商品添加的简单产品名称。

于 2013-10-26T02:43:04.873 回答