2011-03-24 11 views
7

Necesito estrenar la página de éxito de pedidos de Magento /checkout/onepage/success/, pero como redirige cuando no hay una sesión de pedido, no puedo actualizar la página para verificar mis cambios.Magento cómo parar/pago/onepage/success/redirecting

¿Alguien sabe cómo puedo detener temporalmente esta redirección para fines de prueba?

Respuesta

24

Puede cambiar el archivo /app/code/core/Mage/Checkout/controllers/OnepageController.php. Modificar el successAction, por lo que se ve así:

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(); 
    } 

Recuerde retirar los comentarios cuando ya está!

+0

Perfecto! Gracias M_F! – sulman

+0

Impresionante ayuda mucho –

0

Firefox le permite deshabilitar las redirecciones HTTP, pero es posible que tenga que hackear temporalmente un controlador para permitirle permanecer en la página de todos modos.

+0

deshabilitar redirecciones HTTP no funcionó. ¿Tienes alguna idea de qué controlador necesito mirar? ¡Hay un millón de redirecciones realizadas en Magento! Gracias – sulman

0

Sugiero que reemplazar su successAction con este código:

/** 
* 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(); 
} 

Saludos

0

Mientras que los cambios en el código podría ser deseable, hay una extensión específicamente para esto:

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

Divulgación: de ninguna manera soy un codificador/dev, por lo que la ruta de extensión me atrae (aunque me siento cómodo haciendo estos cambios).

+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. – Ghost

0

Si alguien sería buscar misma solución para Magento 2 para detener la reorientación de la página éxito después de recarga de la página - aquí está:

rápida y solución sucia de depuración:

  1. abierto /vendor/magento/module-checkout/Controller/Onepage/Success.php
  2. Código de comentario

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

solución adecuada utilizando el módulo se puede encontrar aquí https://gielberkers.com/style-checkoutonepagesuccess-page-magento-2/

Cuestiones relacionadas