у меня есть небольшая проблема, чтобы получить работу php и jquery для magento, чтобы изменить кнопку из добавления в корзину, чтобы предварительно заказать, если опция выбрана для настраиваемого выбранного продукта.
Если вы выбрали опцию для одного из простых дочерних продуктов, то php проверяет, есть ли опция.
<?php $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); $col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); $productMap = array(); foreach($col as $simpleProduct){ $productMap[$simpleProduct->getId()] = $simpleProduct->getAttributeText('preorder'); //$test = $simpleProduct->getId() && $simpleProduct->getAttributeText('preorder'); } ?>
результат на echo: Preorder
JQuery, чтобы изменить кнопку, если выбранный продукт имеет опцию.
<?php if($productMap) { ?> <script type="text/javascript"> jQuery(document).ready(function() { // On document ready hide the button to preorder first jQuery("#addtopreorder").hide(); jQuery("#addtocart").show(); jQuery("#<?=$productMap ?>").change(function() { // Hide the button to preorder on slect element change action jQuery("#addtopreorder").hide(); // Get the value of selected option var optionValue = jQuery(this).attr('value'); // Just a test to see if you're getting option value //alert(optionValue); // Get the content (aka inner HTML) of selected option var optionValueText = jQuery.trim(jQuery('#<?=$productMap ?> :selected').text()); // Just a test to see if you're getting right selected option inner text // alert(optionValueText); // alert('Selected option has value: ' + optionValue + ' and inner text: ' + optionValueText); // Show the button based on selected value // Whatch out, case sensitive... if( ! optionValue ){ jQuery("#addtocart").show(); } else { jQuery("#addtopreorder").show(); } }); }); </script>
Любая помощь приветствуется.
Проблема разрешена простым настраиваемым продуктом SCP. сделанный Organic Internet.
Ссылка на расширение