public function testGetMultipleValueSeparatorFromParameters() { $expectedSeparator = 'value'; $this->setPropertyValue($this->importProduct, '_parameters', [\Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR => $expectedSeparator]); $this->assertEquals($expectedSeparator, $this->importProduct->getMultipleValueSeparator()); }
/** * Parse custom options string to inner format. * * @param array $rowData * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ protected function _parseCustomOptions($rowData) { $beforeOptionValueSkuDelimiter = ';'; if (empty($rowData['custom_options'])) { return $rowData; } $rowData['custom_options'] = str_replace($beforeOptionValueSkuDelimiter, $this->_productEntity->getMultipleValueSeparator(), $rowData['custom_options']); $options = []; $optionValues = explode(Product::PSEUDO_MULTI_LINE_SEPARATOR, $rowData['custom_options']); $k = 0; $name = ''; foreach ($optionValues as $optionValue) { $optionValueParams = explode($this->_productEntity->getMultipleValueSeparator(), $optionValue); foreach ($optionValueParams as $nameAndValue) { $nameAndValue = explode('=', $nameAndValue); if (!empty($nameAndValue)) { $value = isset($nameAndValue[1]) ? $nameAndValue[1] : ''; $value = trim($value); $fieldName = trim($nameAndValue[0]); if ($value && $fieldName == 'name') { if ($name != $value) { $name = $value; $k = 0; } } if ($name) { $options[$name][$k][$fieldName] = $value; } } } $options[$name][$k]['_custom_option_store'] = $rowData[Product::COL_STORE_VIEW_CODE]; $k++; } $rowData['custom_options'] = $options; return $rowData; }