Если вы переопределяете контроллер успеха Onepage и реализуете свою собственную логику, в этом случае вы не получите LastOrderId в событии 'checkout_onepage_controller_success_action', которое отправляется в контроллер действия успеха.
Вот почему он генерирует исключения ввода 'Id required'.
Избегать переопределения действия контроллера Onepage
<preference for="Magento\Checkout\Controller\Onepage\Success" type="Arman\Checkout\Controller\Onepage\Success" />
Вместо того, чтобы интегрировать ваш конкретный фрагмент кода в контроллер успеха, попробуйте использовать наблюдатель checkout_onepage_controller_success_action, который отправляется в контроллер действия успеха, и реализуйте свою логику в наблюдателе.
public function execute(\Magento\Framework\Event\Observer $observer)
{
try {
$orderIds = $observer->getEvent()->getOrderIds();
//enter code here
} catch (Exception $e) {
}
}
Надеюсь, это решит вашу проблему, так как я получаю ту же ошибку, и она решается для меня с помощью этого подхода
Снимок экрана с ошибкой