Skip to content

Commit 9767717

Browse files
committed
Merge remote-tracking branch 'origin/MC-25206' into 2.4-develop-pr19
2 parents 48cf519 + 254a46c commit 9767717

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,6 +1726,7 @@ protected function _saveProducts()
17261726
}
17271727

17281728
$rowData[self::COL_MEDIA_IMAGE] = [];
1729+
list($rowImages, $rowData) = $this->clearNoSelectionImages($rowImages, $rowData);
17291730

17301731
/*
17311732
* Note: to avoid problems with undefined sorting, the value of media gallery items positions
@@ -1934,6 +1935,27 @@ protected function _saveProducts()
19341935

19351936
// phpcs:enable
19361937

1938+
/**
1939+
* Clears entries from Image Set and Row Data marked as no_selection
1940+
*
1941+
* @param array $rowImages
1942+
* @param array $rowData
1943+
* @return array
1944+
*/
1945+
private function clearNoSelectionImages($rowImages, $rowData)
1946+
{
1947+
foreach ($rowImages as $column => $columnImages) {
1948+
foreach ($columnImages as $key => $image) {
1949+
if ($image == 'no_selection') {
1950+
unset($rowImages[$column][$key]);
1951+
unset($rowData[$column]);
1952+
}
1953+
}
1954+
}
1955+
1956+
return [$rowImages, $rowData];
1957+
}
1958+
19371959
/**
19381960
* Prepare array with image states (visible or hidden from product page)
19391961
*

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -925,6 +925,23 @@ static function (DataObject $image) {
925925
$this->assertEquals('/m/a/magento_additional_image_two.jpg', $imageItem->getFile());
926926
}
927927

928+
/**
929+
* Tests importing product images with "no_selection" attribute.
930+
*
931+
* @magentoDataFixture mediaImportImageFixture
932+
* @magentoAppIsolation enabled
933+
*/
934+
public function testSaveImagesNoSelection()
935+
{
936+
$this->importDataForMediaTest('import_media_with_no_selection.csv');
937+
$product = $this->getProductBySku('simple_new');
938+
939+
$this->assertEquals('/m/a/magento_image.jpg', $product->getData('image'));
940+
$this->assertEquals(null, $product->getData('small_image'));
941+
$this->assertEquals(null, $product->getData('thumbnail'));
942+
$this->assertEquals(null, $product->getData('swatch_image'));
943+
}
944+
928945
/**
929946
* Test that new images should be added after the existing ones.
930947
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,use_config_lifetime,use_config_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple_new,,Default,virtual,Default Category/cat1,base,simple_new,,,,1,Taxable Goods,"Catalog, Search",10,,,,simple_new,simple_new,simple_new,simple_new,magento_image.jpg,,no_selection,,no_selection,,no_selection,,"3/12/20, 3:02 PM","3/12/20, 3:02 PM",,,Block after Info Column,,,,,,,,,,Use config,,,123,0,1,0,0,1,1,1,10000,1,1,1,1,1,1,1,1,1,0,0,0,1,1,,,,,,,,,,,,,,,,,,,,,,,

0 commit comments

Comments
 (0)