Работа с товарами каталога

Октябрь 18, 2018

Теги: Хранение данных, ORM, Магазин

Работа с товарами каталога с помощью класса "\Bitrix\Catalog\ProductTable".

Получение информации о товаре каталога (тип, количество и др.) с идентификатором в переменной $productId:


$result = \Bitrix\Catalog\ProductTable::getList(array(

    
'filter' => array('=ID'=>$productId),
));

if(
$product=$result->fetch())
{
    
print_r($product);
}

/*
Array
(
    [ID] => 18651
    [QUANTITY] => 25
    [QUANTITY_TRACE] => Y
    [WEIGHT] => 0
    [TIMESTAMP_X] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2018-10-17 21:27:39.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [PRICE_TYPE] => S
    [RECUR_SCHEME_LENGTH] => 
    [RECUR_SCHEME_TYPE] => D
    [TRIAL_PRICE_ID] => 
    [WITHOUT_ORDER] => N
    [SELECT_BEST_PRICE] => N
    [VAT_ID] => 
    [VAT_INCLUDED] => Y
    [CAN_BUY_ZERO] => N
    [NEGATIVE_AMOUNT_TRACE] => N
    [TMP_ID] => 
    [PURCHASING_PRICE] => 
    [PURCHASING_CURRENCY] => 
    [BARCODE_MULTI] => N
    [QUANTITY_RESERVED] => 0
    [SUBSCRIBE] => Y
    [WIDTH] => 
    [LENGTH] => 
    [HEIGHT] => 
    [MEASURE] => 5
    [TYPE] => 1
    [AVAILABLE] => Y
    [BUNDLE] => N
)

предустановленные константы:

STATUS_YES = 'Y';
STATUS_NO = 'N';
STATUS_DEFAULT = 'D';

TYPE_PRODUCT = 1; // простой товар
TYPE_SET = 2; // набор
TYPE_SKU = 3; // товар с предложениями
TYPE_OFFER = 4; // предложение
TYPE_FREE_OFFER = 5;
TYPE_EMPTY_SKU = 6;

PAYMENT_TYPE_SINGLE = 'S';
PAYMENT_TYPE_REGULAR = 'R';
PAYMENT_TYPE_TRIAL = 'T';

PAYMENT_PERIOD_HOUR = 'H';
PAYMENT_PERIOD_DAY = 'D';
PAYMENT_PERIOD_WEEK = 'W';
PAYMENT_PERIOD_MONTH = 'M';
PAYMENT_PERIOD_QUART = 'Q';
PAYMENT_PERIOD_SEMIYEAR = 'S';
PAYMENT_PERIOD_YEAR = 'Y';
PAYMENT_PERIOD_DOUBLE_YEAR = 'T';

PRICE_MODE_SIMPLE = 'S';
PRICE_MODE_QUANTITY = 'Q';
PRICE_MODE_RATIO = 'R';
*/

Выборка дополнительно информации из элемента инфоблока, связанного с этим товаром (название, символьный код):


$result = \Bitrix\Catalog\ProductTable::getList(array(

    
'filter' => array('=ID'=>$productId),
    
'select' => array('ID','QUANTITY','NAME'=>'IBLOCK_ELEMENT.NAME','CODE'=>'IBLOCK_ELEMENT.CODE'),
));

if(
$product=$result->fetch())
{
    
print_r($product);
}

/*
Array
(
    [ID] => 18651
    [QUANTITY] => 25
    [NAME] => Название товара
    [CODE] => nazvanie-tovara
)
*/

← Переход к списку