cancel
Showing results for 
Search instead for 
Did you mean: 

Crear filtro o buscador customizado

Crear filtro o buscador customizado

Hola, 

 

Estoy creando un modulo que filtra productos según tres valoresCaptura de pantalla 2017-10-13 10.48.08.png

 

 

El primer select sería rango de precios 0 - 500€, 501€ - 200€ el segundo sería la cantidad de regalos y el tercero la categoría.

Cuando clicas en regalos para ti te mostraría una pagina con los resultados, ahora mismo el controllador coge el request de los valores, pero no entiendo o comprendo como montarle la query a Magento y me devuelve una vista con los productos filtrados.

 

Una orientación no me ayudaría

 

Un saludo!

 

 

 

Desarrollador Front-End
4 REPLIES 4

Re: Crear filtro o buscador customizado

Hola @mnuhell,

 

¿De qué versión de Magento hablamos?.

¿Hay algo de código que puedas compartir sobre lo ya hecho?

Re: Crear filtro o buscador customizado

Hola @Damian Culotta 

La versión de Magento es 2.1.7

 

El código que tengo es el siguiente:

Tengo un layout con el formulario que tiene una petición Post:

<?php
/**
* Baz view template
*
* @var $block Mnuhell\FormSearchAttributes\Block\SearchAttributes
*/
$categories = $this->getCategoryCollection()
?>

<div class="container-search" style="display: none; opacity: 1">
<h3><?php /* @escapeNotVerified */ echo __("Do you want a ideas?, Tell us what you are looking for.") ?></h3>
<form action="<?php echo $this->getFormAction() ?>" method="post">
<div class="container-search__select">
<div class="select">
<select name="qty">
<option="">¿Cuánto quieres gastar?</option>
<option value="0-500€">0 - 500€</option>
<option value="501-1.500€">501 - 1.500€</option>
<option value="1.501-3.000€">1.501 - 3.000€</option>
<option value="3.001 - 4.000€">3.001 - 4.000€</option>
</select>
</div>
<div class="select">
<select name="gif">
<option value="">¿Cuantos regalos necesitas?</option>
<option value="500">500</option>
<option value="1000">1000</option>
<option value="3000">3000</option>
<option value="5000">5000</option>
</select>
</div>
<div class="select">
<select name="category">
<option value="">¿Elige una categoría?</option>
?>
<?php foreach ($categories as $category) { ?>
<?php if($category->getIsActive()) ?>
<option value="<?php echo $category->getName(); ?>" data-validate="{required:true}"><?php echo $category->getName() ?></option>
<?php } ?>
</select>
</div>
<div class="field actions">
<button type="submit" class="action search submit primary"><?php /* @escapeNotVerified */ echo __("Gift for you") ?></button>
</div>
</div>
</form>
</div>

y un controllador que recoge esos datos.

 

namespace Mnuhell\FormSearchAttributes\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;


class Result extends Action
{

/**
* @var $resultPageFactory
*/
protected $resultPageFactory;

/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct( Context $context, PageFactory $resultPageFactory)
{
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}

public function execute()
{
$params = $this->getRequest()->getParams();

if($params){
foreach ($params as $param){
echo "<p>" . $param . "</p>";
}
}else{
$this->_redirect('/');
}
}

Esto me devuelve los resutados en la ruta /mqsearch/index/result/

 

Lo que necesito ahora  es poder filtrar esos datos y devolver una vista con los resutados del filtro. ahora mismo los datos son de ejemplo, pero la idea sería que los rangos de precios los obtenga con el layered-navigation.

 

Gracias!!

Desarrollador Front-End

Re: Crear filtro o buscador customizado

Básicamente estas queriendo crear un duplicado del resultado de búsqueda avanzada, ¿verdad?.

No he llegado, aún, a esa customización, así que sólo puedo suponer. Tengo alguna ligera idea de cómo hacer búsqueda en el repositorio de productos a través del SearchCriteria: https://www.damianculotta.com.ar/magento/searchcriteria-busquedas-y-filtros-en-magento2/ (perdón por el self-pormotion, pero allí hay ejemplos).

Con respecto a la parte del layered navigation, no puedo contestar aún, debería hacer experimentos primero.

Re: Crear filtro o buscador customizado

Gracias @Damian Culotta Voy a investigar con lo que me has pasado y cuando tenga algo te lo comento.

 

Un saludo!

Desarrollador Front-End