Добавление товара в Избранное

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Добавление товара в Избранное
Добавление товара в «Избранное» в 1С-Битрикс: пошаговое руководство

В 1С-Битрикс из коробки нет встроенной функциональности для  «Избранного», однако её можно легко реализовать несколькими способами. В  этой статье мы разберём разные подходы, предоставим варианты кода и  разберёмся, как избежать дублирования товаров при добавлении.
Этот скрипт добавляет или удаляет товар из «Избранного» в сессии пользователя с поддержкой автоматического переключения состояния (toggle), предотвращением дублирования и возвратом актуального количества товаров в избранном.
Код
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

session_start();

global $USER;
$productId = (int)$_REQUEST['product_id'];
$action = $_REQUEST['action'] ?? null; // add, remove или toggle

// Инициализируем сессию для избранного
if (!isset($_SESSION['FAVORITE_PRODUCTS'])) {
    $_SESSION['FAVORITE_PRODUCTS'] = [];
}

$favorites = &$_SESSION['FAVORITE_PRODUCTS']; // Ссылка для удобства
$isInFavorite = in_array($productId, $favorites);

// Определяем действие: добавить, удалить или переключить
if ($action === 'add' && !$isInFavorite) {
    $favorites[] = $productId;
    $status = 'added';
} elseif ($action === 'remove' && $isInFavorite) {
    $favorites = array_values(array_filter($favorites, fn($id) => $id != $productId));
    $status = 'removed';
} else {
    // По умолчанию — переключение (toggle)
    if ($isInFavorite) {
        $favorites = array_values(array_filter($favorites, fn($id) => $id != $productId));
        $status = 'removed';
    } else {
        $favorites[] = $productId;
        $status = 'added';
    }
}

// Возвращаем JSON с текущим состоянием
echo json_encode([
    'status' => 'success',
    'action' => $status,
    'in_favorite' => $status === 'added',
    'count' => count($favorites)
]);

require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php");
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Лендинг

от 3 дней

от 25 000 рублей

Разработка одностраничного сайта на платформе Битрикс

* стоимость зависит от наличия верстки, использования готового решения и т.д.

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

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

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.