2016-06-22 10 views
-1

Как получить код SKU no для изменения после выбора атрибута продукта для элемента.Magento: номер SKU Изменения после атрибута продукта выбраны

enter image description here

+0

Какой тип продукта это? Я имею в виду простой продукт с настраиваемыми опциями или настраиваемым продуктом? –

+0

Для конфигурируемых продуктов. – blurryvision

ответ

0

Чтобы получить СК выбранного связанного продукта на настраиваемой странице продукта, пожалуйста, вставьте следующий код в приложении/дизайн/интерфейс /// шаблон/Каталог/продукт/вид/тип/опция/configurable.phtml в стороне сценарий:

spConfig.getIdOfSelectedProduct = function() 
    { 
    var existingProducts = new Object(); 
    for(var i=this.settings.length-1;i>=0;i--) 
    { 
    var selected = this.settings[i].options[this.settings[i].selectedIndex]; 
    if(selected.config) 
    { 
    for(var iproducts=0;iproducts<selected.config.products.length;iproducts++) 
    { 
     var usedAsKey = selected.config.products[iproducts]+""; 
     if(existingProducts[usedAsKey]==undefined) 
     { 
     existingProducts[usedAsKey]=1; 
     } 
     else 
     { 
     existingProducts[usedAsKey]=existingProducts[usedAsKey]+1; 
     } 
     } 
    } 
    } 
    for (var keyValue in existingProducts) 
    { 
    for (var keyValueInner in existingProducts) 
    { 
    if(Number(existingProducts[keyValueInner])<Number(existingProducts[keyValue])) 
    { 
     delete existingProducts[keyValueInner]; 
    } 
    } 
    } 
    var sizeOfExistingProducts=0; 
    var currentSimpleProductId = ""; 
    for (var keyValue in existingProducts) 
    { 
    currentSimpleProductId = keyValue; 
    sizeOfExistingProducts=sizeOfExistingProducts+1 
    } 
    if(sizeOfExistingProducts==1) 
    { 
    alert("Selected product is: "+currentSimpleProductId) 
    } 

    } 

Теперь добавьте OnChange событие в раскрывающемся списке в той же странице:

OnChange = "spConfig.getIdOfSelectedProduct()"

Первый код будет предупреждать простой связанный идентификатор продукта. Вы можете использовать его в нижнем коде.

jQuery.ajax({ 
    type: "POST", 
    url: "<?php echo $this->getBaseUrl()?><module_front_name>/<controller_name>/<action_name>/", 
    data:"id="+currentSimpleProductId, 
    success: function(msg) 
    { 
     alert(msg); 
     //var data = JSON.parse(msg); 
     //alert(data.id); 
    } 
}); 

Теперь перейдите в файл контроллера, который вы использовали выше, и создать новое действие с именем действий и поставить ниже код в нем:

public function <action_name>Action() 
    { 
     $productId = $_REQUEST['id']; 
     /*$productId is your selected product id. do what ever you want to do here.*/ 
     $product = Mage::getModel('catalog/product')->load($productId); 
     $productsku = $product->getSku(); 

     $arraygroup = array("sku"=>$productsku); 
     echo json_encode($arraygroup); 
    } 

Теперь вы можете использовать эту информацию в файле PHTML показать ску.

Пожалуйста, дайте мне знать, если что-то неясно.

+0

Этот ответ неверен, и приведенный выше код не соответствует правилам кодирования Magento - например, используя getBaseUrl вместо getUrl, $ _REQUEST в контроллере. Не путайтесь с Magento Настраиваемые сценарии JS, если вам действительно не нужно! – Bery

+0

Каков правильный путь? – blurryvision

0
  1. Перейти к Magento админ
  2. В каталоге> Управление attribues найти идентификатор и найти похожие на «Видимый по продукту Посмотреть страницу на передний конец»
  3. Это должно удалить SKU со страницы продукта
  4. Найти конфигурируемый шаблон продукта и вставки, где вы хотели бы иметь свой SKU

    echo $product->getSku()

 Смежные вопросы

  • Нет связанных вопросов^_^