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。
例子
当您加载此 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=82
到 http://www.example.com/test/dark-blue-product.html
我在浏览 js/varien/configurable.js
时注意到一条评论 // Overwrite defaults by url
。是否意味着有一种方法可以通过更改 url?
如果是这样,能否请您举例说明这是如何实现的(例如:颜色)?也许 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。
例子
当您加载此 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=82
到 http://www.example.com/test/dark-blue-product.html