Автоматическая выгрузка
Для автоматического обновления фида нужно настроить задание для системы, которое будет автоматически запускать выгрузку
Выгрузка по агенту (рекомендуемый способ)
Данный способ более простой и не требует навыков разработки. С его помощью можно быстро настроить автоматическое обновление фида например каждые 8 часов.
Откройте список профилей выгрузки и найдите нужный профиль. Откройте контекстное меню профиля выгрузки и нажмите "Создать агента"
Далее откроется окно с вводом интервала агента, укажите с каким периодом необходимо обновлять выгрузку:
Дополнительно: Если вы хотите выполнять агенты на cron необходимо перевести запуск агентов по cron согласно
инструкции от 1с-Битрикс. На большинстве проектов данный перевод уже выполнен, т.к. является рекомендуемым.
Через крон-задачу (потребуется помощь разработчика)
Данный способ может пригодиться в более сложных случаях, например, когда выгрузку нужно делать точно в определенное время или нужно нестандартное расписание выгрузки.
Шаг 1. Создаём php скрипт генерирующий выгрузку. Ниже пример скрипта
#!/usr/bin/php <?php $_SERVER["DOCUMENT_ROOT"] = "/home/hosting/www"; // В этой переменной укажите корректный DOCUMENT_ROOT $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define('STOP_STATISTICS', true); define('NOT_CHECK_PERMISSIONS', true); define('NO_AGENT_CHECK', true); set_time_limit(0); @ignore_user_abort(true); define("LANG", "s1"); // В этой константе укажите корректный SITE_ID require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CCatalogExport::PreGenerateExport(1); // вместо 1 укажите корректный айди вашего профиля require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>
Шаг 2. Устанавливаем на крон. Ниже пример крон задачи
30 18 * * * /usr/bin/php -f /home/bitrix/www/cron/exportgoogle.php
Типовые проблемы и их решение
Некорректная ссылка в <link>
Одной из наиболее частых проблем является отсутствие либо неверная ссылка на карточку товара в элементе <link>.
Для решения данной проблемы необходимо правильно настроить шаблоны URL в инфоблоке каталога и торговых предложений. Обратите внимание - данные настройки нужно делать в соовествии с реализацией ЧПУ вашего каталога товаров.
Пример настройки URL детальной страницы в инфоблоке каталога
Пример настройки URL детальной страницы в инфоблоке торговых предложений
Пустой фид без товаров
Переодически пользователи сталкиваются с проблемой. Настройки сделаны, экспорт запущен, файл создался - но в нём нет товаров (тегов <item>). Ниже мы рассмотрим что может влиять на выгрузку в файл конкретных позиций.
1. Цена
Обязательное условие выгрузки товара - наличие цены. Цена должна быть больше нуля. Модуль получает цену автоматически средствами ядра битрикса (CCatalogProduct::GetOptimalPrice)
2. Активность
Товар должен быть активен
3. Опция "Выгружать только доступные к покупке товары"
Проверят признак доступности товара к покупке стандартным функционалом ядра битрикса. Если битрикс считает товар не доступным - товар исключается из выгрузки
4. Опция "Скрыть товары без картинок"
Проверяет наличие картинки у товара. Если картинки нет - товар исключается из выгрузки
5. Опция "Скрыть товары без описаний"
Проверяется наличие описания товара (настраивается в детальных настройках). Если описания нет - товар исключается из выгрузки
6. Опция "Скрыть товары с нулевым Доступным количеством"
Проверяется поле каталога "Доступное количество". Если количество меньше или равно нулю - товар исключается из выгрузки
7. "Выберите группы"
В настройке выгрузки мы выбираем инфоблок и разделы из которых нужно выгружать товары. Выгружаются только товары из разделов, отмеченных галочками.
8. "Отбор товаров по свойствам" в детальных настройках
Если фильтр настроен, все товары не попадающие под фильтр будут исключены из выгрузки
9. "Фильтр по цене" в детальных настройках
Если фильтр настроен, все товары не попадающие под фильтр будут исключены из выгрузки
10. "Настройка выгрузки торговых предложений" в детальных настройках
Данная настройка влияет на выгрузку торговых предложений для товара, торговые предложения не попавшие под данную настройку так же будут исключены из прайса
На данный момент это полный список возможного непопадания в выгрузку товаров.
Наиболее эффективный способ понять почему у вас в фид не попадают товары - отключить вообще все фильтры и сделать выгрузку. Если в фид после этого попали товары - значит проблема в фильтрах, включаем по одному и смотрим. Если нет - то проверяем наличие в товарах цен, флаг активности, выбор разделов и т.п.
В детальных настройках нет кнопки "Сохранить"
Данная проблема замечена на серверах, с установленным серверным модулем pagespeed
После установки модуля pagespeed некоторые скрипты ядра битрикса (JavaScript) начинают работать не верно и выдают ошибки.
Данная проблема распространяется не только на мой модуль, но и на весь раздел экспорта, включая стандартные скрипты (к примеру Yandex).
Рекомендация: т.к. после обработки скрипты админки работают не верно, нужно настроить модуль pagespeed таким образом, что бы он не обрабатывал папку /bitrix/ и всё что внутри её, либо отключить его
Формирование и выгрузка цен
Вопрос:
У нас в магазине используется несколько типов цен. В настройках выгрузки мы выбрали определенный тип цен, но в прайс попадает базовая/другая цена.
Ответ:
При разработке функционала разных цен, разработчики им чаще всего используют событие OnGetOptimalPrice влияющее на отдачу цены товара. Это событие влияет на стандартную функцию CCatalogProduct::GetOptimalPrice, с помощью которой модуль получает цену товаров.
Для корректной отдачи цены в прайс обработчик OnGetOptimalPrice должен корректно реагировать на ситуацию, когда заполнен пятый параметр $arPrices (который определяет запрашиваемый тип цен) и выдавать запрошенный тип цены. Либо данный обработчик должен быть отключен в административной части сайта.