/** * {@inheritdoc} */ public function handle(CriteriaPartInterface $criteriaPart, Criteria $criteria, Search $search, ShopContextInterface $context) { $field = $this->fieldMapping->getPriceField($context); $range = []; /** @var PriceCondition $criteriaPart */ if ($criteriaPart->getMinPrice()) { $range['gte'] = $criteriaPart->getMinPrice(); } if ($criteriaPart->getMaxPrice()) { $range['lte'] = $criteriaPart->getMaxPrice(); } $filter = new RangeFilter($field, $range); if ($criteria->hasBaseCondition($criteriaPart->getName())) { $search->addFilter($filter); } else { $search->addPostFilter($filter); } }