3

I followed steps in this topic Magento 2 run native product csv import programtically, but it didn't work. When I try to import product through a CSV file in back-office, the check data is correct and the import too. But, when I try to use the same file in my custom module, the check data function (validateSource) gives me an error.

I think I didn't upload the CSV file correctly.

I put it in a personal folder, then I copy it in /var/importexport/ renamed as catalog_product.csv. The function importSource seems to work but no product is imported, and the file isn't copied in /var/import_history/.

In my function, I got an argument that is the file path of my CSV file. My code :

$dataImport = 
[
    "entity"=>"catalog_product",
    "behavior"=>"append",
    "validation_strategy"=>"validation-stop-on-errors",
    "allowed_error_count"=>"10",
    "_import_field_separator"=>";",
    "_import_multiple_value_separator"=>",",
    "import_images_file_dir"=>""
];

$newFilvecsv = "/root/var/importexport/catalog_product.csv";
copy($filecsv->getFilepath(), $newFilvecsv);

$importModel = $this->importModelFactory->create();
$importModel->setData($dataImport);

$source = $this->importAdapter->findAdapterFor(
    $newFilvecsv,
    $this->fileSystem->getDirectoryWrite(DirectoryList::ROOT),
    $importModel->getData('_import_field_separator')
);
$isValid = $importModel->validateSource($source);

if ($importModel->getProcessedRowsCount() === 0 || $importModel->getErrorAggregator()->getErrorsCount() || !$isValid){ // Fichier non valide
} 

try {
    $importModel->importSource();
} catch (\Exception $e) {
    $this->logger->info("Import impossible");
} 

return "Import fini";

I'm lost. Can you help me ?

1
  • Did you find a solution for this?
    – SebastianT
    Jan 10, 2020 at 7:29

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.