@@ -532,11 +532,12 @@ protected function getMediaGallery(array $productIds)
532
532
]
533
533
)->joinLeft (
534
534
['mgv ' => $ this ->_resourceModel ->getTableName ('catalog_product_entity_media_gallery_value ' )],
535
- '(mg.value_id = mgv.value_id AND mgv.store_id = 0 ) ' ,
535
+ '(mg.value_id = mgv.value_id) ' ,
536
536
[
537
537
'mgv.label ' ,
538
538
'mgv.position ' ,
539
- 'mgv.disabled '
539
+ 'mgv.disabled ' ,
540
+ 'mgv.store_id '
540
541
]
541
542
)->where (
542
543
"mgvte. {$ this ->getProductEntityLinkField ()} IN (?) " ,
@@ -552,6 +553,7 @@ protected function getMediaGallery(array $productIds)
552
553
'_media_label ' => $ mediaRow ['label ' ],
553
554
'_media_position ' => $ mediaRow ['position ' ],
554
555
'_media_is_disabled ' => $ mediaRow ['disabled ' ],
556
+ '_media_store_id ' => $ mediaRow ['store_id ' ],
555
557
];
556
558
}
557
559
@@ -931,8 +933,8 @@ protected function loadCollection(): array
931
933
foreach ($ collection as $ itemId => $ item ) {
932
934
$ data [$ itemId ][$ storeId ] = $ item ;
933
935
}
936
+ $ collection ->clear ();
934
937
}
935
- $ collection ->clear ();
936
938
937
939
return $ data ;
938
940
}
@@ -1024,12 +1026,10 @@ protected function collectRawData()
1024
1026
unset($ data [$ itemId ][$ storeId ][self ::COL_ADDITIONAL_ATTRIBUTES ]);
1025
1027
}
1026
1028
1027
- if (!empty ($ data [$ itemId ][$ storeId ]) || $ this ->hasMultiselectData ($ item , $ storeId )) {
1028
- $ attrSetId = $ item ->getAttributeSetId ();
1029
- $ data [$ itemId ][$ storeId ][self ::COL_STORE ] = $ storeCode ;
1030
- $ data [$ itemId ][$ storeId ][self ::COL_ATTR_SET ] = $ this ->_attrSetIdToName [$ attrSetId ];
1031
- $ data [$ itemId ][$ storeId ][self ::COL_TYPE ] = $ item ->getTypeId ();
1032
- }
1029
+ $ attrSetId = $ item ->getAttributeSetId ();
1030
+ $ data [$ itemId ][$ storeId ][self ::COL_STORE ] = $ storeCode ;
1031
+ $ data [$ itemId ][$ storeId ][self ::COL_ATTR_SET ] = $ this ->_attrSetIdToName [$ attrSetId ];
1032
+ $ data [$ itemId ][$ storeId ][self ::COL_TYPE ] = $ item ->getTypeId ();
1033
1033
$ data [$ itemId ][$ storeId ][self ::COL_SKU ] = htmlspecialchars_decode ($ item ->getSku ());
1034
1034
$ data [$ itemId ][$ storeId ]['store_id ' ] = $ storeId ;
1035
1035
$ data [$ itemId ][$ storeId ]['product_id ' ] = $ itemId ;
@@ -1104,6 +1104,7 @@ protected function collectMultirawData()
1104
1104
* @param \Magento\Catalog\Model\Product $item
1105
1105
* @param int $storeId
1106
1106
* @return bool
1107
+ * @deprecated
1107
1108
*/
1108
1109
protected function hasMultiselectData ($ item , $ storeId )
1109
1110
{
@@ -1162,20 +1163,23 @@ protected function isValidAttributeValue($code, $value)
1162
1163
* @SuppressWarnings(PHPMD.NPathComplexity)
1163
1164
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
1164
1165
*/
1165
- private function appendMultirowData (&$ dataRow , & $ multiRawData )
1166
+ private function appendMultirowData (&$ dataRow , $ multiRawData )
1166
1167
{
1167
1168
$ productId = $ dataRow ['product_id ' ];
1168
1169
$ productLinkId = $ dataRow ['product_link_id ' ];
1169
1170
$ storeId = $ dataRow ['store_id ' ];
1170
1171
$ sku = $ dataRow [self ::COL_SKU ];
1172
+ $ type = $ dataRow [self ::COL_TYPE ];
1173
+ $ attributeSet = $ dataRow [self ::COL_ATTR_SET ];
1171
1174
1172
1175
unset($ dataRow ['product_id ' ]);
1173
1176
unset($ dataRow ['product_link_id ' ]);
1174
1177
unset($ dataRow ['store_id ' ]);
1175
1178
unset($ dataRow [self ::COL_SKU ]);
1176
-
1179
+ unset($ dataRow [self ::COL_STORE ]);
1180
+ unset($ dataRow [self ::COL_ATTR_SET ]);
1181
+ unset($ dataRow [self ::COL_TYPE ]);
1177
1182
if (Store::DEFAULT_STORE_ID == $ storeId ) {
1178
- unset($ dataRow [self ::COL_STORE ]);
1179
1183
$ this ->updateDataWithCategoryColumns ($ dataRow , $ multiRawData ['rowCategories ' ], $ productId );
1180
1184
if (!empty ($ multiRawData ['rowWebsites ' ][$ productId ])) {
1181
1185
$ websiteCodes = [];
@@ -1191,11 +1195,13 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1191
1195
$ additionalImageLabels = [];
1192
1196
$ additionalImageIsDisabled = [];
1193
1197
foreach ($ multiRawData ['mediaGalery ' ][$ productLinkId ] as $ mediaItem ) {
1194
- $ additionalImages [] = $ mediaItem ['_media_image ' ];
1195
- $ additionalImageLabels [] = $ mediaItem ['_media_label ' ];
1198
+ if ((int )$ mediaItem ['_media_store_id ' ] === Store::DEFAULT_STORE_ID ) {
1199
+ $ additionalImages [] = $ mediaItem ['_media_image ' ];
1200
+ $ additionalImageLabels [] = $ mediaItem ['_media_label ' ];
1196
1201
1197
- if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1198
- $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1202
+ if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1203
+ $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1204
+ }
1199
1205
}
1200
1206
}
1201
1207
$ dataRow ['additional_images ' ] =
@@ -1229,6 +1235,21 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1229
1235
}
1230
1236
}
1231
1237
$ dataRow = $ this ->rowCustomizer ->addData ($ dataRow , $ productId );
1238
+ } else {
1239
+ $ additionalImageIsDisabled = [];
1240
+ if (!empty ($ multiRawData ['mediaGalery ' ][$ productLinkId ])) {
1241
+ foreach ($ multiRawData ['mediaGalery ' ][$ productLinkId ] as $ mediaItem ) {
1242
+ if ((int )$ mediaItem ['_media_store_id ' ] === $ storeId ) {
1243
+ if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1244
+ $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1245
+ }
1246
+ }
1247
+ }
1248
+ }
1249
+ if ($ additionalImageIsDisabled ) {
1250
+ $ dataRow ['hide_from_product_page ' ] =
1251
+ implode (Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR , $ additionalImageIsDisabled );
1252
+ }
1232
1253
}
1233
1254
1234
1255
if (!empty ($ this ->collectedMultiselectsData [$ storeId ][$ productId ])) {
@@ -1256,6 +1277,9 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1256
1277
$ dataRow [self ::COL_STORE ] = $ this ->_storeIdToCode [$ storeId ];
1257
1278
}
1258
1279
$ dataRow [self ::COL_SKU ] = $ sku ;
1280
+ $ dataRow [self ::COL_ATTR_SET ] = $ attributeSet ;
1281
+ $ dataRow [self ::COL_TYPE ] = $ type ;
1282
+
1259
1283
return $ dataRow ;
1260
1284
}
1261
1285
0 commit comments