FriendsOfSylius / SyliusImportExportPlugin

Sylius plugin to import / export data
MIT License
118 stars 82 forks source link

How to change delimiter? #235

Closed hipachka closed 4 years ago

hipachka commented 4 years ago

Plugin not support change delimiter? If i override delmiter at CsvWriter i got error at validateHeaders method. Because inside $headerKeys i got array and $dataset get array but looks like that. ['Code;Locale;Name'] => 'productCode;En_en;Yourname'

Well i think delmiter is hardcoded and i need to change it ',' to ';' to fix validation. Maybe i can setup delimiter in plugin too?

oallain commented 4 years ago

Hi @hipachka ,

Yon can easyer change delimiter for import like that :

You can configure sylius.factory.csv_reader service

# src/Resources/config/services_import_csv
    sylius.factory.csv_reader:
        class: Port\Csv\CsvReaderFactory
        arguments:
            - 0

replace by

    sylius.factory.csv_reader:
        class: Port\Csv\CsvReaderFactory
        arguments:
            - 0
            - ';'

For your information arguments of Port\Reader\ReaderFactory\CsvReaderFactory are :

$headerRowNumber = null,
$strict = true,
$delimiter = ',',
$enclosure = '"',
$escape = '\\'

For exporter it's here

# src/Resources/config/services_export_csv.yml
    sylius.csv_writer:
        class: Port\Csv\CsvWriter
        arguments:
            - ','

Regards,

hipachka commented 4 years ago

Oh, Thanks. I found export but import ... Yeah that works !