7
7
8
8
namespace Magento \CatalogGraphQl \Model \Resolver \Product ;
9
9
10
- use Magento \Catalog \Helper \Image as CatalogImageHelper ;
10
+ use Magento \Catalog \Helper \ImageFactory as CatalogImageHelperFactory ;
11
11
use Magento \Catalog \Model \Product ;
12
12
use Magento \Catalog \Model \ResourceModel \Product \GalleryFactory as GalleryResourceFactory ;
13
- use Magento \Framework \App \Area ;
14
- use Magento \Framework \App \AreaList ;
15
13
use Magento \Framework \GraphQl \Config \Element \Field ;
16
14
use Magento \Framework \GraphQl \Query \Resolver \Value ;
17
15
use Magento \Framework \GraphQl \Query \Resolver \ValueFactory ;
18
16
use Magento \Framework \GraphQl \Query \ResolverInterface ;
19
17
use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
18
+ use Magento \Store \Model \Store ;
20
19
use Magento \Store \Model \StoreManagerInterface ;
21
20
22
21
/**
@@ -30,14 +29,9 @@ class SmallImageUrl implements ResolverInterface
30
29
private $ galleryResourceFactory ;
31
30
32
31
/**
33
- * @var AreaList
32
+ * @var CatalogImageHelperFactory
34
33
*/
35
- private $ areaList ;
36
-
37
- /**
38
- * @var CatalogImageHelper
39
- */
40
- private $ catalogImageHelper ;
34
+ private $ catalogImageHelperFactory ;
41
35
42
36
/**
43
37
* @var ValueFactory
@@ -51,21 +45,18 @@ class SmallImageUrl implements ResolverInterface
51
45
52
46
/**
53
47
* @param ValueFactory $valueFactory
54
- * @param CatalogImageHelper $catalogImageHelper
55
- * @param AreaList $areaList
48
+ * @param CatalogImageHelperFactory $catalogImageHelperFactory
56
49
* @param GalleryResourceFactory $galleryResourceFactory
57
50
* @param StoreManagerInterface $storeManager
58
51
*/
59
52
public function __construct (
60
53
ValueFactory $ valueFactory ,
61
- CatalogImageHelper $ catalogImageHelper ,
62
- AreaList $ areaList ,
54
+ CatalogImageHelperFactory $ catalogImageHelperFactory ,
63
55
GalleryResourceFactory $ galleryResourceFactory ,
64
56
StoreManagerInterface $ storeManager
65
57
) {
66
58
$ this ->valueFactory = $ valueFactory ;
67
- $ this ->catalogImageHelper = $ catalogImageHelper ;
68
- $ this ->areaList = $ areaList ;
59
+ $ this ->catalogImageHelperFactory = $ catalogImageHelperFactory ;
69
60
$ this ->galleryResourceFactory = $ galleryResourceFactory ;
70
61
$ this ->storeManager = $ storeManager ;
71
62
}
@@ -92,18 +83,21 @@ public function resolve(
92
83
/* If small_image is not loaded for product, need to load it separately */
93
84
if (!$ product ->getSmallImage ()) {
94
85
$ galleryResource = $ this ->galleryResourceFactory ->create ();
95
- $ currentStoreId =$ this ->storeManager ->getStore ()->getId ();
96
- $ productImages = $ galleryResource ->getProductImages ($ product , [$ currentStoreId ]);
86
+ $ storeIds = [
87
+ Store::DEFAULT_STORE_ID ,
88
+ $ this ->storeManager ->getStore ()->getId ()
89
+ ];
90
+ $ productImages = $ galleryResource ->getProductImages ($ product , $ storeIds );
97
91
$ productSmallImage = $ this ->getSmallImageFromGallery ($ productImages );
98
92
$ product ->setSmallImage ($ productSmallImage );
99
93
}
100
94
101
- /* Design area is necessary to return the correct storefront image URL (or a placeholder) */
102
- $ area = $ this -> areaList -> getArea (Area:: AREA_FRONTEND );
103
- $ area -> load (Area:: PART_DESIGN );
104
-
105
- $ smallImageURL = $ this -> catalogImageHelper -> init ( $ product , ' product_small_image ' )-> getUrl ();
106
- $ product -> getMediaAttributes ();
95
+ $ catalogImageHelper = $ this -> catalogImageHelperFactory -> create ();
96
+ $ smallImageURL = $ catalogImageHelper -> init (
97
+ $ product ,
98
+ ' product_small_image ' ,
99
+ [ ' type ' => ' small_image ' ]
100
+ )-> getUrl ();
107
101
108
102
$ result = function () use ($ smallImageURL ) {
109
103
return $ smallImageURL ;
0 commit comments