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:
$block->getRealOrderId();
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:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Checkout\Block\Success"
type="Vendor\Module\Block\Checkout\Success"/>
</config>
Luego en app/code/Vendor/Module/Block/Checkout/Success.php
:
<?php
namespace Vendor\Module\Block\Checkout;
class Success extends \Magento\Checkout\Block\Success
{
/**
* @return int
*/
public function getGrandTotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getGrandTotal();
}
}
No olvides lo usual app/code/Vendor/Module/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module" setup_version="0.0.1" />
</config>
Así como el app/code/Vendor/Module/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
Una vez que haya terminado y haya ejecutado los siguientes comandos:
php bin/magento module:enable Vendor_Module
php bin/magento setup:upgrade
Debería poder llamar a lo siguiente en su plantilla:
$block->getGrandTotal();
Agregar más métodos
Puede agregar lo siguiente que puede ser útil al realizar un seguimiento a la clase de bloque:
public function getSubtotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getSubtotal();
}
public function getDiscountAmount()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getDiscountAmount();
}
Entonces podrá llamar a lo siguiente desde su plantilla:
$block->getSubtotal();
$block->getDiscountAmount();