@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 вне зависимости авторизован пользователь или нет?
  • Вопрос задан
  • 5244 просмотра
Решения вопроса 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 не получалось достать какую то скидку.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы