Skip to content

Commit ab2f9d2

Browse files
committed
MC-32278: Position sort does not work in GraphQl.
- testing Daniel applier
1 parent ed76a24 commit ab2f9d2

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/Product/CollectionProcessor/VisibilityStatusProcessor.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessor;
99

10+
use Magento\Catalog\Model\Product\Visibility;
1011
use Magento\Catalog\Model\ResourceModel\Product\Collection;
1112
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface;
1213
use Magento\Framework\Api\SearchCriteriaInterface;
@@ -18,6 +19,20 @@
1819
*/
1920
class VisibilityStatusProcessor implements CollectionProcessorInterface
2021
{
22+
/**
23+
* @var Visibility
24+
*/
25+
private $visibility;
26+
27+
/**
28+
* @param Visibility $visibility
29+
*/
30+
public function __construct(Visibility $visibility)
31+
{
32+
$this->visibility = $visibility;
33+
34+
}
35+
2136
/**
2237
* {@inheritdoc}
2338
*/
@@ -28,6 +43,7 @@ public function process(
2843
): Collection {
2944
$collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
3045
$collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
46+
$collection->setVisibility($this->visibility->getVisibleInSiteIds());
3147

3248
return $collection;
3349
}

app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/ProductSearch.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,17 @@ public function getList(
8686
$collection = $this->collectionFactory->create();
8787

8888
//Join search results
89-
//$this->getSearchResultsApplier($searchResult, $collection, $this->getSortOrderArray($searchCriteria))->apply();
89+
$this->getSearchResultsApplier($searchResult, $collection, $this->getSortOrderArray($searchCriteria))->apply();
9090

9191
//Additional applier to keep sorting from search
92-
if (!empty($searchResult->getItems())) {
93-
$items = [];
94-
foreach ($searchResult->getItems() as $item) {
95-
$items[] = $item->getId();
96-
}
97-
$orderList = join(',', $items);
98-
$collection->getSelect()->order(new \Zend_Db_Expr("FIELD(e.entity_id,$orderList)"));
99-
}
92+
// if (!empty($searchResult->getItems())) {
93+
// $items = [];
94+
// foreach ($searchResult->getItems() as $item) {
95+
// $items[] = $item->getId();
96+
// }
97+
// $orderList = join(',', $items);
98+
// $collection->getSelect()->order(new \Zend_Db_Expr("FIELD(e.entity_id,$orderList)"));
99+
// }
100100

101101
$this->collectionPreProcessor->process($collection, $searchCriteria, $attributes);
102102
$collection->load();

0 commit comments

Comments
 (0)