Проверяем наличие существующей корзины пользователя и выводим количество товаров, но не создаем новую запись FUSER, если корзины нет - идеально для страниц каталога где не требуется взаимодействие с корзиной.
Код |
---|
<?php
// fuser_check.php - проверяет наличие корзины у пользователя без создания новой записи
require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';
use Bitrix\Main\Loader;
use Bitrix\Main\Context;
use Bitrix\Sale\Fuser;
use Bitrix\Sale\Basket;
if (Loader::includeModule('sale')) {
$siteId = Context::getCurrent()->getSite();
$fuserId = Fuser::getId(true); // ТИХИЙ РЕЖИМ - не создаем новую запись
if ($fuserId === null) {
echo "У пользователя нет активной корзины (FUSER не создан)";
} else {
$basket = Basket::loadItemsForFUser($fuserId, $siteId);
$itemCount = 0;
foreach ($basket as $item) {
$itemCount += $item->getQuantity();
}
echo "FUSER_ID: {$fuserId}, Товаров в корзине: {$itemCount} шт.";
}
} else {
echo "Модуль sale не установлен";
}
require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php';
?> |