Пример Rough Magento2 добавьте ниже для предварительного выбора пользовательских опций по имени = значение в:
/www/mysite/app/design/frontend/mycompany/mytheme/Magento_Catalog/templates/product/view/options.phtml
Приведенный ниже код просматривает метку опции и текстовое значение выбора. И зависит от вашей тематической структуры. Пример ниже для Luma.
Ожидается следующий формат в URL
product.html?SelectLabel=OptionValue&SelectLabel=OptionValue
Это не относится к мультиязычности и т. Д. Вы можете легко адаптировать его, чтобы вместо этого искать идентификатор выбора и идентификатор опции, которые были бы более точными заменой
$(label).parents().eq(1).find('select option:contains('+arr[k]+')').attr('selected', true);
с (не проверено)
$("#"+k+" option[id='"+arr[k]+"']").attr("selected", "selected");
<script>
require(['jquery'],function($){
$(document).ready(function(){
function getJsonFromUrl() {
var query = location.search.substr(1);
var result = {};
query.split("&").forEach(function(part) {
var item = part.split("=");
result[item[0]] = decodeURIComponent(item[1]);
});
return result;
}
var arr = getJsonFromUrl();
for (var k in arr){
if (arr.hasOwnProperty(k)) {
//alert("Key is " + k + ", value is" + arr[k]);
var label = $('.product-options-wrapper').find("span:contains('"+k+"')");
$(label).parents().eq(1).find('select option:contains('+arr[k]+')').attr('selected', true);
}
}
});
});
</script>