Zeigen Sie % Rabatt auf Produktsammelseite
-
16-10-2019 - |
Frage
Ich versuche, einen Altersrabatt auf die Produktsammlungspanne zu zeigen, und folgt folgende Tutorials:http://www.pauldonnelly.net/magento-display-Sale-icon-if-special-price/ http://shamimcse05.wordpress.com/2010/12/23/get-special-price-or-regular-price-in-magento/
Ich habe diese im obigen Code deklariert:
$_productCollection=$this->getLoadedProductCollection();
$_helper = $this->helper('catalog/output');
Dann habe ich diese Schleife verwendet, um alle Produkte zu erhalten:
<?php foreach ($_productCollection as $_product): ?>
Unter dieser Schleife versuche ich, diese Zeilen hinzuzufügen. Ich habe versucht, den oben genannten Tutorials so zu folgen, wie es ist, aber sie geben Fehler an, also habe ich mich gemischt, um Fehler loszuwerden, und hier ist, was der Code ist wurde:
<?php $specialprice = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialPrice();
$thisProduct= Mage::getModel('catalog/product')->load(product_id);
$regularprice = $thisProduct->getPrice();
// Get the Special Price FROM date
$specialPriceFromDate = $thisProduct->getSpecialFromDate();
// Get the Special Price TO date
$specialPriceToDate = $thisProduct->getSpecialToDate();
// Get Current date
$today = time();
if ($specialprice):
if($today >= strtotime( $specialPriceFromDate) && $today = strtotime( $specialPriceFromDate) && is_null($specialPriceToDate)):
$discount = (($regularprice-$specialprice)/$regularprice)*100 ;
endif;
endif; ?>
Ich verwende den folgenden Code, um die Ausgabe zu überprüfen:
echo "Discount is: ".$discount = (($regularprice-$specialprice)/$regularprice)*100 ."% OFF" ;
echo "</br>Special Price is: ".$specialprice;
echo "</br>Regular Price is: ".$regularprice;
echo "</br>Special Price from date is: ".$specialPriceFromDate;
Und dies ist die Ausgabe auf der Seite für die Produkte, denen Sonderpreis zugewiesen wurde, mit gültigen Start- und Enddaten:
Discount is: 0% OFF
Special Price is: 500.0000
Regular Price is:
Special Price from date is:
Es wird die Werte des Sonderpreises erhalten, aber es wird nicht den regulären Preiswert "aus Daten" und "bisher" gelesen.
Bitte helfen Sie mir, dieses Problem zu lösen.
Lösung
Dies sollte für Sie funktionieren:
$myproductobject = Mage::getModel('catalog/product')->load($_product->getId());
$specialprice = $myproductobject->getSpecialPrice();
$regularprice = $myproductobject->getPrice();
$specialPriceFromDate = $myproductobject->getSpecialFromDate();
$specialPriceToDate = $myproductobject->getSpecialToDate();
$today = time();
if ($specialprice):
if($today >= strtotime( $specialPriceFromDate) && $today <= strtotime($specialPriceToDate) || $today >= strtotime( $specialPriceFromDate) && is_null($specialPriceToDate)):
$discount = (($regularprice-$specialprice)/$regularprice)*100 ;
endif;
endif;