Wie bekomme ich die SKU-Nr zu ändern, sobald das Produkt-Attribut eines Artikels ausgewählt ist. Magento: SKU Nr. Änderungen nach Produktattribut ist ausgewählt
Antwort
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.
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
Wie ist der richtige Weg? – blurryvision
- Zum Magento Admin
- Im Katalog> Manage attribues sku finden und sucht ähnlich wie "Visible auf Produktansicht Seite auf Front-End"
- Dies sollte die sku von Produktseite
- entfernen Finden Sie die konfigurierbare Produktvorlage
und legen Sie, wo Sie Ihre SKU
echo $product->getSku()
Welche Art von Produkt ist das? Ich meine einfaches Produkt mit benutzerdefinierten Optionen oder konfigurierbarem Produkt? –
Für konfigurierbare Produkte. – blurryvision