|
8 | 8 | namespace Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider;
|
9 | 9 |
|
10 | 10 | use Magento\Catalog\Api\Data\ProductSearchResultsInterfaceFactory;
|
| 11 | +use Magento\Catalog\Model\Product\Visibility; |
11 | 12 | use Magento\Catalog\Model\ResourceModel\Product\Collection;
|
12 | 13 | use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
|
13 | 14 | use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionPostProcessor;
|
|
18 | 19 | use Magento\Framework\Api\Search\SearchResultInterface;
|
19 | 20 | use Magento\Framework\Api\SearchCriteriaInterface;
|
20 | 21 | use Magento\Framework\Api\SearchResultsInterface;
|
| 22 | +use Magento\Framework\App\ObjectManager; |
21 | 23 | use Magento\GraphQl\Model\Query\ContextInterface;
|
22 | 24 |
|
23 | 25 | /**
|
@@ -55,28 +57,36 @@ class ProductSearch
|
55 | 57 | */
|
56 | 58 | private $searchCriteriaBuilder;
|
57 | 59 |
|
| 60 | + /** |
| 61 | + * @var Visibility |
| 62 | + */ |
| 63 | + private $catalogProductVisibility; |
| 64 | + |
58 | 65 | /**
|
59 | 66 | * @param CollectionFactory $collectionFactory
|
60 | 67 | * @param ProductSearchResultsInterfaceFactory $searchResultsFactory
|
61 | 68 | * @param CollectionProcessorInterface $collectionPreProcessor
|
62 | 69 | * @param CollectionPostProcessor $collectionPostProcessor
|
63 | 70 | * @param SearchResultApplierFactory $searchResultsApplierFactory
|
64 | 71 | * @param ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder
|
| 72 | + * @param Visibility $catalogProductVisibility |
65 | 73 | */
|
66 | 74 | public function __construct(
|
67 | 75 | CollectionFactory $collectionFactory,
|
68 | 76 | ProductSearchResultsInterfaceFactory $searchResultsFactory,
|
69 | 77 | CollectionProcessorInterface $collectionPreProcessor,
|
70 | 78 | CollectionPostProcessor $collectionPostProcessor,
|
71 | 79 | SearchResultApplierFactory $searchResultsApplierFactory,
|
72 |
| - ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder |
| 80 | + ProductCollectionSearchCriteriaBuilder $searchCriteriaBuilder, |
| 81 | + Visibility $catalogProductVisibility |
73 | 82 | ) {
|
74 | 83 | $this->collectionFactory = $collectionFactory;
|
75 | 84 | $this->searchResultsFactory = $searchResultsFactory;
|
76 | 85 | $this->collectionPreProcessor = $collectionPreProcessor;
|
77 | 86 | $this->collectionPostProcessor = $collectionPostProcessor;
|
78 | 87 | $this->searchResultApplierFactory = $searchResultsApplierFactory;
|
79 | 88 | $this->searchCriteriaBuilder = $searchCriteriaBuilder;
|
| 89 | + $this->catalogProductVisibility = $catalogProductVisibility; |
80 | 90 | }
|
81 | 91 |
|
82 | 92 | /**
|
@@ -106,6 +116,7 @@ public function getList(
|
106 | 116 | $this->getSortOrderArray($searchCriteriaForCollection)
|
107 | 117 | )->apply();
|
108 | 118 |
|
| 119 | + $collection->setVisibility($this->catalogProductVisibility->getVisibleInSiteIds()); |
109 | 120 | $this->collectionPreProcessor->process($collection, $searchCriteriaForCollection, $attributes, $context);
|
110 | 121 | $collection->load();
|
111 | 122 | $this->collectionPostProcessor->process($collection, $attributes);
|
|
0 commit comments