Показ % скидки на страницу сбора продуктов

magento.stackexchange https://magento.stackexchange.com/questions/12091

  •  16-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь показать %возрастной скидки на странице сбора продуктов, следуя этим учебным пособиям:http://www.pauldonnelly.net/magento-display-sale-icon-if-precial-price/ http://shamimcse05.wordpress.com/2010/12/23/get-precial-price-or-regular-price-in-magento/

Я объявил об этом в приведенном выше коде:

$_productCollection=$this->getLoadedProductCollection();
$_helper = $this->helper('catalog/output');

Тогда я использовал этот цикл, чтобы получить все продукты:

<?php foreach ($_productCollection as $_product): ?>

Под этим циклом я пытаюсь добавить эти строки, я попытался следовать вышеупомянутым учебникам как есть, но они начинают давать ошибки, поэтому я смешал, чтобы избавиться от ошибок, и вот какой код стал:

         <?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; ?>

Я использую код ниже, чтобы проверить вывод:

                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;

И это вывод на странице для продуктов, которым была назначена специальная цена, с допустимыми датами начала и окончания:

Discount is: 0% OFF
Special Price is: 500.0000
Regular Price is:
Special Price from date is:

Он получает значения специальной цены, но он не читает обычную цену, «из данных» и «на сегодняшний день».

Пожалуйста, помогите мне решить эту проблему.

Это было полезно?

Решение

Это должно работать для вас:

$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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top