/**
  * Creates a data transformer chain by consuming data found a profile.
  * The $dataUserOptions is an object that will return info for the output file structure - tree or flat.
  *
  * @param \Shopware\Components\SwagImportExport\Profile\Profile $profile
  * @param array $dataUserOptions
  * @return \Shopware\Components\SwagImportExport\Transformers\DataTransformerChain
  */
 public function createDataTransformerChain($profile, $dataUserOptions)
 {
     // this can be put in a separate hookable function
     $dataTransformerChain = new DataTransformerChain();
     // for every config we create a transformer and add it to the chain
     $names = $profile->getConfigNames();
     foreach ($names as $name) {
         $config = $profile->getConfig($name);
         $transformer = $this->createDataTransformer($name, $config);
         $dataTransformerChain->add($transformer);
     }
     // a little hack: if we are in csv, we flatten the tree by adding a flattener at the end
     if (!$dataUserOptions['isTree']) {
         $transformer = $this->createDataTransformer('flatten', $profile->getConfig('tree'));
         $dataTransformerChain->add($transformer);
     }
     return $dataTransformerChain;
 }
 /**
  * @param $postData
  * @param $profileName
  * @param $outputFile
  */
 public function saveUnprocessedData($postData, $profileName, $outputFile)
 {
     if ($postData['session']['prevState'] === 'new') {
         $header = $this->transformerChain->composeHeader();
         $this->fileIO->writeHeader($outputFile, $header);
     }
     $data = $this->transformerChain->transformForward($postData['data'][$profileName]);
     $this->fileIO->writeRecords($outputFile, $data);
 }