Автоматическая загрузка каталогов из csv файлов в Битрикс

Просмотров: 17378

Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В 1С-Битрикс, уже есть весь необходимый функционал. Требуется лишь настроить и обеспечить выполнение по расписанию.

Выполняется это в несколько шагов. Предположим, что все реализуется на Битрикс веб окружении. Но легко воспроизводиться на любом, нормальном хостинге. Итак:

1) Получение csv файла от поставщика

Тут все просто: Поставщик ежедневно выкладывает csv файл по постоянному адресу http://example.com/catalog.csv. Мы будем получать его с помощью команды wget и cron задания.

Если wget не установлен на сервере выполняем установку, в терминале


yum install wget

Сайт находится в директории /home/bitrix/www. Просто открываем файл cron (/etc/crontab) заданий и добавляем, новой строкой команду:


30 21 * * * bitrix wget -O /home/bitrix/www/upload/catalog.csv http://example.com/catalog.csv
  • 30 21 * * * Каждый день в 21:30
  • bitrix wget -O Пользователем bitrix получаем и перезаписываем файл
  • /home/bitrix/www/upload/catalog.csv в директории upload сайта
  • http://example.com/catalog.csv адрес с csv файлом поставщика

2) Добавление профиля импорта

Теперь создадим профиль импорта. на сайте проходим в
Администрирование -> Магазин -> Настройки -> Импорт данных
И добавляем новый профиль Import CSV (new)

Автоматическая загрузка каталогов из csv файлов в Битрикс

Тут просто, пошагово, настраиваем соответствие полей: В какой инфоблок записывать данные, в какие поля и настройки обработки элементов

Автоматическая загрузка каталогов из csv файлов в Битрикс

Сохраняем. И в списке профилей, напротив свеже созданного, выбираем в выпадающей менюшке "Привязать к cron"

Автоматическая загрузка каталогов из csv файлов в Битрикс

В следующем окне оставляем все поля пустыми, если что-то будет прописано- удаляем и нажимаем "Установить"

Автоматическая загрузка каталогов из csv файлов в Битрикс

Запоминаем ID профиля, в моем случае "1"

3) Подготавливаем файл-обработчик для запуска импорта csv

Для того, что бы импорт из csv заработал на cron по расписанию, сначала копируем файл
/bitrix/php_interface/include/catalog_import/cron_frame.php
прямо в эту же директорию, называем import_catalog.php и открываем на редактирование.

Удаляем все что касается php интерпритатора (первые строчки) и заменяем путь к корневой директории на:


$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../../../..");

И указываем ID своего сайта в переменной $siteID

На всякий скрин, должно получиться вот так. Все остальное не трогаем

Автоматическая загрузка каталогов из csv файлов в Битрикс

Дальше, заходим в терминал на сервере, пользователем bitrix и проходим в директорию с этим файлом


cd /home/bitrix/www/bitrix/php_interface/include/catalog_import

И делаем файл import_catalog.php исполняемым


chmod +x import_catalog.php

4) Добавляем cron задание на выполнение импорта из профиля csv

Дело осталось за малым: Добавить выполнение этого скрипта в cron задание:


10 1 * * * bitrix /usr/bin/php -f /ПУТЬ_К_САЙТУ/bitrix/php_interface/include/catalog_import/import_catalog.php 1
  • 10 1 * * * Каждый день в 01:10
  • bitrix /usr/bin/php -f Пользователем bitrix и интерпритатором php
  • /home/.../import_catalog.php запускаем скрипт импорта
  • 1 ID профиля импорта - 1

Если импортов несколько, не нужно постоянно копировать файл import_catalog.php, просто, в каждом cron задании, указывает ID нужного профиля в аргумент

PS: Если нужны логи импорта

Если понадобятся логи, дабы отладить и отслеживать процесс импорта каталога из csv. Можно добавить аргументом, в cron задание путь до файла логгирования. Пример:


10 1 * * * bitrix /usr/bin/php -f /ПУТЬ_К_САЙТУ/bitrix/php_interface/include/catalog_import/import_catalog.php 1 > /home/bitrix/www/php_interface/include/catalog_import/log/prof1.txt

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 500 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 350 000 руб. от 1-го месяца

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфресурс

от 400 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.