@Sinner3

Как получить все значения цен в битрикс?

На сайте реализовано два типа цен, для авторизованных и не авторизованных пользователей.
необходимо всегда знать значения этих цен.
При авторизации в массиве [PRICES]выводятся оба типа цен
Array
(
    [base_price] => Array
        (
            [PRICE_ID] => 1
            [ID] => 2293
            [CAN_ACCESS] => Y
            [CAN_BUY] => Y
            [MIN_PRICE] => N
            [CURRENCY] => RUB
            [VALUE_VAT] => 15
            [VALUE_NOVAT] => 15
            [DISCOUNT_VALUE_VAT] => 15
            [DISCOUNT_VALUE_NOVAT] => 15
            [ROUND_VALUE_VAT] => 15
            [ROUND_VALUE_NOVAT] => 15
            [VALUE] => 15
            [UNROUND_DISCOUNT_VALUE] => 15
            [DISCOUNT_VALUE] => 15
            [DISCOUNT_DIFF] => 0
            [DISCOUNT_DIFF_PERCENT] => 0
            [VATRATE_VALUE] => 0
            [DISCOUNT_VATRATE_VALUE] => 0
            [ROUND_VATRATE_VALUE] => 0
            [PRINT_VALUE_NOVAT] => 15 руб.
            [PRINT_VALUE_VAT] => 15 руб.
            [PRINT_VATRATE_VALUE] => 0 руб.
            [PRINT_DISCOUNT_VALUE_NOVAT] => 15 руб.
            [PRINT_DISCOUNT_VALUE_VAT] => 15 руб.
            [PRINT_DISCOUNT_VATRATE_VALUE] => 0 руб.
            [PRINT_VALUE] => 15 руб.
            [PRINT_DISCOUNT_VALUE] => 15 руб.
            [PRINT_DISCOUNT_DIFF] => 0 руб.
        )

    [web_prise] => Array
        (
            [PRICE_ID] => 3
            [ID] => 12819
            [CAN_ACCESS] => Y
            [CAN_BUY] => Y
            [MIN_PRICE] => Y
            [CURRENCY] => RUB
            [VALUE_VAT] => 14
            [VALUE_NOVAT] => 14
            [DISCOUNT_VALUE_VAT] => 14
            [DISCOUNT_VALUE_NOVAT] => 14
            [ROUND_VALUE_VAT] => 14
            [ROUND_VALUE_NOVAT] => 14
            [VALUE] => 14
            [UNROUND_DISCOUNT_VALUE] => 14
            [DISCOUNT_VALUE] => 14
            [DISCOUNT_DIFF] => 0
            [DISCOUNT_DIFF_PERCENT] => 0
            [VATRATE_VALUE] => 0
            [DISCOUNT_VATRATE_VALUE] => 0
            [ROUND_VATRATE_VALUE] => 0
            [PRINT_VALUE_NOVAT] => 14 руб.
            [PRINT_VALUE_VAT] => 14 руб.
            [PRINT_VATRATE_VALUE] => 0 руб.
            [PRINT_DISCOUNT_VALUE_NOVAT] => 14 руб.
            [PRINT_DISCOUNT_VALUE_VAT] => 14 руб.
            [PRINT_DISCOUNT_VATRATE_VALUE] => 0 руб.
            [PRINT_VALUE] => 14 руб.
            [PRINT_DISCOUNT_VALUE] => 14 руб.
            [PRINT_DISCOUNT_DIFF] => 0 руб.
        )

)

а если пользователь не авторизован то один
Array
(
    [base_price] => Array
        (
            [PRICE_ID] => 1
            [ID] => 2293
            [CAN_ACCESS] => Y
            [CAN_BUY] => Y
            [MIN_PRICE] => N
            [CURRENCY] => RUB
            [VALUE_VAT] => 15
            [VALUE_NOVAT] => 15
            [DISCOUNT_VALUE_VAT] => 15
            [DISCOUNT_VALUE_NOVAT] => 15
            [ROUND_VALUE_VAT] => 15
            [ROUND_VALUE_NOVAT] => 15
            [VALUE] => 15
            [UNROUND_DISCOUNT_VALUE] => 15
            [DISCOUNT_VALUE] => 15
            [DISCOUNT_DIFF] => 0
            [DISCOUNT_DIFF_PERCENT] => 0
            [VATRATE_VALUE] => 0
            [DISCOUNT_VATRATE_VALUE] => 0
            [ROUND_VATRATE_VALUE] => 0
            [PRINT_VALUE_NOVAT] => 15 руб.
            [PRINT_VALUE_VAT] => 15 руб.
            [PRINT_VATRATE_VALUE] => 0 руб.
            [PRINT_DISCOUNT_VALUE_NOVAT] => 15 руб.
            [PRINT_DISCOUNT_VALUE_VAT] => 15 руб.
            [PRINT_DISCOUNT_VATRATE_VALUE] => 0 руб.
            [PRINT_VALUE] => 15 руб.
            [PRINT_DISCOUNT_VALUE] => 15 руб.
            [PRINT_DISCOUNT_DIFF] => 0 руб.
        ) 
)

web_price для авторизованных
base_price для тех кто не авторизовался
как мне получить значения web_price вне зависимости авторизован пользователь или нет?
  • Вопрос задан
  • 4872 просмотра
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Разрешите просмотр обоих типов цен всем пользователям.
Настройка "Группы пользователей, имеющие права на просмотр этого типа цен"
5cee136384990886577047.png

Если это не поможет, то цену можно получить и через API
<?php

\Bitrix\Main\Loader::includeModule("catalog");

$allProductPrices = \Bitrix\Catalog\PriceTable::getList([
    "filter" => [
        "PRODUCT_ID" => $productId,
    ]
])->fetchAll();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
К ответу выше добавлю ещё метод CCatalogProduct::GetOptimalPrice(). точно не помню зачем он мне пригодится, но указанным выше getList не получалось достать какую то скидку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы