Информация по товарам в корзине с учетом всех примененных скидок и купонов

Информация по товарам в корзине с учетом всех примененных скидок и купонов

Просмотров: 742
Функция возвращает информацию по товарам в корзине с учетом всех примененных скидок и купонов
function getBasketWithFullDiscounts() {
    $fuserId = CSaleBasket::GetBasketUserID();
    $dbBasketItems = CSaleBasket::GetList(
        array("ID" => "ASC"),
        array(
            "FUSER_ID" => $fuserId,
            "LID" => SITE_ID,
            "ORDER_ID" => "NULL",
            "DELAY"=>"N"
        ),
        false,
        false,
        array(
            "ID", "NAME", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "PRODUCT_PRICE_ID", "QUANTITY", "DELAY", "CAN_BUY",
            "PRICE", "WEIGHT", "DETAIL_PAGE_URL", "NOTES", "CURRENCY", "VAT_RATE", "CATALOG_XML_ID",
            "PRODUCT_XML_ID", "SUBSCRIBE", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "TYPE", "SET_PARENT_ID"
        )
    );
    $allSum = 0;
    $allWeight = 0;
    $arResult = array();
    while ($arBasketItems = $dbBasketItems->Fetch())
    {
        $allSum += ($arBasketItems["PRICE"] * $arBasketItems["QUANTITY"]);
        $allWeight += ($arBasketItems["WEIGHT"] * $arBasketItems["QUANTITY"]);
        $arResult[] = $arBasketItems;
    }
    $arOrder = array(
        'SITE_ID' => SITE_ID,
        'USER_ID' => $GLOBALS["USER"]->GetID(),
        'ORDER_PRICE' => $allSum, // сумма всей корзины
        'ORDER_WEIGHT' => $allWeight, // вес всей корзины
        'BASKET_ITEMS' => $arResult // товары сами
    );
    $arOptions = array(
        'COUNT_DISCOUNT_4_ALL_QUANTITY' => "Y",
    );
    $arErrors = array();
    CSaleDiscount::DoProcessOrder($arOrder, $arOptions, $arErrors);
    return $arOrder;
}
#скидки_и_бонус

Ещё статьи:

02.04.2026 Разговоры о фрилансе
Предыстория - автор вопроса хочет войти в IT сферу, я человеку начал подсказывать в комментариях на форуме. На примере вопросов и ответов в разговоре можно увидеть типовые ошибки и непонимание начинающего, и в будущем избежать повторения ошибок.

21.03.2026 PHP файловый менеджер
Попался мне такой PHP файловый менеджер, вполне функциональный, выкладываю в копилку скриптов

21.03.2026 Ошибка CUser::IsAuthorized() cannot be called statically
Такая ошибка старых весрий битрикс давно известна. Нужно заменить CUser::IsAuthorized() на $USER->IsAuthorized(), но в моём случае я сначала не смог найти место, где же находится проблема.

© 2015-2026 Web админ
Связаться по WhatsApp