Создание агента в 1С-Битрикс, на реальном примере

RSS
Создание агента в 1С-Битрикс, на реальном примере
 
Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либо "Да" либо "Нет" - согласно наличию товара на двух складах. Далее это свойство используется в умном фильтре при выводе каталога.
 
Тоже самое на D7, при тестах работает чуть медленее. Примерно на 10-15 секунд дольше
Код
use Bitrix\Main\Loader;
use Bitrix\Iblock\ElementTable;
use Bitrix\Catalog\StoreProductTable;

function UpdateAvPropAgent()
{
    // Подключение необходимых модулей
    if (!Loader::includeModule('iblock') || !Loader::includeModule('catalog')) {
        return 'UpdateAvPropAgent();'; // Перезапуск агента в случае ошибки подключения модулей
    }

    // Получение списка активных элементов из инфоблока
    $elements = ElementTable::getList([
        'filter' => [
               'IBLOCK_ID' => 4, 
               'ACTIVE' => 'Y'
         ],
        'select' => ['ID']
    ]);

    while ($element = $elements->fetch()) {
        $hasOnStore = 0;

        // Проверка наличия остатков на определенных складах
        $storeProducts = StoreProductTable::getList([
            'filter' => [
                   'PRODUCT_ID' => $element['ID'], 
                   'STORE_ID' => [6, 13]
             ],
            'select' => ['AMOUNT']
        ]);

        while ($storeProduct = $storeProducts->fetch()) {
            $hasOnStore += $storeProduct['AMOUNT'];
        }

        // Установка значения свойства в зависимости от наличия остатков
        $propertyValue = $hasOnStore > 0 ? 'Да' : 'Нет';
        \CIBlockElement::SetPropertyValuesEx(
            $element['ID'], 
            4, 
            ['ATT_NAL_FIL' => $propertyValue]);
    }

    return 'UpdateAvPropAgent();'; // Перезапуск агента
}
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst
Место для вашей рекламы.
Сквозная по:

15 000 руб/мес.

Обязательно через ОРД
со счетами и актами

Блог-note: заметки разработчика

Мобильные версии страниц и поисковые системы

Согласно требования поисковых систем: Яндекс и Google, в случае если у вашего сайта имеется мобильная версия, нужно увед...

Вывести разделы инфоблока в которых находится элемент Битрикс

Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это у...

INPUT type="file" Предпросмотр превью картинки до загрузки

Рассмотрим на примере компонента "Форма добавления-редактирования элементов инфоблока", как сделать ее более удобной для...

Композитный сайт на 1С-Битрикс

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

Данные о заказе текущего пользователя

Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосредственно через API Битрикс. Ва...

Время на БД и веб сервере отличается на 3600 секунд, тест Битрикс

Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок: Время на БД и на сервере- Вр...

Настройка push уведомлений через Firebase, в мобильном приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...