Как лучше увидеть конкретный тип цены для конкретного клиента?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: не получается настроить 1С-Битрикс: Управление сайтом 25.750.0.
По вводным: 1. Нужно чтобы на каждого пользователя был свой тип цены
Сейчас ситуация такая: 2. Товары, на которые в типе цены нет значения не отображались у пользователя

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

По вводным: так же что удивительно, на конкретном примере для пользователя с типом цены "Перекресток (вид цены)":
6928069c3a37e474222501.png

Нужно понять: улитки с шоколадом нет в наличии, в настройках товара цена есть и количество. Какие настройки ещё нужны, чтобы магия заработала?
69281cf4b9660343955042.png
69281cfce83a6478764192.png

По вводным: прочие настройки и корзина:
69281cc21df6b163782986.png
69281ccd812ac044212462.png
69281cdabec36277654421.png
69281ce5b38e5865880797.png

Подскажите, куда копать.

По вводным: p.S. Товары импортированы из 1С, если причина беды может крыться в этом.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

В 1С-Битрикс конкретный тип цены для конкретного клиента зависит от групп пользователя, настроек типов цен и прав доступа к ним. В каталоге цена выбирается не просто “по клиенту”, а по тому, какие группы назначены пользователю и какие типы цен доступны этим группам.

Проверьте в админке: Магазин/Каталог → Типы цен. У каждого типа цены есть группы пользователей, которым разрешён просмотр и покупка. Если клиент не входит в нужную группу, он не увидит нужную цену.

В коде можно проверить группы текущего пользователя:

global $USER;
$groups = $USER->GetUserGroupArray();
print_r($groups);

global $USER; $groups = $USER->GetUserGroupArray(); print_r($groups);

Для получения цен товара используйте API каталога. В старом коде часто встречается CPrice::GetList, но в новых проектах лучше смотреть актуальные классы модуля catalog. Пример старого подхода для диагностики:

$res = CPrice::GetList(
    array(),
    array('PRODUCT_ID' => $productId)
);
while ($price = $res->Fetch()) {
    print_r($price);
}

$res = CPrice::GetList( array(), array('PRODUCT_ID' => $productId) ); while ($price = $res->Fetch()) { print_r($price); }

Если используется SKU, цена может быть не у родительского товара, а у торгового предложения. Тогда нужно проверять ID offer, а не ID основного элемента.

Также проверьте кэш компонента. После изменения групп или типов цен старый кэш может показывать прежние значения. Для диагностики временно отключите кэш или сбросьте его.

Итог: определите группы пользователя, проверьте права типа цены, убедитесь, что смотрите цену правильного товара/SKU, и очистите кэш. Если нужна персональная цена для клиента, обычно это решается группами пользователей или отдельной логикой скидок, а не ручным выбором в шаблоне.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно