Hi
i want to get the search result product id and there variety data
use Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection;
....
....
$str = $search = $json = '';
$search = $this->_request->getParam('q');
$productIdList = [];
$productdata = $this->collection->addSearchFilter($search);
foreach ($productdata as $product) {
$productIdList[] = $product->getId();
}
Solved! Go to Solution.
Hi done the search
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Netcore\Cee\Helper\Data $helper,
\Magento\Framework\App\Request\Http $request,
\Magento\Framework\View\Page\Title $pageTitle,
\Magento\Framework\UrlInterface $urlInterface,
\Magento\Catalog\Model\Session $catalogSession,
\Magento\Customer\Model\Session $customerSession,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection $collection,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Catalog\Model\Product\Attribute\Source\Status $productStatus,
\Magento\Catalog\Model\Product\Visibility $productVisibility,
\Magento\Catalog\Model\CategoryFactory $categoryFactory,
\Magento\Backend\Block\Template\Context $context_mage_back,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productFactory,
array $data = []
) {
$this->helper = $helper;
$this->_request = $request;
$this->_pageTitle = $pageTitle;
$this->_urlInterface = $urlInterface;
$this->_catalogSession = $catalogSession;
$this->_checkoutSession = $checkoutSession;
$this->_customerSession = $customerSession;
$this->productCollectionFactory = $productCollectionFactory;
$this->categoryFactory = $categoryFactory;
$this->collection = $collection;
$this->productFactory = $productFactory;
$this->productStatus = $productStatus;
$this->productVisibility = $productVisibility;
$this->addData(['cache_lifetime' => false]);
parent::__construct($context, $data);
// parent::__construct($context_mage_back, $data);
}//end __construct()
//
// protected variables
///
$search = $this->_request->getParam('q');
$productIdList = [];
$productdata = $this->collection->addSearchFilter($search);
$collection = $this->productCollectionFactory->create();
$collection->addAttributeToSelect(['id','sku']);
$collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
$collection->addAttributeToFilter('name', ['like' => '%'.$search.'%']);
$collection->setPageSize(5);
$collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
foreach ($collection as $_product) {
// echo $_product->getName() . ' - ' . $_product->getProductUrl() . '<br />';
}
Dominos Menu Prices: Did you know that there are 500 Domino’s restaurants in Canada? Here’s the most current Domino’s Price List in Canada and interesting and fun Domino’s pizza-related facts that all pizza lovers should know.
@MyAARPMedicare wrote:Hi
i want to get the search result product id and there variety datause Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection; .... .... $str = $search = $json = ''; $search = $this->_request->getParam('q'); $productIdList = []; $productdata = $this->collection->addSearchFilter($search); foreach ($productdata as $product) { $productIdList[] = $product->getId(); }
When you use V1/search, you are searching for products through the catalog. The response comes from the configured search engine (Stores > Settings > Configuration > Catalog > Catalog Search > Search engine), and the results are the same as those returned by using the regular frontend search.
All search queries run against the catalogsearch_fulltext index.
Hi done the search
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Netcore\Cee\Helper\Data $helper,
\Magento\Framework\App\Request\Http $request,
\Magento\Framework\View\Page\Title $pageTitle,
\Magento\Framework\UrlInterface $urlInterface,
\Magento\Catalog\Model\Session $catalogSession,
\Magento\Customer\Model\Session $customerSession,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection $collection,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Catalog\Model\Product\Attribute\Source\Status $productStatus,
\Magento\Catalog\Model\Product\Visibility $productVisibility,
\Magento\Catalog\Model\CategoryFactory $categoryFactory,
\Magento\Backend\Block\Template\Context $context_mage_back,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productFactory,
array $data = []
) {
$this->helper = $helper;
$this->_request = $request;
$this->_pageTitle = $pageTitle;
$this->_urlInterface = $urlInterface;
$this->_catalogSession = $catalogSession;
$this->_checkoutSession = $checkoutSession;
$this->_customerSession = $customerSession;
$this->productCollectionFactory = $productCollectionFactory;
$this->categoryFactory = $categoryFactory;
$this->collection = $collection;
$this->productFactory = $productFactory;
$this->productStatus = $productStatus;
$this->productVisibility = $productVisibility;
$this->addData(['cache_lifetime' => false]);
parent::__construct($context, $data);
// parent::__construct($context_mage_back, $data);
}//end __construct()
//
// protected variables
///
$search = $this->_request->getParam('q');
$productIdList = [];
$productdata = $this->collection->addSearchFilter($search);
$collection = $this->productCollectionFactory->create();
$collection->addAttributeToSelect(['id','sku']);
$collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
$collection->addAttributeToFilter('name', ['like' => '%'.$search.'%']);
$collection->setPageSize(5);
$collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
foreach ($collection as $_product) {
// echo $_product->getName() . ' - ' . $_product->getProductUrl() . '<br />';
}
@bayerruffgd439 Thanks for the answer but this was stop working for me on Magento 2.3 and 2.4 versions.