Magento, как остановить / оформить заказ / одну страницу / успех / перенаправление - PullRequest
8 голосов
/ 24 марта 2011

Мне нужно стилизовать страницу успеха заказа Magento /checkout/onepage/success/, но, поскольку она перенаправляет, когда нет сеанса заказа, я не могу обновить страницу, чтобы проверить мои изменения!

Кто-нибудь знает, как я могу временно остановитьэтот редирект для тестирования?

Ответы [ 6 ]

25 голосов
/ 24 марта 2011

Вы можете изменить файл /app/code/core/Mage/Checkout/controllers/OnepageController.php. Измените successAction, чтобы оно выглядело так:

 public function successAction()
    {
       /*
        $session = $this->getOnepage()->getCheckout();
        if (!$session->getLastSuccessQuoteId()) {
            $this->_redirect('checkout/cart');
            return;
        }

        $lastQuoteId = $session->getLastQuoteId();
        $lastOrderId = $session->getLastOrderId();
        $lastRecurringProfiles = $session->getLastRecurringProfileIds();
        if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
            $this->_redirect('checkout/cart');
            return;
        }

        $session->clear();
        */


        $this->loadLayout();
        $this->_initLayoutMessages('checkout/session');
        Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId)));
        $this->renderLayout();
    }

Не забудьте удалить комментарии, когда вы закончите!

3 голосов
/ 31 августа 2018

Вы можете остановить перенаправление страницы успешной проверки после обновления страницы, для стилизации и тестирования, с помощью следующего кода:

Перейдите к этому файлу:

vendor/magento/module-checkout/Controller/Onepage/Success.php

и оставьте комментарий Out Line No: 22 * ​​1006 *

//$session->clearQuote();

Теперь вы сможете обновлять и отлаживать страницу успеха без перенаправления.

1 голос
/ 02 мая 2017

Если кто-то будет искать то же решение для Magento 2 , чтобы прекратить перенаправление со страницы успеха после перезагрузки страницы - вот оно:

Быстрое и грязное решение дляотладка:

  1. Открыть /vendor/magento/module-checkout/Controller/Onepage/Success.php
  2. Код комментария

/* if (!$this->_objectManager->get('Magento\Checkout\Model\Session\SuccessValidator')->isValid()) { return $this->resultRedirectFactory->create()->setPath('checkout/cart'); } $session->clearQuote(); */

Правильное решение с использованием модуля можно найти здесь https://gielberkers.com/style-checkoutonepagesuccess-page-magento-2/

1 голос
/ 14 января 2015

Хотя изменения кода могут быть желательными, специально для этого есть расширение:

https://www.yireo.com/blog/1672-testing-the-magento-checkout-success-page

Раскрытие информации: я ни в коем случае не кодер / dev, поэтому маршрут расширенияобращается ко мне (даже если мне удобно вносить эти изменения).

1 голос
/ 13 февраля 2014

Предлагаю заменить ваш успех на следующий код:

/**
 * Order success action
 */
public function successAction()
{

    $session = $this->getOnepage()->getCheckout();        

    $session->setLastSuccessQuoteId(20);  // <<< add your order entity ID
    $session->setLastQuoteId(20);  // <<< add your order entity ID
    $session->setLastOrderId(20);  // <<< add your order entity ID

    if (!$session->getLastSuccessQuoteId()) {
        $this->_redirect('checkout/cart');
        return;
    }

    $lastQuoteId = $session->getLastQuoteId();
    $lastOrderId = $session->getLastOrderId();
    $lastRecurringProfiles = $session->getLastRecurringProfileIds();
    if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
        $this->_redirect('checkout/cart');
        return;
    }

    #$session->clear();  // <<< comment it

    $this->loadLayout();
    $this->_initLayoutMessages('checkout/session');
    Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId)));
    $this->renderLayout();
}

С уважением

0 голосов
/ 24 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...