Hola a todos, he creado un modulo que hace una búsqueda
public function getProducts() { // Filter products weighing 10kg or more $this->searchCriteriaBuilder ->addFilter('price', '5', 'gteq'); // Sort products heaviest to lightest $sortOrder = $this->sortOrderBuilder ->setField('price') ->setDirection(SortOrder::SORT_DESC) ->create(); $this->searchCriteriaBuilder->addSortOrder($sortOrder); // Get the first 5 products $this->searchCriteriaBuilder ->setPageSize(5) ->setCurrentPage(1); // Create the SearchCriteria $searchCriteria = $this->searchCriteriaBuilder->create(); // Load the products $products = $this->productRepository ->getList($searchCriteria) ->getItems(); return $products; }
Y luego copio la plantilla grid.html para que muestre los resultados con sus enlaces, imágenes, precios, etc...
Cambio las variables y la llamada a mi método
$items = $this->getProducts();
Si lo hago sin la plantilla, por ejemplo,
<?php foreach($items as $_item) echo $_item->getName(); ?>
Si lo hago como viene en la plantilla me muestra solo, el nombre, la url no la muestra bien.
<a title="<?php echo $block->escapeHtml($_item->getName()) ?>" href="<?php /* @escapeNotVerified */ echo $block->getProductUrl($_item) ?>"
class="product-item-link"> <?php echo $block->escapeHtml($_item->getName()) ?> </a>
Gracias.
Cuando añado el template del grid.html del module-catalogo-widget
muestra el nombre, muestra el sku.
Esto es lo que consigo que muestre, pero debería de mostrarse así, cuando se realiza la búsqueda
Te adjunto los archivos del módulo.
https://www.dropbox.com/s/eti3iyuuhymxcrc/FormSearchAttributes.zip?dl=0