Условия обработки персональных данных

Сайт использует технические и персональные данные пользователей для получения маркетинговой и статистической информации. Условия обработки персональных данных посетителей можно ознакомиться по ссылке.

В случае Вашего не согласия с этими условиями - просим Вас покинуть данный сайт. Если Вы продолжаете находиться и использовать сайт - Вы автоматически выражаете свое согласие с условиями обработки персональных данных пользователей сайта

X

bitrix — структура уровней цен товара (как хранятся цены товара). Отличие Add2BasketByProductID и Add2Basket

Суть уровней цен в битриксе : есть табличка
b_catalog_price
В ней хранятся записи по принципу Один ко многим :
т.е один элемент каталога (инфоблока) имееет много цен. У меня на сайте — 4 типа цены.

Я отфильтровал на картинке

имеем. Для товара с id =5118 есть 4 записи . CATALOG_GROUP_ID — это тип цены.

А теперь мы переходим к добавлению в корзину.

Add2BasketByProductID($_REQUEST[«item»], $_REQUEST[«quantity»]); — в эту функцию мы засовываем id товара и его количество. А функция сама выбирает наименьшую цену.
А если воспользоваться Add2Basket(Id цен из таблички на картинке, количество ) ( https://bxapi.ru/src/?module_id=catalog&name=Add2Basket ), то мы добавим в корзину именно ту цену, что нам нужна!!!
Если вызвать Add2Basket без параметров- она все равно добавит наименьшую цену.
Что бы добавилась цена что надо
надо прописать вот так

Аналогичная запись будет , если использовать вот такую функцию

Если из записи

удалить PRODUCT_PROVIDER_CLASS — то цена будет видна зачеркнутая со скидкой (в продуктах аспро) . Точно не проверял, как корректно они уже отрабатывают.

В итоге можно смотреть в сторону провайдера цен.
Провайдер цен можно найти на этом сайте (https://ftask.ru/провайдерцен) . У интерволги запросить (https://www.intervolga.ru/blog/projects/personalnye-tseny-i-skidki-v-internet-magazine-na-1c-bitriks/) или же где то еще.

Оставить ответ