magento输出自定义选项

时间:2014-06-17 15:00:51

标签: magento magento-1.9

是否可以将可用的自定义选项列表输出到Magento中的view.phtml页面?显然,下拉列表允许您过滤掉,但我需要在html表中列出它们,并允许客户在每个项目上添加到购物车。

1 个答案:

答案 0 :(得分:1)

我将向您展示如何将dropdownmulti-select选项转换为表格格式。这是诀窍的代码。

<?php
$product = Mage::Registry('current_product');
$options = $product->getOptions();
//check for option exists
if($options):
    foreach ($options as $option) :
        //table format allows only for select options
        if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN || 
            $option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE):

            $require = ($option->getIsRequire()) ? ' required-entry' : '';
            if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
                    $value_name = 'options['.$option->getid().']';
            else:
                $value_name = 'options['.$option->getid().'][]';
            endif;
?>
            <table border="1" style="width:500px;margin-bottom:30px">
                <thead>
                    <tr<?php if ($option->getIsRequire()) echo ' class="required"' ?>>
                        <th><?php echo $option->getTitle() ?></th>
                        <th><?php if ($option->getIsRequire()) echo '<em>*</em>' ?></th>
                    </tr>
                </thead>
                <tbody id="<?php echo 'select_'.$option->getId() ?>" class="<?php echo $require.' product-custom-option' ?>">       
            <?php
                foreach ($option->getValues() as  $values) :
                    $value = $values->getOptionTypeId();
                    $value_title = $values->getTitle();
            ?>
                    <tr>
                        <td>
                            <?php
                                if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
                            ?>
                                    <input type="radio" name="<?php echo $value_name; ?>" class="radio_option" id="<?php echo 'radio_option_'.$value ?>" value="<?php echo $value; ?>" />
                            <?php
                                else:
                            ?>
                                    <input type="checkbox" name="<?php echo $value_name; ?>" class="checkbox_option" id="<?php echo 'checkbox_option_'.$value ?>" value="<?php echo $value; ?>" />
                            <?php
                                endif;
                            ?>
                        </td>
                        <td><?php echo $value_title; ?></td>
                    </tr>
            <?php
                endforeach;
            ?>
                </tbody>
            </table>
<?php
        endif;  
    endforeach;
endif;
?>

此处针对dropdown选项,我们使用radio button来显示其值。对于multiselect选项,使用checkbox输入。因此,如果表格中出现复选框,则表示它是一个多选项,因此一次可以有多个复选框。由于单选按钮用于下拉选项,因此务必确保一次只检查一个单选按钮。 (我们需要使用javascript来确保这一点)。

因此,如果我们通过像这样的管理员为产品设置一些自定义选项..

Admin Custom Options

输出对应我们的代码将如下所示

enter image description here

注意:请注意,代码采用非常基本的格式。您可能需要额外的CSS和javascripts,以使其更加用户。这是为了给你一个基本的想法和额外的CSS,js因此是开箱即用的主题。

有关代码的详细信息,请查看my blog

希望有所帮助