Magento2 - Получить идентификатор простого продукта, который связан с настраиваемым продуктом на странице списка продуктов
Я хочу передать идентификатор продукта в теге rel в классе swatch-option, который находится на странице списка образцов.
Я знаю, что это должно быть сделано через swatch-renderer.js но не в состоянии выполнить код.
console.log($.widget.options);
id = this.id;
type = parseInt(optionConfig[id].type, 10);
value = optionConfig[id].hasOwnProperty('value') ? optionConfig[id].value : '';
thumb = optionConfig[id].hasOwnProperty('thumb') ? optionConfig[id].thumb : '';
label = this.label ? this.label : '';
attr =
' id="' + controlId + '-item-' + id + '"' +
' aria-checked="false"' +
' aria-describedby="' + controlId + '"' +
' tabindex="0"' +
' option-type="' + type + '"' +
' option-id="' + id + '"' +
' option-label="' + label + '"' +
' aria-label="' + label + '"' +
' option-tooltip-thumb="' + thumb + '"' +
' option-tooltip-value="' + value + '"' +
' role="option"';
1
1 answers
Вам придется сначала передать $widget
в опции Renderswatch, например -
_RenderSwatchOptions: function (config, controlId, $widget) {
Затем в функции _RenderControls
обновите вызов функции опции образца с помощью 3 аргументов, таких как -
options = $widget._RenderSwatchOptions(item, controlLabelId, $widget),
После того, как этот код заработает -
var relVal = '';
$.each($widget.options.jsonConfig.attributes, function () {
var item = this;
if(item.id == config.id) {
$.each(item.options,function(){
// var option = this;
if(id == this.id) {
$.each(this.products,function (index, value) {
relVal = value;
});
}
});
}
});
attr =
' id="' + controlId + '-item-' + id + '"' +
' aria-checked="false"' +
' aria-describedby="' + controlId + '"' +
' tabindex="0"' +
' option-type="' + type + '"' +
' option-id="' + id + '"' +
' option-label="' + label + '"' +
' aria-label="' + label + '"' +
' option-tooltip-thumb="' + thumb + '"' +
' option-tooltip-value="' + value + '"' +
' rel="' + relVal + '"' +
' role="option"';
1
Author: Gagan, 2018-09-14 12:15:01