Smile\ElasticsuiteCatalog\Observer\RedirectIfOneResult::execute PHP Метод

execute() публичный Метод

Process redirect to the product page if this is the only search result.
public execute ( Magento\Framework\Event\Observer $observer ) : void
$observer Magento\Framework\Event\Observer The observer
Результат void
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        if ($this->scopeConfig->isSetFlag(self::REDIRECT_SETTINGS_CONFIG_XML_FLAG)) {
            $layer = $this->layerResolver->get();
            $layerState = $layer->getState();
            if (count($layerState->getFilters()) === 0) {
                $productCollection = $layer->getProductCollection();
                if ($productCollection->getCurPage() === 1 && $productCollection->getSize() === 1) {
                    /** @var \Magento\Catalog\Api\Data\ProductInterface $product */
                    $product = $productCollection->getFirstItem();
                    if ($product->getId()) {
                        $this->addRedirectMessage($product);
                        $observer->getControllerAction()->getResponse()->setRedirect($product->getProductUrl());
                    }
                }
            }
        }
    }