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

Здравствуйте! Хотелось бы спросить. После оформления заказа приходит письмо "Ваш

заказ № 311 принят". Там очень сложная ценовая политика (когда рассчитывать по мелкооптовым ценам, а когда по оптовым - в частности). Но в письме в любом случае приходит общая стоимость товаров проставляется согласно мелкооптовым ценам в любом случае, а это не правильно. Соответствующего почтового шаблона я не нашёл. А как это можно исправить? Помогите, пожалуйста.

19 ответов

13 просмотров
Вячеслав-Чешихин Автор вопроса

Вот что приходит

а в заказе все правильно проставляется?

Вячеслав-Чешихин Автор вопроса
Владислав Vlad
а в заказе все правильно проставляется?

Вот так вот в корзине. Сейчас пришлю как в заказе.

Вячеслав-Чешихин Автор вопроса
Владислав Vlad
а в заказе все правильно проставляется?

В принципе не правильно считается общая стоимость товаров. Она считается от мелкооптовой цены, а надо от оптовой цены.

Вячеслав Чешихин
screenshot Вот так вот в заказе считается

там срабатывает пересчет корзины. В корзине надо когда ложится проставить CUSTOM_PRICE=Y или пересчитывать корзину постоянно с помощью callback функции provider (класс можно расшарить через CatalogProductProvider) первый вариант я думаю предпочтителен. так не будет заходить в функцию каждый раз, когда корзина изменяется. Для второго варианта: грузите класс через registerAutoLoadClasses например: в init.php \Bitrix\Main\Loader::registerAutoLoadClasses( null, [ "Класс\\CatalogProductProvider" => "путь до файла, расшаривающего класс", ] ); в файле: use \Bitrix\Main\Loader; Loader::includeModule('catalog'); Loader::includeModule('sale'); class CatalogProductProvider extends \CCatalogProductProvider { public static function GetProductData($params) { //Получение готового массива цен $result = parent::GetProductData($params); делаете цену какой хотите, тут обработчики для смены цены меняете цену типа $result['PRICE'] = 1000; $result['BASE_PRICE'] = 1000; return $result; }}

Вячеслав-Чешихин Автор вопроса
Вячеслав Чешихин
В принципе не правильно считается общая стоимость ...

А функция onMyGetOptimalPrice проставляет оптимальную цену только мелкооптовую.

Вячеслав Чешихин
А функция onMyGetOptimalPrice проставляет оптималь...

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

Вячеслав-Чешихин Автор вопроса
Владислав Vlad
потому что этот метод выбирает самую наимешьную це...

Так я её переписал: она теперь выбирает только мелкооптовую цену. А есть функция onGetTotalPrice? Или что-то этого?

Вячеслав Чешихин
Так я её переписал: она теперь выбирает только мел...

при оформлении заказа цены пересчитываются с актуальными. делайте через CUSTOM_PRICE=Y или через провайдера пересчитывайте каждый раз. Тут решать вам уже.

Вячеслав Чешихин
А CUSTOM_PRICE - это что такое? Что она даёт?

Этим параметром вы говорите, чтобы сумма товара в корзине не пересчитывалась. Т.е. можете уставить свою цену в корзине с этим параметром, и она не будет пересчитываться, даже если пользователь решил сделать заказ через 1 месяц после того, как положил в корзину (и цена уже у товара другая). !!!! Будьте аккуратнее с этим параметром. Потому что пользователь может купить товар по сниженной цене.

Вячеслав-Чешихин Автор вопроса
Владислав Vlad
Этим параметром вы говорите, чтобы сумма товара в ...

Да, но если его установить в Y (CUSTOM_PRICE=Y), то скидки перестают считаться.

Вячеслав-Чешихин Автор вопроса
Вячеслав Чешихин
Да, но если его установить в Y (CUSTOM_PRICE=Y), т...

да. Тут уже надо хитрить. Пока я вижу только вариант пересчитывать корзину в событии перед оформлением заказа, и там уже применять скидки. Ядро d7 это позволяет сделать с минимальными запросами. https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events/order_saved.php В гугл поискать, то там есть "сделать применение правил корзины с корзиной" (это купоны, правила корзины).

Вячеслав Чешихин
А через провайдера - Вы что имели в виду?

провадер нужен только для особых случаев. Без необходимости я бы не стал его применять. Это метод нужен, когда необходимо перечитать конкретную позицию заказа в зависимости от различных условий. Например (можно его и через правила корзины наверное): заказали 3 штуки товара, надо чтобы цена товара была не 1000 руб, а 700 руб. То ставим 700, в корзину записывается 700. И каждый раз при пересчете корзины на каждой позиции корзины будет этот пересчет.

Вячеслав-Чешихин Автор вопроса
Владислав Vlad
да. Тут уже надо хитрить. Пока я вижу только вари...

Ну насчёт событий по этой ссылке - это по-моему то что нужно. Только Вы не подскажете какое именно событие использовать? saleOrderBeforeSavedменить общую сумму товаров.

Вячеслав Чешихин
Ну насчёт событий по этой ссылке - это по-моему то...

before !!! Но будьте внимательны: Но там по разному необходимо передавать данные. У before там описано. А события OnSaleOrderSaved надо делать $order-save() - только не зацикливаейте. При $order-save() сработает событие опять OnSaleOrderSaved там есть параметр IS_NEW - по нему ориентируйтесь, если используете его.

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Карта сайта