如何创建新的自定义选项类型在magento?

cbwuti44  于 2022-11-12  发布在  其他
关注(0)|答案(3)|浏览(182)

我如何创建新的产品自定义选项类型在magento?
例如,我必须在magento中为新图像指定一个自定义选项类型,magento从我的自定义模块表中获取一个图像,我想将该图像分配给我的自定义选项图像字段。

qlvxas9a

qlvxas9a1#

正如达斯汀·格雷厄姆(Dustin Graham)所说,这是非常棘手的。第一步:
1.在global/catalog/product/options/custom/groups下添加新节点。请参阅/app/code/core/Mage/Catalog/etc/config.xml中的示例。
1.创建新块以渲染自定义选项。
1.重写Mage_Catalog_Model_Product_Option并实现保存自定义类型选项(saveOptions()方法)和加载自定义类型选项(getProductOptionCollection方法)。
如果您的自定义类型不是很自定义:)-它应该足够了。

7eumitmz

7eumitmz2#

我忘记了这个问题,但我需要再次创建新的自定义选项类型在我的另一个项目。我已经创建了新的自定义选项类型使用此链接。http://magento.ikantam.com/qa/custom-input-types-custom-options
解决方案是有点冗长,它不可能把整个代码在这里,所以我刚刚分享了这个链接,通过这个链接,我已经创建了新的自定义选项类型很容易,解释是很好的在这篇文章。
我根据自己需要做了一些修改。
希望这能对一些人有所帮助。
正如达斯汀·格雷厄姆所说,这非常棘手。

hec6srdp

hec6srdp3#

@Mufaddal感谢分享这个链接。我想提供一个替代方案,因为它需要相当多的知识。
如果您只是尝试更改特定下拉列表(例如)的显示方式,您也可以覆盖/template/catalog/product/view/options/type/select.phtml,如下所示:
'获取选项()?〉

<dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo  $this->escapeHtml($_option->getTitle()) ?></label>    </dt>
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
    <?php echo $this->getValuesHtml(); ?>

    <?php if($_option->option_id == 2) : ?>
                <script type="text/javascript">
                    jQuery('#select_2').css('display', 'none');
                </script>

                <?php foreach ($_option->getValues() as $_value) { ?>
                    <?php echo $_value->getTitle(); // the title of the option ?>
                    <?php echo $_value->getOptionTypeId(); // the id ?>
                <?php } ?>
                <!-- add custom code that triggers select in the background -->

            <?php endif ?>

    <?php if ($_option->getIsRequire()): ?>
        <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?>
            <span id="options-<?php echo $_option->getId() ?>-container"></span>
        <?php endif; ?>
    <?php endif;?>
</div>

`
然后,您可以隐藏select并通过jQuery与select交互。

相关问题