2016-06-22 9 views

Antwort

0

Um sku ausgewähltes zugehöriges Produkt auf konfigurierbaren Produktseite zu erhalten, benutzen Sie bitte den folgenden Code in app/design/frontend /// template/catalog/product/view/Typ/Optionen/configurable.phtml einfügen in Seite das Skript:

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) 
    } 

    } 

Jetzt onChange Termin in Ihrem Drop-Down in derselben Seite hinzufügen:

onchange = "spConfig.getIdOfSelectedProduct()"

Der erste Code benachrichtigt die einfache zugehörige Produkt-ID. Sie können es jetzt im unteren Code verwenden.

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); 
    } 
}); 

Jetzt gehen, um Controller-Datei, die Sie oben verwendet haben und eine neue Aktion mit dem Namen Aktion erstellen und unter Code in ihr:

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); 
    } 

Jetzt Sie diese Informationen in Ihrer phtml Datei verwenden können um sku zu zeigen.

Bitte lassen Sie mich wissen, wenn etwas unklar ist.

+0

Diese Antwort ist nicht korrekt und der obige Code folgt nicht den Kodierungspraktiken von Magento - z. Verwenden von getBaseUrl anstelle von getUrl, $ _REQUEST im Controller. Machen Sie sich nicht mit den konfigurierbaren JSO-Skripten von Magento vertraut, es sei denn, Sie müssen es wirklich tun! – Bery

+0

Wie ist der richtige Weg? – blurryvision

0
  1. Zum Magento Admin
  2. Im Katalog> Manage attribues sku finden und sucht ähnlich wie "Visible auf Produktansicht Seite auf Front-End"
  3. Dies sollte die sku von Produktseite
  4. entfernen Finden Sie die konfigurierbare Produktvorlage

    und legen Sie, wo Sie Ihre SKU

    echo $product->getSku()

haben möchten