0

我正在尝试使用 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; ?>
4

2 回答 2

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"].options 您将获得属性的选项,以及与该选项相关的产品,将 spConfig.config.attributes["attrId"].options 输出到控制台,您将获得一些对象,每个对象都包含以下内容:

id
    "1221"

label
    "Gris"

oldPrice
    "650"

price
    "650"

products
    ["1137"]  

ID 是属性 id Label 是 Option 标签,oldPrice 和 price 用于超属性,oldPrice 是默认价格,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>
于 2013-07-31T00:20:11.547 回答
0

感谢所有的帮助。它可能对我接下来的步骤有所帮助。我在这里找到了开始解决方案的答案。 http://www.atwix.com/magento/ajax-requests-in-magento/

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

于 2013-08-12T15:11:41.013 回答