src/module-elasticsuite-swatches/Plugin/Search/Request/Product/Attribute/AggregationResolver.php
<?php
/**
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Smile ElasticSuite to newer
* versions in the future.
*
* @category Smile
* @package Smile\ElasticsuiteSwatches
* @author Romain Ruaud <romain.ruaud@smile.fr>
* @copyright 2020 Smile
* @license Open Software License ("OSL") v. 3.0
*/
namespace Smile\ElasticsuiteSwatches\Plugin\Search\Request\Product\Attribute;
/**
* Plugin to set default facet_max_size of swatches attributes to 0 for layered navigation.
*
* @category Smile
* @package Smile\ElasticSuiteSwatches
* @author Romain Ruaud <romain.ruaud@smile.fr>
*/
class AggregationResolver
{
/**
* @var \Magento\Swatches\Helper\Data
*/
private $swatchHelper;
/**
* FrontPlugin constructor.
*
* @param \Magento\Swatches\Helper\Data $swatchHelper Swatch Attribute Helper
*/
public function __construct(\Magento\Swatches\Helper\Data $swatchHelper)
{
$this->swatchHelper = $swatchHelper;
}
/**
* Set default facet size to 0 for swatches attributes before adding it as aggregation.
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*
* @param \Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver $subject Aggregation Resolver
* @param array $result Aggregation Config
* @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute Attribute
*
* @return array
*/
public function afterGetAggregationData(
\Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver $subject,
$result,
$attribute
) {
if ($this->swatchHelper->isSwatchAttribute($attribute)) {
$result['size'] = 0;
}
return $result;
}
}