11
11
use Magento \Catalog \Model \Resource \Product \Collection ;
12
12
use Magento \Framework \Api \Data \ImageContentInterface ;
13
13
use Magento \Framework \Api \Data \ImageContentInterfaceFactory ;
14
- use Magento \Framework \Api \ExtensionAttributesFactory ;
15
14
use Magento \Framework \Api \ImageContentValidatorInterface ;
16
15
use Magento \Framework \Api \ImageProcessorInterface ;
17
16
use Magento \Framework \Api \SearchCriteriaInterface ;
@@ -137,9 +136,9 @@ class ProductRepository implements \Magento\Catalog\Api\ProductRepositoryInterfa
137
136
protected $ imageProcessor ;
138
137
139
138
/**
140
- * @var ExtensionAttributesFactory
139
+ * @var \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface
141
140
*/
142
- protected $ extensionAttributesFactory ;
141
+ protected $ extensionAttributesJoinProcessor ;
143
142
144
143
/**
145
144
* @param ProductFactory $productFactory
@@ -149,20 +148,20 @@ class ProductRepository implements \Magento\Catalog\Api\ProductRepositoryInterfa
149
148
* @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder
150
149
* @param \Magento\Catalog\Api\ProductAttributeRepositoryInterface $attributeRepository
151
150
* @param Resource\Product $resourceModel
152
- * @param \Magento\Catalog\Model\ Product\Initialization\Helper\ProductLinks $linkInitializer
153
- * @param \Magento\Catalog\Model\ Product\LinkTypeProvider $linkTypeProvider
154
- * @param \Magento\Store\Model\StoreManagerInterface $storeManager ,
151
+ * @param Product\Initialization\Helper\ProductLinks $linkInitializer
152
+ * @param Product\LinkTypeProvider $linkTypeProvider
153
+ * @param \Magento\Store\Model\StoreManagerInterface $storeManager
155
154
* @param \Magento\Framework\Api\FilterBuilder $filterBuilder
156
155
* @param \Magento\Catalog\Api\ProductAttributeRepositoryInterface $metadataServiceInterface
157
156
* @param \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter
158
- * @param \Magento\Eav\Model\Config $eavConfig
159
- * @param \Magento\Catalog\Model\Product\Option\Converter $optionConverter
157
+ * @param Product\Option\Converter $optionConverter
160
158
* @param \Magento\Framework\Filesystem $fileSystem
161
159
* @param ImageContentValidatorInterface $contentValidator
162
160
* @param ImageContentInterfaceFactory $contentFactory
163
161
* @param MimeTypeExtensionMap $mimeTypeExtensionMap
162
+ * @param \Magento\Eav\Model\Config $eavConfig
164
163
* @param ImageProcessorInterface $imageProcessor
165
- * @param ExtensionAttributesFactory $extensionAttributesFactory
164
+ * @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor
166
165
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
167
166
*/
168
167
public function __construct (
@@ -186,7 +185,7 @@ public function __construct(
186
185
MimeTypeExtensionMap $ mimeTypeExtensionMap ,
187
186
\Magento \Eav \Model \Config $ eavConfig ,
188
187
ImageProcessorInterface $ imageProcessor ,
189
- ExtensionAttributesFactory $ extensionAttributesFactory
188
+ \ Magento \ Framework \ Api \ ExtensionAttribute \ JoinProcessorInterface $ extensionAttributesJoinProcessor
190
189
) {
191
190
$ this ->productFactory = $ productFactory ;
192
191
$ this ->collectionFactory = $ collectionFactory ;
@@ -208,7 +207,7 @@ public function __construct(
208
207
$ this ->mimeTypeExtensionMap = $ mimeTypeExtensionMap ;
209
208
$ this ->eavConfig = $ eavConfig ;
210
209
$ this ->imageProcessor = $ imageProcessor ;
211
- $ this ->extensionAttributesFactory = $ extensionAttributesFactory ;
210
+ $ this ->extensionAttributesJoinProcessor = $ extensionAttributesJoinProcessor ;
212
211
}
213
212
214
213
/**
@@ -649,6 +648,7 @@ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCr
649
648
{
650
649
/** @var \Magento\Catalog\Model\Resource\Product\Collection $collection */
651
650
$ collection = $ this ->collectionFactory ->create ();
651
+ $ this ->extensionAttributesJoinProcessor ->process ($ collection );
652
652
$ defaultAttributeSetId = $ this ->eavConfig
653
653
->getEntityType (\Magento \Catalog \Api \Data \ProductAttributeInterface::ENTITY_TYPE_CODE )
654
654
->getDefaultAttributeSetId ();
@@ -681,8 +681,6 @@ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCr
681
681
}
682
682
$ collection ->setCurPage ($ searchCriteria ->getCurrentPage ());
683
683
$ collection ->setPageSize ($ searchCriteria ->getPageSize ());
684
- $ productDataClass = 'Magento\Catalog\Model\Product ' ;
685
- $ this ->extensionAttributesFactory ->process ($ collection , $ productDataClass );
686
684
$ collection ->load ();
687
685
688
686
$ searchResult = $ this ->searchResultsFactory ->create ();
0 commit comments