{ $this->productNumberSearch =
$productNumberSearch;
$this->baseProductFactoryService =
$baseProductFactoryService;
} /**
* @return BatchProductNumberSearchResult
*/
public function search(BatchProductNumberSearchRequest
$request, ShopContextInterface
$context) { // resolve product numbers of criteria objects and add them to the request
$criteriaListWithBaseProducts =
$this->
getBaseProductsByCriteriaList($request->
getCriteriaList(),
$context);
$baseProductList =
$this->
getBaseProductsByProductNumberRequest($request);
$result =
[];
foreach ($request->
getProductNumbers() as $key =>
$productNumbers) { $baseProducts =
array_intersect_key($baseProductList,
array_flip($productNumbers));
$result[$key] =
$baseProducts;
} foreach ($criteriaListWithBaseProducts as $key =>
$baseProducts) { $result[$key] =
$baseProducts;
}