208 похожих чатов

Народ, есть задача. На сайте есть 3 типа цены (одна

базовая и ещё 2), разбиты по городам.

Появилась необходимость для одного пользователя сделать наценку вида price_id_3 +5%.

без создания нового типа цены с наценкой 5% эту задачу никак не решить? правило корзины не подходит, потому что цена будет пересчитываться в корзине, а нужно чтобы пользователь везде на сайте видел уже изменённые цены.

скидки в режиме "до конвертации"

12 ответов

20 просмотров

Вы ее и с типом цены не решите. Из перечня доступных выбирается минимальная.

Itachi-Vergil Автор вопроса
Eugene Zhukov
Вы ее и с типом цены не решите. Из перечня доступн...

почему не решу? создать price_id_4 в которую писать копию значения price_id_3 и наценку 5% и этому пользователю дать права на покупку только по price_id_4 и всё. просто я не хочу из-за этой мелочи новый тип цен создавать. на 100к товаров огромная лишняя нагрузка на БД с этими типами цен

Itachi Vergil
почему не решу? создать price_id_4 в которую писат...

Ваш пользователь находится в группе 2. Вы у этой группы тоже все права на остальные типы цен заберете?

Itachi-Vergil Автор вопроса
Eugene Zhukov
Ваш пользователь находится в группе 2. Вы у этой г...

тогда тем более надо без создания нового типа цен как-то придумать. нет способа транслировать цены заданные в правиле корзины на весь каталог?

Itachi-Vergil Автор вопроса
Eugene Zhukov
Наценки - нет

придумал тупой костыль. сделать в init.php функцию которая принимает вна вход любую стоимость, и проверяет по иду текущего пользователя свойство этого пользователя со значением наценки. и если оно есть, возвращает увеличенную на этот процент цифру. далее во всех шаблонах в каталоге в result_modifier.php надо будет подставить эту функцию для изменения цены выводимой в шаблоне. из подводных пока обнаружил что при переходе в корзину эта функция в шаблоне компонента catalog.item ломает загрузку страницы корзины. ещё что может выплыть неприятное? global $APPLICATION; $page = $APPLICATION->GetCurDir(); if ($page != '/basket/'){ foreach ($arResult['ITEM']['ITEM_PRICES'] as &$arPrice){ $rPrice = getDisplayMarkupPrice($arPrice['RATIO_PRICE']); if ($rPrice > 0){ $arPrice['RATIO_PRICE'] = $rPrice; } } }

Itachi Vergil
придумал тупой костыль. сделать в init.php функцию...

Если речь о штатных компонентах - то есть вы не удивитесь, что цена начнет "мигать" - то работает, то нет? Подсказываю - кеш компонент.

Itachi-Vergil Автор вопроса
Eugene Zhukov
Если речь о штатных компонентах - то есть вы не уд...

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

Itachi-Vergil Автор вопроса

А зачем скрипт считает цены на беке если это можно джиэсом сделать? К тому же способ фигня потому что кто-то может вырубить джиэс в браузере, и что тогда?

Itachi-Vergil Автор вопроса

Каким бы не был человек, это не должно ему ломать страницу с ценами. Но я понял, тут и без жс можно делать. Просто вставить в класс или ид враппера цены ид пользователя и выводить оба типа цены. И цсслм прописать видимость нужного блока только при наличии нужного класса/ида в обёртке😂 но тогда с сео придётся долго пыхтеть, если оно нужно для этих цен Слава богу что мне не нужно😁

Itachi Vergil
А зачем скрипт считает цены на беке если это можно...

тогда и цены ему не нужны, т.к. купить ничего не сможет * а если вырубить инет вместе с js уже ничего не спасет точно :)

без инета еще ладно, но без js невозможно *отсутствие инета собственно не мешает дальше работать с сайтом :) ну если конечно заморочиться основательно

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта