Skip to content

Commit 53e721c

Browse files
Merge forwardport of #11926 to 2.3-develop branch
Applied pull request patch https://github.com/magento/magento2/pull/11926.patch (created by @nmalevanec) based on commit(s): 1. 12cb7fc 2. d6b1d3e 3. b7703ac 4. 426183c 5. 3fabf2c 6. f891450 7. 64ddd51 8. a159dae 9. 2a1b041 10. da8184f 11. cbd8b28 12. 51fa4bc 13. 5dc5acd 14. 334ef2f 15. 8aa3da1 16. 9f6e51d 17. a22d223 18. e46c8fd Fixed GitHub Issues in 2.3-develop branch: - #8255: Export Products action doesn't consider hide_for_product_page value (reported by @barbanet)
2 parents ad317c2 + 2653b8a commit 53e721c

File tree

9 files changed

+537
-181
lines changed

9 files changed

+537
-181
lines changed

app/code/Magento/CatalogImportExport/Model/Export/Product.php

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -533,11 +533,12 @@ protected function getMediaGallery(array $productIds)
533533
]
534534
)->joinLeft(
535535
['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)',
537537
[
538538
'mgv.label',
539539
'mgv.position',
540-
'mgv.disabled'
540+
'mgv.disabled',
541+
'mgv.store_id',
541542
]
542543
)->where(
543544
"mgvte.{$this->getProductEntityLinkField()} IN (?)",
@@ -553,6 +554,7 @@ protected function getMediaGallery(array $productIds)
553554
'_media_label' => $mediaRow['label'],
554555
'_media_position' => $mediaRow['position'],
555556
'_media_is_disabled' => $mediaRow['disabled'],
557+
'_media_store_id' => $mediaRow['store_id'],
556558
];
557559
}
558560

@@ -1001,12 +1003,10 @@ protected function collectRawData()
10011003
unset($data[$itemId][$storeId][self::COL_ADDITIONAL_ATTRIBUTES]);
10021004
}
10031005

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();
10101010
$data[$itemId][$storeId][self::COL_SKU] = htmlspecialchars_decode($item->getSku());
10111011
$data[$itemId][$storeId]['store_id'] = $storeId;
10121012
$data[$itemId][$storeId]['product_id'] = $itemId;
@@ -1082,6 +1082,7 @@ protected function collectMultirawData()
10821082
* @param \Magento\Catalog\Model\Product $item
10831083
* @param int $storeId
10841084
* @return bool
1085+
* @deprecated
10851086
*/
10861087
protected function hasMultiselectData($item, $storeId)
10871088
{
@@ -1140,20 +1141,24 @@ protected function isValidAttributeValue($code, $value)
11401141
* @SuppressWarnings(PHPMD.NPathComplexity)
11411142
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
11421143
*/
1143-
private function appendMultirowData(&$dataRow, &$multiRawData)
1144+
private function appendMultirowData(&$dataRow, $multiRawData)
11441145
{
11451146
$productId = $dataRow['product_id'];
11461147
$productLinkId = $dataRow['product_link_id'];
11471148
$storeId = $dataRow['store_id'];
11481149
$sku = $dataRow[self::COL_SKU];
1150+
$type = $dataRow[self::COL_TYPE];
1151+
$attributeSet = $dataRow[self::COL_ATTR_SET];
11491152

11501153
unset($dataRow['product_id']);
11511154
unset($dataRow['product_link_id']);
11521155
unset($dataRow['store_id']);
11531156
unset($dataRow[self::COL_SKU]);
1157+
unset($dataRow[self::COL_STORE]);
1158+
unset($dataRow[self::COL_ATTR_SET]);
1159+
unset($dataRow[self::COL_TYPE]);
11541160

11551161
if (Store::DEFAULT_STORE_ID == $storeId) {
1156-
unset($dataRow[self::COL_STORE]);
11571162
$this->updateDataWithCategoryColumns($dataRow, $multiRawData['rowCategories'], $productId);
11581163
if (!empty($multiRawData['rowWebsites'][$productId])) {
11591164
$websiteCodes = [];
@@ -1169,11 +1174,13 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
11691174
$additionalImageLabels = [];
11701175
$additionalImageIsDisabled = [];
11711176
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'];
11741180

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+
}
11771184
}
11781185
}
11791186
$dataRow['additional_images'] =
@@ -1207,6 +1214,21 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
12071214
}
12081215
}
12091216
$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+
}
12101232
}
12111233

12121234
if (!empty($this->collectedMultiselectsData[$storeId][$productId])) {
@@ -1234,6 +1256,9 @@ private function appendMultirowData(&$dataRow, &$multiRawData)
12341256
$dataRow[self::COL_STORE] = $this->_storeIdToCode[$storeId];
12351257
}
12361258
$dataRow[self::COL_SKU] = $sku;
1259+
$dataRow[self::COL_ATTR_SET] = $attributeSet;
1260+
$dataRow[self::COL_TYPE] = $type;
1261+
12371262
return $dataRow;
12381263
}
12391264

0 commit comments

Comments
 (0)