Rufen Sie den einfachen Produktpreis für konfigurierbare Produkte ab
-
16-10-2019 - |
Frage
Wir haben ein konfigurierbares Produkt, das mit SKU-Test aufgerufen wird, und darunter sind einfache Produkte (zum Beispiel) Red-Ven1, Rot-Ven2, Blue-VEV3 usw. Das konfigurierbare Produkt selbst hat keinen Preis, aber jedes einfache Produkt tut dies. Ich muss den Preis für das einfache Produkt basierend auf den ausgewählten Attributen abrufen. Ich brauche also den Preis für rotes Produkt mit Anbieter 2. Wie bekomme ich diesen spezifischen Preis? Ich versuche derzeit, den Preis neben dem Anbieterattribut dynamisch anzuzeigen (so wird das Anbieterattribut nicht ausgewählt). Muss ich den Anbieterattributwert "unsichtbar" auswählen, um den Preis zu erhalten? Bitte beraten.
Derzeit versuche:
<?php $_product = $this->getProduct(); ?>
<?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?>
<script>
var price = <?=$_price ?>;
/...lots of non-applicable code
for(var i=0; i < IDs.length; i++)//traversing the vendor detail nodes
{
//Invisibly make selection of vendor so as to gather correct price
var optionToSelect = $j('option', '#attribute136').filter(function() {
return $j(this).text().indexOf(data[i].vendor_id) != -1;
}).val();
var vals = $j('#attribute136').val() || [];
vals.push(optionToSelect);
$j('#attribute136').val(vals);
$j('.details'+data[i].vendor_id).append('<li class="priceBlock">$'+price+'</li>');
}
});
</script>
Lösung
Es gibt zwei Erweiterungen, die dies für Sie tun:
Einfache konfigurierbare Produkte
http://www.magentocommerce.com/magento-connect/simple-configurable-products.html
BCP - besser konfigurierbare Produkte
http://www.magentocommerce.com/magento-connect/better-configurable-products.html
Andere Tipps
Überprüfen Sie den folgenden Link. Das hilft dir. In diesem Beitrag kann Produkt -ID aus ausgewählten einfachen Produkten konfigurierbarer Produkte erhalten. Und mit dieser einfachen Produkt -ID können Sie Preis, Qty, SKU usw. erhalten ...
Ich habe das gemacht list.phtml
. Es ist ein Hack, aber es funktioniert (und es ist kostenlos!)
<?php
foreach ($_productCollection as $_product):
$_modifiedProduct = $_product;
?>
<?php
if ($_product->isConfigurable()) {
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
$simple_collection = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
$appliedFilters = Mage::getSingleton('catalog/layer')->getState()->getFilters();
$itemArr = array();
foreach ($appliedFilters as $item) {
$itemArr[] = $item->getLabel();
}
$attributesToFilter = array();
foreach ($simple_collection as $simple_product) {
$productModel = Mage::getModel('catalog/product')->setProduct($simple_product);
$sizeAttr = $productModel->getResource()->getAttribute("size");
$qualityAttr = $productModel->getResource()->getAttribute("quality");
$attributesToFilter[] = $sizeAttrName = $sizeAttr->getSource()->getOptionText($simple_product->getSize());
$attributesToFilter[] = $qualityAttrName = $qualityAttr->getSource()->getOptionText($simple_product->getQuality());
sort($attributesToFilter);
sort($itemArr);
if ($attributesToFilter == $itemArr) {
$_modifiedProduct = $simple_product;
break(1);
}
unset($attributesToFilter);
}
}
// continue in foreach.
endforeach;
?>
Jetzt können Sie einen solchen Preis zeigen:
<?php echo $this->getPriceHtml($_modifiedProduct, true) ?>