/**
  * {@inheritdoc}
  */
 public function convertToImportFormat(array $importedRecord, $skipNullValues = true)
 {
     // normalize order items if single is passed
     if (!empty($importedRecord['items'])) {
         /** @var array $items */
         $items = $importedRecord['items'];
         foreach ($items as $item) {
             if (!is_array($item)) {
                 $importedRecord['items'] = [$items];
                 break;
             }
         }
     }
     if ($this->context && $this->context->hasOption('channel')) {
         $importedRecord['store:channel:id'] = $this->context->getOption('channel');
         $importedRecord['customer:channel:id'] = $this->context->getOption('channel');
         $importedRecord['cart:channel:id'] = $this->context->getOption('channel');
     }
     $importedRecord = parent::convertToImportFormat($importedRecord, $skipNullValues);
     $importedRecord = AttributesConverterHelper::addUnknownAttributes($importedRecord, $this->context);
     if (!empty($importedRecord['paymentDetails']['method'])) {
         $importedRecord['paymentMethod'] = $importedRecord['paymentDetails']['method'];
     } else {
         $importedRecord['paymentMethod'] = null;
     }
     unset($importedRecord['paymentDetails']['method']);
     return $importedRecord;
 }
 /**
  * @dataProvider exportDataDataProvider
  * @param bool $isMany
  * @param array $input
  * @param array $expected
  */
 public function testConvertToExportFormat($isMany, array $input, array $expected)
 {
     $nodeKey = 'test_key';
     $converted = ['key1' => 'val1', 'key2' => 'val2'];
     $rules = ['key' => 'cKey', $nodeKey => 'nKey'];
     $nodeDataConverter = $this->getMockBuilder('Oro\\Bundle\\ImportExportBundle\\Converter\\DataConverterInterface')->setMethods(['convertToImportFormat'])->getMockForAbstractClass();
     $this->dataConverter->expects($this->atLeastOnce())->method('getHeaderConversionRules')->will($this->returnValue($rules));
     $this->dataConverter->expects($this->once())->method('getBackendHeader')->will($this->returnValue(array_values($rules)));
     if ($isMany) {
         $rowsCount = count($input[$rules[$nodeKey]]);
         $nodeDataConverter->expects($this->exactly($rowsCount))->method('convertToExportFormat')->will($this->returnValue($converted));
         for ($i = 0; $i < $rowsCount; $i++) {
             $nodeDataConverter->expects($this->at($i))->method('convertToExportFormat')->with($input[$rules[$nodeKey]][$i]);
         }
     } else {
         $nodeDataConverter->expects($this->once())->method('convertToExportFormat')->with($input[$rules[$nodeKey]])->will($this->returnValue($converted));
     }
     $this->dataConverter->addNodeDataConverter($nodeKey, $nodeDataConverter, $isMany);
     $this->assertEquals($expected, $this->dataConverter->convertToExportFormat($input));
 }
 /**
  * {@inheritdoc}
  */
 public function convertToImportFormat(array $importedRecord, $skipNullValues = true)
 {
     if ($this->context && $this->context->hasOption('channel')) {
         $importedRecord['store:channel:id'] = $this->context->getOption('channel');
         $importedRecord['website:channel:id'] = $this->context->getOption('channel');
         $importedRecord['group:channel:id'] = $this->context->getOption('channel');
     }
     $importedRecord = parent::convertToImportFormat($importedRecord, $skipNullValues);
     $importedRecord = AttributesConverterHelper::addUnknownAttributes($importedRecord, $this->context);
     $importedRecord['confirmed'] = false;
     $importedRecord['guest'] = true;
     return $importedRecord;
 }
 /**
  * {@inheritdoc}
  */
 public function convertToExportFormat(array $exportedRecord, $skipNullValues = true)
 {
     $exportedRecord = parent::convertToExportFormat($exportedRecord, $skipNullValues);
     // store_id can be 0
     if (isset($exportedRecord['store']['store_id'])) {
         $exportedRecord['store_id'] = $exportedRecord['store']['store_id'];
         unset($exportedRecord['store']);
     }
     // Do not clear confirmCode until its empty
     if (empty($exportedRecord['subscriber_confirm_code'])) {
         unset($exportedRecord['subscriber_confirm_code']);
     }
     return $exportedRecord;
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function convertToImportFormat(array $importedRecord, $skipNullValues = true)
 {
     if ($this->context && $this->context->hasOption('channel')) {
         $importedRecord['store:channel:id'] = $this->context->getOption('channel');
         $importedRecord['customer:channel:id'] = $this->context->getOption('channel');
         $importedRecord['customer:group:channel:id'] = $this->context->getOption('channel');
     }
     $importedRecord['cart_status'] = CartStatus::STATUS_OPEN;
     if (array_key_exists('is_active', $importedRecord)) {
         $importedRecord['cart_status'] = $importedRecord['is_active'] ? CartStatus::STATUS_OPEN : CartStatus::STATUS_EXPIRED;
     }
     $importedRecord = parent::convertToImportFormat($importedRecord, $skipNullValues);
     return AttributesConverterHelper::addUnknownAttributes($importedRecord, $this->context);
 }
 /**
  * {@inheritdoc}
  */
 public function convertToImportFormat(array $importedRecord, $skipNullValues = true)
 {
     if ($this->context && $this->context->hasOption('channel')) {
         $importedRecord['store:channel:id'] = $this->context->getOption('channel');
         $importedRecord['website:channel:id'] = $this->context->getOption('channel');
         $importedRecord['group:channel:id'] = $this->context->getOption('channel');
     }
     // extract view from 'website\nstore\view' string
     if (!empty($importedRecord['storeName'])) {
         $createdIn = explode("\n", $importedRecord['storeName']);
         $importedRecord['storeName'] = end($createdIn);
     }
     $importedRecord = parent::convertToImportFormat($importedRecord, $skipNullValues);
     $importedRecord = AttributesConverterHelper::addUnknownAttributes($importedRecord, $this->context);
     $importedRecord['confirmed'] = false;
     $importedRecord['guest'] = true;
     return $importedRecord;
 }
 /**
  * {@inheritdoc}
  */
 protected function fillEmptyColumns(array $header, array $data)
 {
     $dataDiff = array_diff(array_keys($data), $header);
     $data = array_diff_key($data, array_flip($dataDiff));
     return parent::fillEmptyColumns($header, $data);
 }