【问题标题】:Magento Configurable Product Overwrite Defaults by URLMagento 可配置产品通过 URL 覆盖默认值
【发布时间】:2016-01-27 13:45:04
【问题描述】:

我正在浏览js/varien/configurable.js 并注意到一条评论说// Overwrite defaults by url。是否意味着可以通过更改 url 来预先选择下拉值?

如果是这样,您能否向我展示一个如何完成的示例(例如:颜色)?也许http://www.example.com/test/product.html#color=blue?用于修改选择的 url 有哪些选项?相关的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));
    }

提前谢谢你!

【问题讨论】:

    标签: magento magento-1.9 configurable-product


    【解决方案1】:

    因此,您似乎可以使用 url 预先选择产品属性选项,但是,这样做并不是一种非常用户友好的方式。完整的 url 后面必须跟 #attribute_id=option_id。除非您计划使用本机 Magento 函数来实现这一点,否则您将希望能够访问数据库以获取适当的 id。

    示例

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

    当你加载这个 url 时,Magento 会从下拉菜单中预先选择这些值。相信我,我更希望它是这样的:#attribute_code=option_code (#color=dark_blue),尽管我几乎确定下拉选项只有 id 和标签。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多