Magento 可配置产品覆盖默认值 URL

Magento Configurable Product Overwrite Defaults by URL

我在浏览 js/varien/configurable.js 时注意到一条评论 // Overwrite defaults by url。是否意味着有一种方法可以通过更改 url?

来预 select 下拉值

如果是这样,能否请您举例说明这是如何实现的(例如:颜色)?也许 http://www.example.com/test/product.html#color=blue? url 修改 select 离子的选项是什么?相关sku?属性和选项标签?属性和选项 ID?

    // Overwrite defaults by url
    var separatorIndex = window.location.href.indexOf('#');
    if (separatorIndex != -1) {
        var paramsStr = window.location.href.substr(separatorIndex+1);
        var urlValues = paramsStr.toQueryParams();
        if (!this.values) {
            this.values = {};
        }
        for (var i in urlValues) {
            this.values[i] = urlValues[i];
        }
    }

    // Overwrite defaults by inputs values if needed
    if (config.inputsInitialized) {
        this.values = {};
        this.settings.each(function(element) {
            if (element.value) {
                var attributeId = element.id.replace(/[a-z]*/, '');
                this.values[attributeId] = element.value;
            }
        }.bind(this));
    }

提前致谢!

因此,您似乎可以使用 url pre-select 产品属性选项,但是,这并不是一种非常 user-friendly 的方式。完整的 url 后面必须跟 #attribute_id=option_id。除非您计划使用本机 Magento 函数来实现此功能,否则您需要访问数据库以获取适当的 ID。

例子

http://www.example.com/test/product.html#107=54&33=82

当您加载此 url 时,Magento 将从下拉菜单中 pre-select 这些值。相信我,我宁愿它是这样的:#attribute_code=option_code (#color=dark_blue),虽然我几乎确定下拉选项只有 ID 和标签。

如果您正在寻找一种方法使它变得更 user-friendly,也许可以尝试添加 url rewrites 来完成此操作。示例:http://www.example.com/test/product.html#107=54&33=82http://www.example.com/test/dark-blue-product.html