-
Notifications
You must be signed in to change notification settings - Fork 60
Description
In version 2.4 of the bundle ( akeneo 2.3 )
if we do a simple search by an attribute of type reference data simple or multiple we dont't found any results.
+++++++++++++++++
$pqbFactory = $this->getContainer()->get('pim_catalog.query.product_model_query_builder_factory');
/* @var ProductAndProductModelQueryBuilder $pqb */
$pqb = $pqbFactory->create(['default_locale' => 'en_US', 'default_scope' => 'ecommerce']);
$pqb->addFilter('rd_brand', 'IN', [$brandCode]);
+++++++++++++++++
debugging the error I found that the index product_model_index is not used by the reference data normalizers
to resolve the issue we must add that index to the normalizers:
ReferenceDataCollectionNormalizer.php
ReferenceDataNormalizer.php
we must include in the supportsNormalization method that index
....
use Pim\Component\Catalog\Normalizer\Indexing\ProductModel\ProductModelNormalizer as ProductModelNormalizer2;
....
public function supportsNormalization($data, $format = null)
{
return $data instanceof ReferenceDataCollectionValue && (
ProductNormalizer::INDEXING_FORMAT_PRODUCT_INDEX === $format ||
ProductModelNormalizer::INDEXING_FORMAT_PRODUCT_AND_MODEL_INDEX === $format
|| ProductModelNormalizer2::INDEXING_FORMAT_PRODUCT_MODEL_INDEX
);
}
......
public function supportsNormalization($data, $format = null)
{
return $data instanceof ReferenceDataValue && (
ProductNormalizer::INDEXING_FORMAT_PRODUCT_INDEX === $format ||
ProductModelNormalizer::INDEXING_FORMAT_PRODUCT_AND_MODEL_INDEX === $format
|| ProductModelNormalizer2::INDEXING_FORMAT_PRODUCT_MODEL_INDEX
);
}
I attached the fix