Готовые решения для 1С-Битрикс
Карточка решения

Выгрузка каталога товаров в YML

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

Автоматическая выгрузка

Для автоматического обновления фида нужно настроить задание для системы, которое будет автоматически запускать выгрузку

Выгрузка по агенту (рекомендуемый способ)


Данный способ более простой и не требует навыков разработки. С его помощью можно быстро настроить автоматическое обновление фида например каждые 8 часов.

Откройте список профилей выгрузки и найдите нужный профиль. Откройте контекстное меню профиля выгрузки и нажмите "Создать агента"


screen1.png

Далее откроется окно с вводом интервала агента, укажите с каким периодом необходимо обновлять выгрузку:

screen1.png


Дополнительно: Если вы хотите выполнять агенты на 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 детальной страницы в инфоблоке каталога

screen1.png


Пример настройки URL детальной страницы в инфоблоке торговых предложений

screen1.png

Пустой фид без товаров

Переодически пользователи сталкиваются с проблемой. Настройки сделаны, экспорт запущен, файл создался - но в нём нет товаров (тегов <item>). Ниже мы рассмотрим что может влиять на выгрузку в файл конкретных позиций.

1. Цена
Обязательное условие выгрузки товара - наличие цены. Цена должна быть больше нуля. Модуль получает цену автоматически средствами ядра битрикса (CCatalogProduct::GetOptimalPrice)

2. Активность
Товар должен быть активен

3. Опция "Выгружать только доступные к покупке товары"
Проверят признак доступности товара к покупке стандартным функционалом ядра битрикса. Если битрикс считает товар не доступным - товар исключается из выгрузки

4. Опция "Скрыть товары без картинок"
Проверяет наличие картинки у товара. Если картинки нет - товар исключается из выгрузки

5. Опция "Скрыть товары без описаний"
Проверяется наличие описания товара (настраивается в детальных настройках). Если описания нет - товар исключается из выгрузки

6. Опция "Скрыть товары с нулевым Доступным количеством"
Проверяется поле каталога "Доступное количество". Если количество меньше или равно нулю - товар исключается из выгрузки

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

otbor_grupp.png


8. "Отбор товаров по свойствам" в детальных настройках
Если фильтр настроен, все товары не попадающие под фильтр будут исключены из выгрузки

otbor_svojstva.png


9. "Фильтр по цене" в детальных настройках
Если фильтр настроен, все товары не попадающие под фильтр будут исключены из выгрузки

filtr_price.png


10. "Настройка выгрузки торговых предложений" в детальных настройках
Данная настройка влияет на выгрузку торговых предложений для товара, торговые предложения не попавшие под данную настройку так же будут исключены из прайса

otbor_predlozheniy.png



На данный момент это полный список возможного непопадания в выгрузку товаров.

Наиболее эффективный способ понять почему у вас в фид не попадают товары - отключить вообще все фильтры и сделать выгрузку. Если в фид после этого попали товары - значит проблема в фильтрах, включаем по одному и смотрим. Если нет - то проверяем наличие в товарах цен, флаг активности, выбор разделов и т.п.



В детальных настройках нет кнопки "Сохранить"

Данная проблема замечена на серверах, с установленным серверным модулем pagespeed

После установки модуля pagespeed некоторые скрипты ядра битрикса (JavaScript) начинают работать не верно и выдают ошибки.

Данная проблема распространяется не только на мой модуль, но и на весь раздел экспорта, включая стандартные скрипты (к примеру Yandex).

Рекомендация: т.к. после обработки скрипты админки работают не верно, нужно настроить модуль pagespeed таким образом, что бы он не обрабатывал папку /bitrix/ и всё что внутри её, либо отключить его

Формирование и выгрузка цен

Вопрос:
У нас в магазине используется несколько типов цен. В настройках выгрузки мы выбрали определенный тип цен, но в прайс попадает базовая/другая цена.

Ответ:
При разработке функционала разных цен, разработчики им чаще всего используют событие OnGetOptimalPrice влияющее на отдачу цены товара. Это событие влияет на стандартную функцию CCatalogProduct::GetOptimalPrice, с помощью которой модуль получает цену товаров.

Для корректной отдачи цены в прайс обработчик OnGetOptimalPrice должен корректно реагировать на ситуацию, когда заполнен пятый параметр $arPrices (который определяет запрашиваемый тип цен) и выдавать запрошенный тип цены. Либо данный обработчик должен быть отключен в административной части сайта.


Сайт использует сookie - они помогают делать сайт удобнее. Вы можете запретить обработку сookies в настройках браузера. Политика конфиденциальности и cookie
Принять