如何使用jQuery获取magento可配置属性项

时间:2013-07-30 23:11:22

标签: jquery magento

我正在尝试使用jquery加载可配置产品的选项,以使模板更快。我们的想法是显示默认选项,让客户选择他们想要更改的项目。但是,我找不到关于magento模块如何将某些东西返回到jQuery函数的方向。有什么想法吗?

<?php foreach($_attributes as $_attribute): ?>
        <dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
        <dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
            <div class="input-box">
                <select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
                    <option><?php echo $this->__('Choose an Option...') ?></option>
                  </select>
              </div>
        </dd>
    <?php endforeach; ?>

2 个答案:

答案 0 :(得分:2)

所有项目的选项都是本地magento,包含在spConfig javascript对象中,它在catalog / product / view / type / options / configurable.phtml上定义

var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);

使用该对象,您可以获取属性使用的所有选项spConfig.config.attributes,以获取属性ID和代码的列表,使用spConfig.config.attributes [“attrId”]。选项您将获得选项该属性以及与该选项相关的产品将spConfig.config.attributes [“attrId”]。选项输出到控制台,您将获得一些对象,每个对象包含以下内容:

id
    "1221"

label
    "Gris"

oldPrice
    "650"

price
    "650"

products
    ["1137"]  

ID是属性id标签是Option标签,oldPrice和price用于超级属性,oldPrice是defalt价格,price是属性的价格,products是具有此属性的产品列表。

要选择每个属性的第一个选项,请尝试:

<script type="text/javascript">
    var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
    for(var i=spConfig.settings.length-1;i>=0;i--) {
      spConfig.settings[i].selectedIndex = 1;
    }
    spConfig.reloadPrice();
</script>

答案 1 :(得分:0)

感谢所有帮助。它可能会帮助我完成下一步。我在这里找到了解决方案来启动解决方案。 http://www.atwix.com/magento/ajax-requests-in-magento/

有了这个,我可以使用默认选项加载可配置产品,然后显示客户想要更改的内容。