Связанные опции minishop2

Здравствуйте есть такая проблема. необходимо реализовать связные опции. т.е. допустим есть товар в синем, красном и черном цвете, в красном варианте есть только один размер L, а в синем и черном есть все размеры. как сделать так что бы при выборе допустим красного цвета выводилось только одна доступная конфигурация. вот приблизительный вариант kit.by/polotencesushiteli/lesenka/vodyanye/vodyanoy-polotencesushitel-rostela-viktoriya/ (хотя бы натолкните куда копать) заранее спасибо за помощь
Fedor
14 февраля 2017, 11:59
modx.pro
1
2 007
0
Поблагодарить автора Отправить деньги

Комментарии: 3

Константин
13 марта 2017, 07:23
0
Подпишусь! Очень интересует данный вопрос. Только отсутствие данной возможности останавливает от использования minishop2. Если логика minishop2 позволит реализовать данный функционал, даже готов заплатить за модуль.

Очень полезная и нужная функция для магазинов занимающихся одеждой, обувью и мн. др.
Володя
13 марта 2017, 10:38
2
+1
решение на скорую руку


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>
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3