Salve e buonasera,
ho aggiornato in local il model Price.phtml che si occupa di gestire i prezzi dei prodotti bundle.
La mia esigenza è quello di aggiungere un prezzo al normale prezzo del bundle dimamico basandomi su un attributo custom (supplementoprezzo)
Questa è la funzione interessata:
public function getSelectionFinalTotalPrice($bundleProduct, $selectionProduct, $bundleQty, $selectionQty, $multiplyQty = true, $takeTierPrice = true) {
// recupero il valore del supplemento $attribute = $bundleProduct->getResource()->getAttribute('supplementoprezzo'); $supplementoprezzo = $attribute_value = $attribute ->getFrontend()->getValue($bundleProduct); if (is_null($selectionQty)) { $selectionQty = $selectionProduct->getSelectionQty(); } if ($bundleProduct->getPriceType() == self::PRICE_TYPE_DYNAMIC) { $price = $selectionProduct->getFinalPrice($takeTierPrice ? $selectionQty : 1); } else { if ($selectionProduct->getSelectionPriceType()) { // percent $product = clone $bundleProduct; $product->setFinalPrice($this->getPrice($product)); Mage::dispatchEvent( 'catalog_product_get_final_price', array('product' => $product, 'qty' => $bundleQty) ); $price = ($product->getData('final_price')) * ($selectionProduct->getSelectionPriceValue() / 100); } else { // fixed $price = $selectionProduct->getSelectionPriceValue(); } } $price = $this->getLowestPrice($bundleProduct, $price, $bundleQty); if ($multiplyQty) { $price *= $selectionQty; }
// sommo il supplemento al prezzo $price += $supplementoprezzo; return $price; }
Le ultime due righe sono le righe interessate: la variabile $supplementoprezzo è un numero float.
Il problema (e la cosa strana) è che se inserisco un numero:
$price += 2.50; return $price;
tutto funziona perfettamente.
Invece sommando la variabile (che pure è un numero)
$price += $supplementoprezzo; return $price;
non mi aggiorna il prezzo finale del bundle.
Ho provato con vari casting per la variabile (float, floatval number_format, etc).... niente.
Qualche suggerimento?
Grazie,
Saverio