Связанные опции minishop2
Здравствуйте есть такая проблема. необходимо реализовать связные опции. т.е. допустим есть товар в синем, красном и черном цвете, в красном варианте есть только один размер L, а в синем и черном есть все размеры. как сделать так что бы при выборе допустим красного цвета выводилось только одна доступная конфигурация. вот приблизительный вариант kit.by/polotencesushiteli/lesenka/vodyanye/vodyanoy-polotencesushitel-rostela-viktoriya/ (хотя бы натолкните куда копать) заранее спасибо за помощь
Поблагодарить автора
Отправить деньги
Комментарии: 3
Подпишусь! Очень интересует данный вопрос. Только отсутствие данной возможности останавливает от использования minishop2. Если логика minishop2 позволит реализовать данный функционал, даже готов заплатить за модуль.
Очень полезная и нужная функция для магазинов занимающихся одеждой, обувью и мн. др.
Очень полезная и нужная функция для магазинов занимающихся одеждой, обувью и мн. др.
Есть даже 2 модуля, позволяющих сделать подобное:
modstore.pro/packages/ecommerce/msoptionsprice2
modstore.pro/packages/integration/mstradeoffers
Конечно, можно и под себя подогнать модуль, чтобы и комплектации вписывать.
modstore.pro/packages/ecommerce/msoptionsprice2
modstore.pro/packages/integration/mstradeoffers
Конечно, можно и под себя подогнать модуль, чтобы и комплектации вписывать.
решение на скорую руку
s6200.h3.modhost.pro/katalog/11991.html
s6200.h3.modhost.pro/katalog/11991.html
$(document).on('msoptionsprice_product_action', function (e, action, form, r) {
if (action == 'modification/get' && r.success && r.data) {
var m = r.data.modification || {};
var o = r.data.options || {};
if (m.id) {
return;
}
var set = false;
$('.msoptionsprice-modifications').find('.ms2_product').each(function () {
var hidden = true;
var w = $(this);
var f = w.find('form');
for (key in o) {
if (f.find('input[name="options['+key+']"][value="' + o[key] + '"]').length) {
hidden = false;
}
}
if (hidden) {
w.hide();
}
else {
w.show();
}
w.removeClass('active');
}).each(function () {
var w = $(this);
var f = w.find('form');
if (!set && w.is(":visible")) {
set = true;
w.addClass('active');
msOptionsPrice.Product.action('modification/get', f[0]);
}
});
}
});
$(document).on('click', '.msoptionsprice-modifications div.ms2_product', function () {
var w = $(this);
var f = w.find('form');
w.parent().find('.ms2_product.active').removeClass('active');
w.addClass('active');
msOptionsPrice.Product.action('modification/get', f[0]);
});
</script>
<style>
.msoptionsprice-modifications .ms2_product {
cursor: pointer;
}
.msoptionsprice-modifications .ms2_product.active {
border: 3px solid #559ed1;
}
</style>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.