Si vuelvo a cargar la checkout/onepage/success
página, me dirigen al carrito.
Entonces, al depurar o diseñar la página de éxito del pedido, siempre tengo que hacer un nuevo pedido.
¿Cómo puedo hacer esto de manera más eficiente?
checkout
development
Alex
fuente
fuente
Respuestas:
Puede hackear temporalmente el núcleo mientras desarrolla:
En
/app/code/core/Mage/Checkout/controllers/OnepageController.php
ediciónsuccessAction()
.Comenta la línea
$session->clear();
. Ahora puede hacer un pedido y actualizar la página con la frecuencia que desee.Si ni siquiera desea hacer un pedido en cada navegador, por ejemplo, cuando realiza pruebas entre navegadores, también puede inicializar la sesión cada vez.
Elija un ID de pedido y un ID de presupuesto de la tabla
sales_flat_order
(campos:entity_id
yquote_id
). Por ejemplo a través de:Luego cambie el comienzo de la función de la siguiente manera:
y reemplazar
INSERT_....
con las identificaciones.Ahora siempre puedes llamar
checkout/onepage/success
Mientras lo hace, es posible que también desee probar el
failureAction()
, enLa acción modificada se vería así
Ahora siempre puedes llamar
checkout/onepage/failure
fuente
\vendor\magento\module-checkout\Controller\Onepage\Success.php
Necesita modificar el successAction () en
A la acción modificada le gustaría esto
fuente
$lastOrderId
no está definido qué pasaría a un aviso y podría provocar efectos secundarios en la plantilla.Espero no promocionarme demasiado, pero creé una extensión gratuita que se puede instalar rápidamente en Magento y le permite obtener una vista previa de la página de éxito del pedido para cualquier pedido, simplemente accediendo a una URL: http: // www. yireo.com/software/magento-extensions/checkout-tester
fuente
Creo que es mejor comentar $ session-> clear (); y agregar productos manualmente, eso funcionó para mí, pero comentar toda la acción me dio errores de sintaxis.
fuente
Para Magento 2:
Si desea diseñar o personalizar en la página de éxito después de la página de éxito del pedido, se redirige a la página del carrito.
Ahora la solución está aquí:
Ir a
vendor/magento/module-checkout/Controller/Onepage
abrirSuccess.php
archivo.En este archivo, verá el siguiente código
Simplemente comente sobre este código y su problema está resuelto. Después de comentar esto, no lo redirige a la página del carrito.
fuente
En lugar de enviar correos electrónicos desde una copia local / de desarrollo, puede volcar el contenido del correo electrónico en un archivo y luego verlo localmente, lo que en mi opinión será realmente útil. Así es como se puede lograr. Primero todos los correos electrónicos se envían desde
Encuentra eso y agrega las siguientes líneas.
Después de esto, después de crear cualquier pedido, se creará un email.html en la raíz del documento de Magento y puede abrirlo en el navegador para ver el resultado.
A continuación, para enviar / volver a enviar correos electrónicos de pedidos, puede iniciar sesión en el administrador y para cada pedido hay un botón Enviar correo electrónico que activará este script y podrá ver la plantilla recién modificada escrita en el mismo archivo. Creo que esta es una de las mejores formas de ver el pedido o cualquier otro correo electrónico.
Tenga en cuenta que debe eliminar el código agregado cuando haya terminado.
fuente
Tienes que actualizar el código:
Función de actualización:
Solo comenta:
fuente
Magento 2
Como señala otra respuesta, puede comentar la redirección
Magento\Checkout\Controller\Onepage\Success::execute
y forzar la carga de la página de pago exitoso. Pero cuando el bloqueMagento\Checkout\Block\Onepage\Success
no carga, no habrá datos de pedido porqueMagento\Checkout\Model\Session::getLastRealOrder
no devolverá un pedido. Una mejor opción sería un interceptor posterior en el método de ejecución de la clase de controlador, donde puede establecer un valorlastRealOrderId
en la sesión de pago.Este enfoque también brinda la oportunidad de enviar el
checkout_onepage_controller_success_action
evento con el pedido deseado. El evento activará a los observadoresMagento\GoogleAdwords\Observer\SetConversionValueObserver
yMagento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
con sus datos de prueba.El siguiente es un módulo bastante básico que crea el interceptor descrito anteriormente y permite establecer el orden agregando un
order
parámetro de consulta con el ID de incremento deseado a la URL de la página de éxito. Actualmente no funcionará en la ruta del éxito de multipunto. Se puede descargar en github: https://github.com/pmclain/magento2-successtestfuente