Документация для разработчиков

GetByID

array
CSaleBasket::GetByID(
  int ID
);

Метод возвращает параметры записи корзины с кодом ID. Нестатический метод.

Параметры вызова

ПараметрОписание
ID Код записи.

Возвращаемые значения

Возвращается ассоциативный массив параметров с ключами:

Ключ Описание
ID Код записи.
PRODUCT_ID Уникальный в рамках модуля код товара.
PRODUCT_PRICE_ID Дополнительный код товара.
PRICE Стоимость единицы товара.
CURRENCY Валюта стоимости единицы товара.
WEIGHT Вес единицы товара.
QUANTITY Количество единиц товара.
LID Сайт, на котором сделана покупка.
DELAY Флаг "товар отложен" (Y/N)
CAN_BUY Флаг "товар можно купить" (Y/N)
NAME Название товара.
CALLBACK_FUNC* Название функции обратного вызова для поддержки актуальности корзины.
MODULE Модуль, добавляющий товар в корзину.
NOTES Особые заметки, например, тип цены.
ORDER_CALLBACK_FUNC* Название функции обратного вызова для оформления заказа.
DETAIL_PAGE_URL Ссылка на страницу детального просмотра товара.
FUSER_ID Внутренний код владельца корзины (не совпадает с кодом пользователя)
ORDER_ID Код заказа, в который вошла эта запись (товар). Для товаров, которые помещены в корзину, но ещё не заказаны, это поле равно NULL.
DATE_INSERT Дата добавления товара в корзину.
DATE_UPDATE Дата последнего изменения записи.
DISCOUNT_PRICE Скидка на товар. Значение устанавливается только после оформления заказа.
CANCEL_CALLBACK_FUNC* Название функции обратного вызова для отмены заказа.
PAY_CALLBACK_FUNC* Название функции обратного вызова, которая вызывается при установке флага заказа "Доставка разрешена".
PRODUCT_PROVIDER_CLASS** Имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider.

* - ключи считаются устаревшими, начиная с версии 12.5.
** - ключ доступен, начиная с версии 12.5.

Обратите внимание, что этот метод возвращает данные, которые были актуальны на момент последнего выполнения для этой записи функции обратного вызова для поддержки актуальности корзины (либо на момент добавления записи, если функция обратного вызова не выполнялась или не установлена).

Пример использования

<?
// Выведем актуальную корзину для текущего пользователя

$arBasketItems = array();

$dbBasketItems = CSaleBasket::GetList(
    array(
            "NAME" => "ASC",
            "ID" => "ASC"
        ),
    array(
            "FUSER_ID" => CSaleBasket::GetBasketUserID(),
            "LID" => SITE_ID,
            "ORDER_ID" => "NULL"
        ),
    false,
    false,
    array("ID",
          "CALLBACK_FUNC", 
          "MODULE", 
          "PRODUCT_ID", 
          "QUANTITY", 
          "DELAY", 
          "CAN_BUY", 
          "PRICE", 
          "WEIGHT")
    );

while ($arItems = $dbBasketItems->Fetch())
{
    if (strlen($arItems["CALLBACK_FUNC"]) > 0)
    {
        CSaleBasket::UpdatePrice($arItems["ID"], 
                                 $arItems["CALLBACK_FUNC"], 
                                 $arItems["MODULE"], 
                                 $arItems["PRODUCT_ID"], 
                                 $arItems["QUANTITY"]);
        $arItems = CSaleBasket::GetByID($arItems["ID"]);
    }

    $arBasketItems[] = $arItems;
}

// Печатаем массив, содержащий актуальную на текущий момент корзину
echo "<pre>";
print_r($arBasketItems);
echo "</pre>";
?>


© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх