1 Отредактировано Ба Ань (28.10.2016 00:40:18)

Тема: Импорт товаров и остатков через CSV

Доброго времени суток.
Пытаюсь автоматизировать процесс выгрузки из самописного 1C на сайт, с помощью CSV.
Остановился на самом процессе импорта.

Подскажите как работать с данной функцией из \Main\Controller\Admin\Csv

actionProcessImport ($schema_def = null, $filename_def = null, $referer_def = null )

И вообще, это та функция, которая мне нужна?

Как указываются схема и CSV файл при импорте? Файлы берутся из папки.


UPD:
Посидел с отладчиком, и слепил себе такой костыль из функции actionProcessImport, но работает)))

Не поможете привести код в порядок и почистить от ненужных строк? Или наоборот вернуть нужные) Не хотелось бы сюрпризов в дальнейшем.

- Использую стандартные схемы catalog-dir, catalog-product ...
- В $file идет полный путь к файлу .csv

Сам код:

function processImport($schema, $file)
    {
        if ($schema && $file) {
            $start_pos = 0;
            $config    = \RS\Config\Loader::byModule('main');

            if ($csv_schema = \RS\Csv\AbstractSchema::getByShortName($schema)) {
                $csv_schema->setAction('import');

                $csv_file    = $file;
                $csv_columns = $csv_schema->analizeColumns($csv_file);
                $columns     = $csv_columns['schema']; //Сопоставленные колонки

                //Проверяем шаблон импорта
                $csv_schema->validateImportWorkField($columns);
                //Подтверждение шаблона
                $csv_schema->setWorkFields($columns);
                //Начинаем импортировать строки
                if ($csv_schema->import($csv_file, $config['csv_check_timeout'], $start_pos))
                    return true;
                else return false;
            } else return false;
        } else return false;
    }

Повысить оценку Понизить оценку

Re: Импорт товаров и остатков через CSV

На первый взгляд вроде всё, то. Пробуйте импортировать.