Skip to content

Commit e911bd9

Browse files
authored
Merge pull request #15 from landofcoder/fix-graphql-issue
fix missing score custom option when use smile elasticsuite
2 parents 30c0da3 + 20c9b2e commit e911bd9

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Model/Resolver/Products/DataProvider/ProductSearch.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
use Magento\Framework\Api\SearchCriteriaInterface;
3737
use Magento\Framework\Api\SearchResultsInterface;
3838
use Magento\GraphQl\Model\Query\ContextInterface;
39+
use Magento\Customer\Api\Data\OptionInterfaceFactory;
3940

4041
/**
4142
* Product field data provider for product search, used for GraphQL resolver processing.
@@ -72,28 +73,36 @@ class ProductSearch
7273
*/
7374
private $searchCriteriaBuilder;
7475

76+
/**
77+
* @var OptionInterfaceFactory
78+
*/
79+
private $optionFactory;
80+
7581
/**
7682
* @param CollectionFactory $collectionFactory
7783
* @param ProductSearchResultsInterfaceFactory $searchResultsFactory
7884
* @param CollectionProcessorInterface $collectionPreProcessor
7985
* @param CollectionPostProcessor $collectionPostProcessor
8086
* @param SearchResultApplierFactory $searchResultsApplierFactory
8187
* @param ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder
88+
* @param OptionInterfaceFactory $optionFactory
8289
*/
8390
public function __construct(
8491
CollectionFactory $collectionFactory,
8592
ProductSearchResultsInterfaceFactory $searchResultsFactory,
8693
CollectionProcessorInterface $collectionPreProcessor,
8794
CollectionPostProcessor $collectionPostProcessor,
8895
SearchResultApplierFactory $searchResultsApplierFactory,
89-
ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder
96+
ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder,
97+
OptionInterfaceFactory $optionFactory
9098
) {
9199
$this->collectionFactory = $collectionFactory;
92100
$this->searchResultsFactory = $searchResultsFactory;
93101
$this->collectionPreProcessor = $collectionPreProcessor;
94102
$this->collectionPostProcessor = $collectionPostProcessor;
95103
$this->searchResultApplierFactory = $searchResultsApplierFactory;
96104
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
105+
$this->optionFactory = $optionFactory;
97106
}
98107

99108
/**
@@ -129,7 +138,10 @@ public function getList(
129138
if (get_class($_item) == "Smile\\ElasticsuiteCore\\Search\\Adapter\\Elasticsuite\\Response\\Document") {
130139
$score = $_item->getCustomAttribute('score');
131140
if (!$score) {
132-
$_item->setCustomAttribute('score', '');
141+
$scoreOption = $this->optionFactory->create();
142+
$scoreOption->setLabel("score");
143+
$scoreOption->setValue(1);
144+
$_item->setCustomAttribute('score', $scoreOption);
133145
}
134146
$items[] = $_item;
135147
}

0 commit comments

Comments
 (0)