So erhalten Sie eine einfache Produkt-ID des konfigurierbaren Produkts auf der Seite mit den Produktdetails


7

Wenn der Benutzer auf der Produktdetailseite Farbe und Größe auswählt, wird eine einfache Produkt-ID zurückgegebenGeben Sie hier die Bildbeschreibung ein


Sie können diesen Link magento1 verwenden. magento.stackexchange.com/questions/28881/…
Payal Patel

@payal Wenn Benutzer die Größe und Farbe auswählen, gibt es Produkt-ID davon zurück
Jitendra Mohanta

von welchem ​​willst du mit js oder php zur id kommen?
Rakesh Jesadiya

Ich möchte, dass die Warnmeldung die einfache Produkt-ID
anzeigt

Hast du es gelöst? Ich suche auch etwas ähnliches.
Seefan

Antworten:


5

Ich habe ein Auswahlfeld am Attribut des konfigurierbaren Produkts. Dies ist, was ich getan habe, um eine einfache Produkt-ID zu erhalten. Fügen Sie den folgenden Code in Ihre konfigurierbare Produkt-HTML-Datei ein.

 require(["jquery"], function(jQuery) {
      jQuery(".product-options-wrapper select[id^='attribute']").last().on('change', function() {
          setTimeout(function (){
            simpleId=jQuery("input[name=selected_configurable_option]").val();
            alert(simpleId);
          }, 500); 
      });
}); // Required

Wenn Sie ein konfigurierbares Farbfeld haben, ist eine geringfügige Änderung des obigen Codes erforderlich. Hoffentlich hilft es jemandem.

Vielen Dank


1

Versuchen Sie es mit dem folgenden Code.

foreach($collection as $_product) {
    $_children = $_product->getTypeInstance()->getUsedProductIds($_product);
    $getChildId = array();
    foreach ($_children as $child){
        $getChildId[] = $child->getID();
    }
    print_r($getChildId);
}

Vielen Dank für die Wiedergabe, aber ich möchte etwas mehr. Wenn ich auf die Größe eines beliebigen Werts mit der entsprechenden Farbe klicke, wird nur diese einfache Produkt-ID zurückgegeben.
Jitendra Mohanta

1

Wenn Sie die ID des ausgewählten einfachen Produkts in einem konfigurierbaren Produkt auf der Clientseite erhalten möchten, können Sie dies wie folgt tun.

Hier ist eine einfache Funktion, wie Sie dies ohne Codeänderung, neue Vorlagen oder sogar Module erreichen können. Nur eine Javascript-Datei und ein Layout-Update.

Product.Config.prototype.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)
     }
}

Sie sollten Ihre aktuelle Antwort aktualisieren.
Khoa TruongDinh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.