Estoy tratando de obtener el total del pedido en la página de éxito en magento 2, he agregado este código
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$totall = $order->getGrandTotal();
?>
Pero recibo un error cuando llego a la página de éxito después de realizar un pedido, supongo que el código funciona para magento 1 pero no 2. ¿Cómo puedo hacer que esto funcione también en magento 2?
Respuestas:
Magento 2.1
El bloque mencionado a continuación es ahora
Magento\Checkout\Block\Onepage\Success
Magento 2.0
Lo único que puede recuperar de forma nativa en esta página es la identificación del pedido utilizando el
getRealOrderId()
método definido enMagento\Checkout\Block\Success
Por lo tanto, para obtener la identificación del pedido, puede llamar a lo siguiente en su plantilla:
Sin embargo, entiendo que eso no es exactamente lo que necesitas.
En ese caso, aunque podría usar el administrador de objetos directamente, no se recomienda. Debe usar un módulo personalizado para definir las preferencias para este bloque .
En
app/code/Vendor/Module/etc/frontend/di.xml
necesita el siguiente código:Luego en
app/code/Vendor/Module/Block/Checkout/Success.php
:No olvides lo usual
app/code/Vendor/Module/etc/module.xml
Así como el
app/code/Vendor/Module/registration.php
Una vez que haya terminado y haya ejecutado los siguientes comandos:
Debería poder llamar a lo siguiente en su plantilla:
Agregar más métodos
Puede agregar lo siguiente que puede ser útil al realizar un seguimiento a la clase de bloque:
Entonces podrá llamar a lo siguiente desde su plantilla:
fuente
echo get_class($block);
para verificar si la anulación funciona, pero si el bloque no se procesa, eso probablemente no funcionaráSolo abre
Magento_Checkout/frontend/templates/success.phtml
Y poner el siguiente código en el archivo
En el código anterior obtendrá todos los datos del pedido en la página de éxito.
Gracias
fuente
Hasta donde yo sé, hay un evento,
checkout_onepage_controller_success_action
que se dispara después de que la página Checkout one se realice correctamente.vendor / magento / module-checkout / Controller / Onepage / Success.php
Como podemos ver, podemos obtener la identificación del pedido usando Observer. Por ejemplo:
Eche un vistazo a los módulos de google para obtener más detalles:
vendor / magento / module-google-adwords
vendor / magento / module-google-analytics
fuente