@@ -533,11 +533,12 @@ protected function getMediaGallery(array $productIds)
533
533
]
534
534
)->joinLeft (
535
535
['mgv ' => $ this ->_resourceModel ->getTableName ('catalog_product_entity_media_gallery_value ' )],
536
- '(mg.value_id = mgv.value_id AND mgv.store_id = 0 ) ' ,
536
+ '(mg.value_id = mgv.value_id) ' ,
537
537
[
538
538
'mgv.label ' ,
539
539
'mgv.position ' ,
540
- 'mgv.disabled '
540
+ 'mgv.disabled ' ,
541
+ 'mgv.store_id ' ,
541
542
]
542
543
)->where (
543
544
"mgvte. {$ this ->getProductEntityLinkField ()} IN (?) " ,
@@ -553,6 +554,7 @@ protected function getMediaGallery(array $productIds)
553
554
'_media_label ' => $ mediaRow ['label ' ],
554
555
'_media_position ' => $ mediaRow ['position ' ],
555
556
'_media_is_disabled ' => $ mediaRow ['disabled ' ],
557
+ '_media_store_id ' => $ mediaRow ['store_id ' ],
556
558
];
557
559
}
558
560
@@ -1001,12 +1003,10 @@ protected function collectRawData()
1001
1003
unset($ data [$ itemId ][$ storeId ][self ::COL_ADDITIONAL_ATTRIBUTES ]);
1002
1004
}
1003
1005
1004
- if (!empty ($ data [$ itemId ][$ storeId ]) || $ this ->hasMultiselectData ($ item , $ storeId )) {
1005
- $ attrSetId = $ item ->getAttributeSetId ();
1006
- $ data [$ itemId ][$ storeId ][self ::COL_STORE ] = $ storeCode ;
1007
- $ data [$ itemId ][$ storeId ][self ::COL_ATTR_SET ] = $ this ->_attrSetIdToName [$ attrSetId ];
1008
- $ data [$ itemId ][$ storeId ][self ::COL_TYPE ] = $ item ->getTypeId ();
1009
- }
1006
+ $ attrSetId = $ item ->getAttributeSetId ();
1007
+ $ data [$ itemId ][$ storeId ][self ::COL_STORE ] = $ storeCode ;
1008
+ $ data [$ itemId ][$ storeId ][self ::COL_ATTR_SET ] = $ this ->_attrSetIdToName [$ attrSetId ];
1009
+ $ data [$ itemId ][$ storeId ][self ::COL_TYPE ] = $ item ->getTypeId ();
1010
1010
$ data [$ itemId ][$ storeId ][self ::COL_SKU ] = htmlspecialchars_decode ($ item ->getSku ());
1011
1011
$ data [$ itemId ][$ storeId ]['store_id ' ] = $ storeId ;
1012
1012
$ data [$ itemId ][$ storeId ]['product_id ' ] = $ itemId ;
@@ -1082,6 +1082,7 @@ protected function collectMultirawData()
1082
1082
* @param \Magento\Catalog\Model\Product $item
1083
1083
* @param int $storeId
1084
1084
* @return bool
1085
+ * @deprecated
1085
1086
*/
1086
1087
protected function hasMultiselectData ($ item , $ storeId )
1087
1088
{
@@ -1140,20 +1141,24 @@ protected function isValidAttributeValue($code, $value)
1140
1141
* @SuppressWarnings(PHPMD.NPathComplexity)
1141
1142
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
1142
1143
*/
1143
- private function appendMultirowData (&$ dataRow , & $ multiRawData )
1144
+ private function appendMultirowData (&$ dataRow , $ multiRawData )
1144
1145
{
1145
1146
$ productId = $ dataRow ['product_id ' ];
1146
1147
$ productLinkId = $ dataRow ['product_link_id ' ];
1147
1148
$ storeId = $ dataRow ['store_id ' ];
1148
1149
$ sku = $ dataRow [self ::COL_SKU ];
1150
+ $ type = $ dataRow [self ::COL_TYPE ];
1151
+ $ attributeSet = $ dataRow [self ::COL_ATTR_SET ];
1149
1152
1150
1153
unset($ dataRow ['product_id ' ]);
1151
1154
unset($ dataRow ['product_link_id ' ]);
1152
1155
unset($ dataRow ['store_id ' ]);
1153
1156
unset($ dataRow [self ::COL_SKU ]);
1157
+ unset($ dataRow [self ::COL_STORE ]);
1158
+ unset($ dataRow [self ::COL_ATTR_SET ]);
1159
+ unset($ dataRow [self ::COL_TYPE ]);
1154
1160
1155
1161
if (Store::DEFAULT_STORE_ID == $ storeId ) {
1156
- unset($ dataRow [self ::COL_STORE ]);
1157
1162
$ this ->updateDataWithCategoryColumns ($ dataRow , $ multiRawData ['rowCategories ' ], $ productId );
1158
1163
if (!empty ($ multiRawData ['rowWebsites ' ][$ productId ])) {
1159
1164
$ websiteCodes = [];
@@ -1169,11 +1174,13 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1169
1174
$ additionalImageLabels = [];
1170
1175
$ additionalImageIsDisabled = [];
1171
1176
foreach ($ multiRawData ['mediaGalery ' ][$ productLinkId ] as $ mediaItem ) {
1172
- $ additionalImages [] = $ mediaItem ['_media_image ' ];
1173
- $ additionalImageLabels [] = $ mediaItem ['_media_label ' ];
1177
+ if ((int )$ mediaItem ['_media_store_id ' ] === Store::DEFAULT_STORE_ID ) {
1178
+ $ additionalImages [] = $ mediaItem ['_media_image ' ];
1179
+ $ additionalImageLabels [] = $ mediaItem ['_media_label ' ];
1174
1180
1175
- if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1176
- $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1181
+ if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1182
+ $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1183
+ }
1177
1184
}
1178
1185
}
1179
1186
$ dataRow ['additional_images ' ] =
@@ -1207,6 +1214,21 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1207
1214
}
1208
1215
}
1209
1216
$ dataRow = $ this ->rowCustomizer ->addData ($ dataRow , $ productId );
1217
+ } else {
1218
+ $ additionalImageIsDisabled = [];
1219
+ if (!empty ($ multiRawData ['mediaGalery ' ][$ productLinkId ])) {
1220
+ foreach ($ multiRawData ['mediaGalery ' ][$ productLinkId ] as $ mediaItem ) {
1221
+ if ((int )$ mediaItem ['_media_store_id ' ] === $ storeId ) {
1222
+ if ($ mediaItem ['_media_is_disabled ' ] == true ) {
1223
+ $ additionalImageIsDisabled [] = $ mediaItem ['_media_image ' ];
1224
+ }
1225
+ }
1226
+ }
1227
+ }
1228
+ if ($ additionalImageIsDisabled ) {
1229
+ $ dataRow ['hide_from_product_page ' ] =
1230
+ implode (Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR , $ additionalImageIsDisabled );
1231
+ }
1210
1232
}
1211
1233
1212
1234
if (!empty ($ this ->collectedMultiselectsData [$ storeId ][$ productId ])) {
@@ -1234,6 +1256,9 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
1234
1256
$ dataRow [self ::COL_STORE ] = $ this ->_storeIdToCode [$ storeId ];
1235
1257
}
1236
1258
$ dataRow [self ::COL_SKU ] = $ sku ;
1259
+ $ dataRow [self ::COL_ATTR_SET ] = $ attributeSet ;
1260
+ $ dataRow [self ::COL_TYPE ] = $ type ;
1261
+
1237
1262
return $ dataRow ;
1238
1263
}
1239
1264
0 commit comments