| Current Path : /home/rtorresani/www/app/code/Webkul/BuyButton/Controller/Adminhtml/Index/ |
| Current File : //home/rtorresani/www/app/code/Webkul/BuyButton/Controller/Adminhtml/Index/ProductList.php |
<?php
/**
* Webkul Software.
*
* @category Webkul
* @package Webkul_BuyButton
* @author Webkul
* @copyright Copyright (c) Webkul Software Private Limited (https://webkul.com)
* @license https://store.webkul.com/license.html
*/
namespace Webkul\BuyButton\Controller\Adminhtml\Index;
use Magento\Framework\Controller\ResultFactory;
class ProductList extends AbstractBuyButton
{
/**
* @inheritDoc
*/
public function execute()
{
$pageSize = $this->getRequest()->getParam('pageSize');
$curPage = $this->getRequest()->getParam('pageNumber');
$sort = $this->getRequest()->getParam('sort');
$filter = $this->getRequest()->getParam('filter');
$type = $this->getRequest()->getParam('type');
$creteriaBuilder = $this->buyButtonHelper->getCreteriaBuilder();
if (!$type || $type == 'all') {
$creteriaBuilder->addFilter(
'type_id',
['simple', 'virtual', 'configurable'],
'in'
);
} elseif (in_array($type, ['simple', 'virtual', 'configurable'])) {
$creteriaBuilder->addFilter(
'type_id',
$type,
'eq'
);
} else {
$creteriaBuilder->addFilter(
'type_id',
['simple', 'virtual', 'configurable'],
'in'
);
}
$creteriaBuilder->addFilter(
'visibility',
1,
'neq'
);
$creteriaBuilder->addFilter(
'status',
1,
'eq'
);
if ($filter) {
$creteriaBuilder->addFilter(
'name',
'%'.$filter.'%',
'like'
);
}
$creteria = $creteriaBuilder
->setPageSize($pageSize)
->setCurrentPage($curPage)
->create();
$products = $this->_productRepository->getList($creteria);
$data = $this->_objectManager->get(\Magento\Framework\Webapi\ServiceOutputProcessor::class)
->convertValue($products, \Magento\Catalog\Api\Data\ProductSearchResultsInterface::class);
return $this->resultFactory->create(ResultFactory::TYPE_JSON)->setData($data);
}
}