G
N
I
D
A
O
L

Получить текущую корзину со скидками / правила работы с корзиной




$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);