Magento2 – How to Show New Label on Product List Page

magento2new-products

I want need to show New label on new product in product list page.

Help me for the achieve this task.

How can it will Show in magento2 ?

Best Answer

Propably the best option is to add new helper with following code:

<?php

namespace Vendor\Module\Helper;

use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Catalog\Model\Product as ModelProduct;
use Magento\Store\Model\Store;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;

class HelperName extends \Magento\Framework\Url\Helper\Data
{

    /**
     * @var TimezoneInterface
     */
    protected $localeDate;

    public function __construct(
        \Magento\Framework\App\Helper\Context $context,
        TimezoneInterface $localeDate
    ) {
        $this->localeDate = $localeDate;
        parent::__construct($context);
    }

    public function isProductNew(ModelProduct $product)
    {
        $newsFromDate = $product->getNewsFromDate();
        $newsToDate = $product->getNewsToDate();
        if (!$newsFromDate && !$newsToDate) {
            return false;
        }

        return $this->localeDate->isScopeDateInInterval(
            $product->getStore(),
            $newsFromDate,
            $newsToDate
        );
    }
}

Then in .phtml file use this:

$helper = $this->helper('Vendor\Module\Helper\HelperName');

and in products foreach:

<?php if($helper->isProductNew($_product)): ?>
    Your label code here
<?php endif; ?>
Related Topic