Pregunta

Estoy tratando de mostrar una insignia de venta sobre la imagen de los productos con un precio especial en el catálogo y las páginas de productos.

He usado el siguiente PHP:

<?php // sale badge ?>
<?php
    $specialPrice = $_product->getSpecialPrice();
    $specialPriceFromDate = $_product->getSpecialFromDate();
    $specialPriceToDate   = $_product->getSpecialToDate();
?>
<?php if ($specialPrice || ($currentDate >= $specialPriceFromDate && $currentDate <= $specialPriceToDate) || ($currentDate >= $specialPriceFromDate && $specialPriceFromDate != '' && $specialPriceToDate == '')): ?>
    <span class="sale-badge"><?php echo $this->__('Sale') ?></span>
<?php endif; ?>

Esto muestra la insignia correctamente a menos que el precio especial hasta la fecha haya pasado cuando se muestre la insignia, aunque el producto ya no está al precio especial.

La idea es que la insignia se muestre en los siguientes escenarios:

  1. No hay un conjunto especial o especial para fechas (es decir, el producto está permanentemente en especial hasta que se modifique manualmente)
  2. Hay una fecha, pero no hasta la fecha (es decir, una vez que pasa la fecha del producto, el producto está permanentemente en especial hasta que se modifique manualmente)
  3. no hay de la fecha, pero hay una fecha (es decir, el producto está en especial hasta que pasa la fecha)
  4. Hay una fecha y una fecha (es decir, el producto solo está especial dentro del período definido)

    Estoy seguro de que acabo de perder algo obvio, pero ¿puede alguien señalar lo que es por favor?

¿Fue útil?

Solución

Hugh, usted no necesita muchos códigos. Siguiente el precio final es menos que el precio del producto. El precio final se calcula automáticamente.

Pruebe esto

<?php if($_product->getFinalPrice()<$_product->getPrice()): ?>
  <span class="sale-badge"><?php echo $this->__('Sale') ?></span>
    <?php endif; ?>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top