【问题标题】:magento output custom optionsmagento 输出自定义选项
【发布时间】:2014-06-17 15:00:50
【问题描述】:

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

【问题讨论】:

  • 您想以表格形式显示所有类型的自定义选项吗?
  • 我设法通过使用可配置产品而不是自定义选项来对此进行排序。然后我可以将它们提取成表格格式。
  • 请将 cmets 添加到我的答案中。我的答案下方有一个 add comment 选项。在此处发表评论适用于所有查看此问题的人。有时我可能不会通知。
  • 请再次阅读您的问题。您没有提供任何线索来表明您是否需要此可配置产品。请edit您的问题相应。编辑选项位于左侧问题下方

标签: magento magento-1.9


【解决方案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 来确保这一点)。

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

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

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

有关代码的更多信息,请查看my blog

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2023-03-21
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多