Перейти к содержанию
Форум Радиодар

Добавляем второй импорт CSV для быстрой загрузки цен и остатков в Aimeos (дублирование класса и контроллера заданий)


Рекомендуемые сообщения

В связи с огромным количеством товара в системе Aimeos принято решение о разделении импорта на два направления:

1) Полный первичный импорт CSV всей информации о товаре, включая описание, характеристики и цены (сейчас получилось 86 столбцов);

2) Импорт только цен и остатков;

Для решения данной задачи необходимо создать второй контроллер заданий, например "product/import/price". Расширить существующий класс \Aimeos\Controller\Jobs\Product\Import\Csv\Standard и перезаписать как минимум методы location() и mapping() для использования другого ключа конфигурации.

После этого можно импортировать два разных вида файлов CSV с разными сопоставлениями столбцов, хранящимися в разных каталогах.

Ссылка на комментарий
Поделиться на другие сайты

        return (string) $this->context()->config()->get( 'controller/jobs/product/import/csv/location', 'product' );
        // second import file - only prices and stocks
        return (string) $this->context()->config()->get( 'controller/jobs/product/import/price/location', 'price' );

 

        $map = (array) $this->context()->config()->get( 'controller/jobs/product/import/csv/mapping', $this->getDefaultMapping() );
 
        if( !isset( $map['item'] ) || !is_array( $map['item'] ) )
        {
            $msg = sprintf( 'Required mapping key "%1$s" is missing or contains no array', 'item' );
            throw new \Aimeos\Controller\Jobs\Exception( $msg );
        }
 
        return $map;
        // second import file - only prices and stocks
        $map = (array) $this->context()->config()->get( 'controller/jobs/product/import/csv/mappingprice', $this->getDefaultMapping() );
 
        if( !isset( $map['item'] ) || !is_array( $map['item'] ) )
        {
            $msg = sprintf( 'Required mappingprice key "%1$s" is missing or contains no array', 'item' );
            throw new \Aimeos\Controller\Jobs\Exception( $msg );
        }
 
        return $map;

image.png

Ссылка на комментарий
Поделиться на другие сайты

1) Создаем каталог для нашего файла с ценами

image.png

 

2) Добавляем папку "Prices" в каталоге задач импорта:

 

image.png

 

3) Добавляем новые сопоставления столбцов для файла CSV с ценами:

image.png

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Статистика пользователей

    365
    Пользователей
    311
    Максимум онлайн
    GeorgeChiem
    Новый пользователь
    GeorgeChiem
    Регистрация
×
×
  • Создать...