Récupérer prix simple produit pour le produit configurable
-
16-10-2019 - |
Question
Nous avons un produit configurable appelé avec sku TEST et en dessous sont des produits simples (par exemple) rouge-ven1, rouge-ven2, bleu-ven3, etc. Le produit lui-même configurable n'a pas de prix, mais chaque produit simple fait . Je dois récupérer le prix du produit simple, basé sur les attributs qui sont sélectionnés. Donc, j'ai besoin le prix pour le produit rouge avec le fournisseur 2. Comment puis-je obtenir ce prix spécifique? Je suis actuellement en train d'afficher dynamiquement le prix à côté de l'attribut fournisseur (donc attribut fournisseur n'est pas sélectionné). Est-ce que je dois « invisiblement », sélectionnez la valeur d'attribut de fournisseur pour obtenir le prix? S'il vous plaît conseiller.
en train d'essayer:
<?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>
La solution
Il y a deux extension qui fait pour vous:
Simple Produits configurables
http://www.magentocommerce.com/magento-connect/ -products.html simple configurable
BCP - De meilleurs produits configurables
http://www.magentocommerce.com/magento-connect/ mieux configurable-products.html
Autres conseils
Vérifier le lien suivant. Cela vous aide. Dans ce post peut obtenir id produit de simple produit sélectionné de produit configurable. Et en utilisant cet identifiant simple produit vous pouvez obtenir le prix, qté, sku, etc ...
Je l'ai fait en list.phtml
.
Il est un hack, mais cela fonctionne (et gratuit!)
<?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;
?>
Maintenant, vous pouvez afficher le prix comme ceci:
<?php echo $this->getPriceHtml($_modifiedProduct, true) ?>