@@ -42,15 +42,17 @@ public function __construct(ResourceConnection $resourceConnection)
42
42
*
43
43
* @param array $optionIds
44
44
* @param array $attributeCodes
45
+ * @param int|null $storeId
45
46
* @return array
46
47
* @throws \Zend_Db_Statement_Exception
47
48
*/
48
- public function getOptions (array $ optionIds , array $ attributeCodes = []): array
49
+ public function getOptions (array $ optionIds , ? int $ storeId , array $ attributeCodes = []): array
49
50
{
50
51
if (!$ optionIds ) {
51
52
return [];
52
53
}
53
54
55
+ $ storeId = $ storeId ?: 0 ;
54
56
$ connection = $ this ->resourceConnection ->getConnection ();
55
57
$ select = $ connection ->select ()
56
58
->from (
@@ -70,10 +72,19 @@ public function getOptions(array $optionIds, array $attributeCodes = []): array
70
72
['option_value ' => $ this ->resourceConnection ->getTableName ('eav_attribute_option_value ' )],
71
73
'options.option_id = option_value.option_id ' ,
72
74
[
73
- 'option_label ' => 'option_value.value ' ,
74
75
'option_id ' => 'option_value.option_id ' ,
75
76
]
76
- );
77
+ )->joinLeft (
78
+ ['option_value_store ' => $ this ->resourceConnection ->getTableName ('eav_attribute_option_value ' )],
79
+ "options.option_id = option_value_store.option_id AND option_value_store.store_id = {$ storeId }" ,
80
+ [
81
+ 'option_label ' => $ connection ->getCheckSql (
82
+ 'option_value_store.value_id > 0 ' ,
83
+ 'option_value_store.value ' ,
84
+ 'option_value.value '
85
+ )
86
+ ]
87
+ )->where ('a.attribute_id = options.attribute_id AND option_value.store_id = ? ' , 0 );
77
88
78
89
$ select ->where ('option_value.option_id IN (?) ' , $ optionIds );
79
90
0 commit comments