diff --git a/src/CsvFileObject.php b/src/CsvFileObject.php
index 437e40c..9ddb15f 100644
--- a/src/CsvFileObject.php
+++ b/src/CsvFileObject.php
@@ -43,10 +43,19 @@ class CsvFileObject extends \SplFileObject {
    * @param array $header_mapping
    *   The header mapping (real_column => mapped_column).
    */
-  public function __construct($file_name, $has_header = FALSE, array $header_mapping = []) {
+  public function __construct($file_name, $has_header = FALSE, array $header_mapping = [], array $csv_options = []) {
     parent::__construct($file_name);
 
     $this->setFlags(self::READ_CSV | self::READ_AHEAD | self::DROP_NEW_LINE | self::SKIP_EMPTY);
+    
+    // Default options merged with custom ones
+    $options = array_merge([
+      'delimiter' => ",",
+      'enclosure' => "\"",
+      'escape' => "\\",
+    ], $csv_options);
+    $this->setCsvControl($options['delimiter'], $options['enclosure'], $options['escape']);
+    
     $this->hasHeader = $has_header;
     $this->headerMapping = $header_mapping;
     if ($this->hasHeader) {

diff --git a/src/Form/PriceListItemImportForm.php b/src/Form/PriceListItemImportForm.php
index ae54da9..a180352 100644
--- a/src/Form/PriceListItemImportForm.php
+++ b/src/Form/PriceListItemImportForm.php
@@ -105,6 +105,29 @@ class PriceListItemImportForm extends FormBase {
       ],
       '#upload_location' => 'temporary://',
     ];
+    
+    $form['options'] = [
+      '#type' => 'details',
+      '#title' => $this->t('CSV options'),
+      '#collapsible' => TRUE,
+      '#open' => TRUE,
+    ];
+
+    $form['options']['delimiter'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('CSV delimiter'),
+      '#size' => 5,
+      '#default_value' => ",",
+      '#required' => TRUE,
+    ];
+    
+    $form['options']['enclosure'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('CSV enclosure'),
+      '#size' => 5,
+      '#default_value' => "\"",
+      '#required' => TRUE,
+    ];
 
     $form['mapping'] = [
       '#type' => 'details',
@@ -209,7 +232,7 @@ class PriceListItemImportForm extends FormBase {
       [get_class($this), 'batchProcess'],
       [
         $file->getFileUri(),
-        $values['mapping'],
+        $values['mapping'], $values['options'],
         $form_state->get('price_list_id'),
       ],
     ];
@@ -282,7 +305,7 @@ class PriceListItemImportForm extends FormBase {
    * @param array $context
    *   The batch context.
    */
-  public static function batchProcess($file_uri, array $mapping, $price_list_id, array &$context) {
+  public static function batchProcess($file_uri, array $mapping, array $csv_options, $price_list_id, array &$context) {
     $entity_type_manager = \Drupal::entityTypeManager();
     $price_list_storage = $entity_type_manager->getStorage('commerce_pricelist');
     $price_list_item_storage = $entity_type_manager->getStorage('commerce_pricelist_item');
@@ -295,7 +318,7 @@ class PriceListItemImportForm extends FormBase {
       $mapping['list_price_column'] => 'list_price',
       $mapping['price_column'] => 'price',
       $mapping['currency_column'] => 'currency_code',
-    ]);
+    ], $csv_options);
     if (empty($context['sandbox'])) {
       $context['sandbox']['import_total'] = (int) $csv->count();
       $context['sandbox']['import_count'] = 0;
