diff --git a/vendor/magento/module-catalog-import-export/Model/Import/Product/Option.php b/vendor/magento/module-catalog-import-export/Model/Import/Product/Option.php index bd64982c0f2..3731a7d2034 100644 --- a/vendor/magento/module-catalog-import-export/Model/Import/Product/Option.php +++ b/vendor/magento/module-catalog-import-export/Model/Import/Product/Option.php @@ -1300,19 +1300,23 @@ class Option extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity $parentCount = []; $childCount = []; $optionsToRemove = []; + $optionCount = $valueCount = 0; foreach ($bunch as $rowNumber => $rowData) { $rowSku = !empty($rowData[self::COLUMN_SKU]) ? mb_strtolower($rowData[self::COLUMN_SKU]) : ''; + $multiRowData = $this->_getMultiRowFormat($rowData); if ($rowSku !== $prevRowSku) { $nextOptionId = $optionId ?? $nextOptionId; $nextValueId = $valueId ?? $nextValueId; $prevRowSku = $rowSku; + } elseif (count($multiRowData) === 0) { + $nextOptionId += $optionCount; + $nextValueId += $valueCount; } $optionId = $nextOptionId; $valueId = $nextValueId; - $multiRowData = $this->_getMultiRowFormat($rowData); if (!empty($rowData[self::COLUMN_SKU]) && isset($this->_productsSkuToId[$rowData[self::COLUMN_SKU]])) { $this->_rowProductId = $this->_productsSkuToId[$rowData[self::COLUMN_SKU]]; if (array_key_exists('custom_options', $rowData) @@ -1326,6 +1330,7 @@ class Option extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity } } + $optionCount = $valueCount = 0; foreach ($multiRowData as $combinedData) { foreach ($rowData as $key => $field) { $combinedData[$key] = $field; @@ -1344,6 +1349,7 @@ class Option extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity ); if ($optionData) { $options[$optionData['option_id']] = $optionData; + $optionCount++; } $this->_collectOptionTypeData( $combinedData, @@ -1355,6 +1361,7 @@ class Option extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity $parentCount, $childCount ); + $valueCount++; $this->_collectOptionTitle($combinedData, $prevOptionId, $titles); }