2013-09-30 2 views
1

Я пытаюсь показать значок продажи с сохраненным процентом в процентах в magento, до сих пор я успешно это делаю. Но проблема, с которой я столкнулся, - это . Значок продажи показывает на всех страницах, есть ли у продукта специальная цена или нет. Значок продажи должен отображаться только при наличии специальной цены. Я использую следующий код в list.phtml. Я не программист. Я ценю вашу помощь, чтобы исправить этот код, чтобы значок продажи отображался только при наличии специальной цены. Заранее спасибоКак показать значок продажи на страницах списка категорий в magento

<?php $specialprice = $_product->getSpecialPrice(); 
$regularprice = $_product->getPrice(); 
// Get the Special Price FROM date 
$specialPriceFromDate = $_product->getSpecialFromDate(); 
// Get the Special Price TO date 
$specialPriceToDate = $_product->getSpecialToDate(); 
// Get Current date 
$today = time(); if ($specialprice)if($today >= strtotime($specialPriceFromDate) && $today <= strtotime 

($specialPriceToDate) || $today >= strtotime($specialPriceFromDate) && is_null($specialPriceToDate))$discount = 100 

- round(($specialprice/$regularprice)*100); {?><span class="onsaleicon"><span class="onsaletext"> <?php echo 

$discount .'% OFF' ;?></span></span> <?php } ?></a>` 

ответ

0

Вот как я это сделал.
Добавить это в верхней части catalog/product/list.phtml:

$_taxHelper = $this->helper('tax'); 

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

<?php $_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices());?> 
<?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?> 
<?php $_regularPrice = $_taxHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?> 
<?php $_finalPrice = $_taxHelper->getPrice($_product, $_product->getFinalPrice()) ?> 
<?php if ($_finalPrice < $_price): ?> 
    YOUR SALE LABEL HERE 
<?php endif;?> 
+0

Благодаря Marius он работал как очарование :) –

+0

@NohoAdam. Пожалуйста. Если он сработает, примите ответ. Не оставляйте свободные концы. – Marius

2

Попробуйте

здесь

$ stodate = специальная цена на сегодняшний день

$ sfromdate = специальная цена от даты

$date = date("Y-m-d H:i:s"); 
$special=$_product['special_price']; 
$price=$_product['price']; 
$stodate=$_product['special_to_date']; 
$sfromdate=$_product['special_from_date']; 

    if (!$special == null) { 

     if (isset($sfromdate) and $date >= $sfromdate) { 
     { 
      if(isset ($stodate)){ 
       if($date <= $stodate){ 
        ?> 
      <div class="onsaleicon"> 
       <span class="discounttext"> 
        <?php 
        echo round(100 - ($special/$price) * 100) . "%"; 
        ?>    
       </span> 

      </div>    
      <?php 

       } 

      }else{ 
       ?> 
      <div class=""onsaleicon"> 
       <span class="discounttext"> 
        <?php 
        echo round(100 - ($special/$price) * 100) . "%"; 
        ?>    
       </span> 

      </div>    
      <?php 
      } 

     } 

     } 
    } 
+0

Спасибо за ваш ответ, но использовал решение Marius, и он сработал. –

+0

@NohoAdam welcome –

Смежные вопросы