Телеграм: @camouf_ru Почта: mihail@bazarow.ru

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

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

Если требуется настроить автоматический импорт каталогов из 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
Dmitriy Ivanov 27.05.2019
Подскажите пожалуйста, почему выводит ошибку "Language id is absent - defined site is bad" в log файле
$siteID = 's2'; так же пробывать 'ru';

в чем может быть проблема?
aramania 10.03.2020
Здравствуйте Михаил.

Вы неправильно указали путь! пропустили папку bitrix

10 1 * * * bitrix /usr/bin/php -f /home/bitrix/www/php_interface/include/catalog_import/import­_catalog.php 1

Должно быть

10 1 * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/include/catalog_import/import_catalog.php 1
Михаил Базаров 11.03.2020
Цитата
aramania пишет:
Здравствуйте Михаил.

Вы неправильно указали путь! пропустили папку  bitrix

10 1 * * * bitrix /usr/bin/php -f /home/bitrix/www/php_interface/include/catalog_import/import­ ­_catalog.php 1

Должно быть  
 
10 1 * * * bitrix /usr/bin/php -f /home/bitrix/www  /   bitrix   /  php_interface/include/catalog_import/import_catalog.php 1
Да, спасибо, поправил

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Вывести минимальную цену торговых предложений в Битрикс Просмотров: 26860 Если у товара несколько торговых предложений и у каждого предложения разные цены, иногда т... Картинка торгового предложения вместо иконки цвета, в выборе SKU Просмотров: 270 Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового п... Бонус за выполненный заказ на внутренний счет пользователя Просмотров: 4268 Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить п... Вывести разделы инфоблока по первым буквам не меняя структуру каталог... Просмотров: 1808 Например: у нас есть инфоблок с большим количеством разделов. И мы хотим, на сайте разбить... Открытие мобильного приложения Apache Cordova по ссылке Просмотров: 683 Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: п... Подключение мобильной версии шаблона Битрикс сайта, с автопереключени... Просмотров: 42288 Предпочитаю, что бы сайт не грузил кучу скриптов и стилей. При загрузке адаптивного шаблон... Простые калькуляторы в карточке товара каталога на Битрикс Просмотров: 15404 На одном из создаваемых сайтов было необходимо сделать небольшой калькулятор и предварител... Простой WEB сервер на ubuntu, для Битрикс Просмотров: 34478 Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких ngi... Индивидуальные цены в 1С-Битрикс: в каталоге и при оформлении заказа Просмотров: 4960 В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей... Вывести свойство привязка к Яндекс Картам в Битрикс Просмотров: 18184 Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента... Установить цену товара из свойства инфоблока Просмотров: 8714 На одном из проектов, нужно было единоразово заполнить цены товаров из свойства инфоблока... Время на БД и веб сервере отличается на 3600 секунд, тест Битрикс Просмотров: 15306 Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок... Основные функции вывода в шаблонах Битрикс Просмотров: 155357 Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну к... Прятать или показывать описание раздела каталога Просмотров: 598 В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый па... Вывести все разделы в которых находится элемент инфоблока Просмотров: 13027 Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоб... Time Capsule на Windows 10. Хранение бекапов Time Machine на компьюте... Просмотров: 6664 Заметку написал скорее для себя, что бы собрать все в одну кучу. Написана на базе нескольк... Создание блога с комментариями, оценками и просмотрами на сайте с 1С-... Просмотров: 23034 Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в... Создание мобильного приложения на cordova, для любого сайта. Просмотров: 14192 Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данно... Автоматически помечаем новинки лейблом в каталоге битрикс Просмотров: 5380 Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И... Массово: применить наценку ко всем товарам каталога с пересчетом от б... Просмотров: 5584 Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все това...