From ddebd16d77c3283851a950e1f357bc240cfe7f73 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Sun, 21 Jun 2015 22:18:46 +0300
Subject: [PATCH] MAGNIMEX-145: Added customization of images' array

---
 .../Model/Import/Product.php                  | 22 +++++++------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 698a5bd05a1..d88a338509b 100755
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -362,13 +362,6 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     protected $_imagesArrayKeys = ['_media_image', 'image', 'small_image', 'thumbnail'];
 
-    /**
-     * Column names that holds images files names from bunch
-     *
-     * @var string[]
-     */
-    protected $_imagesArrayKeysFromBunch = ['base_image', 'small_image', 'thumbnail_image', 'additional_images'];
-
     /**
      * Permanent entity columns.
      *
@@ -1330,9 +1323,9 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 $this->websitesCache[$rowSku] = [];
                 // 2. Product-to-Website phase
                 if (!empty($rowData[self::COL_PRODUCT_WEBSITES])) {
-                    $websiteIds = explode($this->getMultipleValueSeparator(), $rowData[self::COL_PRODUCT_WEBSITES]);
-                    foreach ($websiteIds as $websiteId) {
-                        $websiteId = $this->storeResolver->getWebsiteCodeToId($rowData[self::COL_PRODUCT_WEBSITES]);
+                    $websiteCodes = explode($this->getMultipleValueSeparator(), $rowData[self::COL_PRODUCT_WEBSITES]);
+                    foreach ($websiteCodes as $websiteCode) {
+                        $websiteId = $this->storeResolver->getWebsiteCodeToId($websiteCode);
                         $this->websitesCache[$rowSku][$websiteId] = true;
                     }
                 }
@@ -1667,10 +1660,11 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     {
         $allImagesFromBunch = [];
         foreach ($bunch as $rowData) {
-            foreach ($this->_imagesArrayKeysFromBunch as $image) {
+            $rowData = $this->_customFieldsMapping($rowData);
+            foreach ($this->_imagesArrayKeys as $image) {
                 $dispersionPath =
                     \Magento\Framework\File\Uploader::getDispretionPath($rowData[$image]);
-                $importImages = explode(",", $rowData[$image]);
+                $importImages = explode($this->getMultipleValueSeparator(), $rowData[$image]);
                 foreach ($importImages as $importImage) {
                     $imageSting = mb_strtolower(
                         $dispersionPath . '/' . preg_replace('/[^a-z0-9\._-]+/i', '', $importImage)
@@ -1768,13 +1762,13 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                         }
                         if (!empty($rowData[self::COL_MEDIA_IMAGE]) && is_array($rowData[self::COL_MEDIA_IMAGE])) {
                             $position = array_search($mediaImage, $mediaGalleryImages);
-                            foreach ($rowData[self::COL_MEDIA_IMAGE] as $media_image) {
+                            foreach ($rowData[self::COL_MEDIA_IMAGE] as $mediaImage) {
                                 $mediaGallery[$rowSku][] = [
                                     'attribute_id' => $this->getMediaGalleryAttributeId(),
                                     'label' => isset($mediaGalleryLabels[$position]) ? $mediaGalleryLabels[$position] : '',
                                     'position' => $position,
                                     'disabled' => '',
-                                    'value' => $media_image,
+                                    'value' => $mediaImage,
                                 ];
                             }
                         }
-- 
GitLab