Ошибка страницы успеха заказа - PullRequest
0 голосов
/ 02 мая 2018

Мне удалось разработать модуль, который перенаправляет клиентов на платежный шлюз (внешний URL) после нажатия кнопки PlaceOrder. После завершения транзакции на платежном шлюзе я перенаправляю на контроллер в Magento, и это позволяет мне получить статус транзакции и безопасно перейти к пользовательской таблице. После сохранения я перенаправляю на checkout_onepage_success.xml и включаю свой шаблон = "Vendor_Module :: checkout / success.phtml", но получаю сообщение об ошибке -

1 exception(s): Exception #0 (Magento\Framework\Exception\InputException): Id required

1 Ответ

0 голосов
/ 11 мая 2018

Если вы переопределяете контроллер успеха 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) {

        }
    }

Надеюсь, это решит вашу проблему, так как я получаю ту же ошибку, и она решается для меня с помощью этого подхода

Снимок экрана с ошибкой

...