Суть вопроса такова: при переходе на страницу оформления заказа заполняем все поля и нажимаем "оформить заказ" и тут начинается ожидание в районе 10 секунд если с сайтом все норм.
При поиске места тормозов - простым путем сохранения меток времени в файл на различные части кода получил что 10 секунд выполняется именно вызов сохранения
$res = $this->order->save();
полез глубже и вышел на то, что тормозит вот этот вызов в модуле sale
$event = new Main\Event('sale', EventActions::EVENT_ON_ORDER_SAVED, array(
'ENTITY' => $this,
'IS_NEW' => $isNew,
'IS_CHANGED' => $isChanged,
'VALUES' => $oldEntityValues,
));
$event->send();
добавил в class Event extends \Bitrix\Main\Event в конструкт сохранять вызовы с параметрами и получил
** 25:24
Array
(
[0] => sale
[1] => \Bitrix\Sale\Internals\OrderDiscountData::OnAfterAdd
[2] => Array
(
[id] => 1722154
[primary] => Array
(
[ID] => 1722154
)
[fields] => Array
(
[ORDER_ID] => 294149
[ENTITY_TYPE] => 32
[ENTITY_ID] => 294149
[ENTITY_VALUE] => 294149
[ENTITY_DATA] => Array
(
[MODE] => 2
[CONFIG] => Array
(
)
)
)
)
)
** 25:34
Array
(
[0] => sale
[1] => OrderOnBeforeUpdate
[2] => Array
(
[id] => Array
(
[ID] => 294149
)
[fields] => Array
(
[BX_USER_ID] => 2855c84dfc529d0589786fce751f2367
)
)
)
Насколько я понимаю из этого - то происходит пересчет скидок после сохранения заказа и он выполняется как раз мои 10 секунд. Как найти что является причиной такого долгого пересчета?