DISPLAY
FO
Desde 1.5
displayOrderConfirmation
~3 min de lectura
#Descripcion
Muestra contenido en la pagina de confirmacion del pedido, justo despues de que el cliente complete la compra. Es el lugar ideal para mostrar informacion adicional post-compra: codigos de seguimiento, instrucciones de descarga, mensajes de agradecimiento, pixel de conversion para publicidad (Google Ads, Facebook), y cross-selling.
Disparado por
-
OrderConfirmationControllerCore::initContent()— controllers/front/OrderConfirmationController.php
#Parametros
| Nombre | Tipo | Requerido | Descripcion |
|---|---|---|---|
| $order | Order | Si | Objeto Order del pedido recien creado |
| $objOrder | Order | Si | Alias del objeto Order (compatibilidad) |
| $cart | Cart | No | Carrito que origino el pedido (PS 1.7+) |
| $customer | Customer | No | Cliente que realizo el pedido (PS 1.7+) |
| $currency | Currency | No | Moneda del pedido (PS 1.7+) |
Retorno
string
HTML que se muestra en la pagina de confirmacion
#Ejemplo de codigo
mymodule.php
php
public function install()
{
return parent::install()
&& $this->registerHook('displayOrderConfirmation');
}
mymodule.php
php
/**
* Hook displayOrderConfirmation — Pixel de conversion + mensaje
*/
public function hookDisplayOrderConfirmation($params)
{
/** @var Order $order */
$order = $params['order'] ?? $params['objOrder'];
if (!Validate::isLoadedObject($order)) {
return '';
}
$currency = new Currency($order->id_currency);
$products = $order->getProducts();
// Preparar datos para el pixel de conversion
$conversionData = [
'order_id' => $order->reference,
'total' => (float)$order->total_paid_tax_incl,
'currency' => $currency->iso_code,
'num_items' => count($products),
'product_ids' => array_column($products, 'product_id'),
];
$this->context->smarty->assign([
'order' => $order,
'order_reference' => $order->reference,
'total_paid' => Tools::displayPrice($order->total_paid_tax_incl, $currency),
'conversion_data' => json_encode($conversionData),
'products' => $products,
]);
return $this->display(__FILE__, 'views/templates/hook/order-confirmation.tpl');
}
template.tpl
smarty
{hook h='displayOrderConfirmation'}
#Notas y gotchas
- ⚠️ Este hook se ejecuta UNA SOLA VEZ por pedido — cuando el cliente ve la pagina de confirmacion.
- ⚠️ Si el cliente recarga la pagina, el hook se vuelve a ejecutar. No uses este hook para logica que solo deba ocurrir una vez (usa `actionValidateOrder` para eso).
- ⚠️ Los parametros `cart`, `customer` y `currency` solo estan disponibles en PS 1.7+.
- ⚠️ Es el lugar correcto para pixels de conversion de Google Ads, Facebook, etc.
- ⚠️ Tambien existe `displayOrderConfirmation2` que se ejecuta despues de este.
#Relacionados
#Historial de versiones
| Version PS | Cambio |
|---|---|
| 1.5 | Introducido con parametros order y objOrder |
| 1.7 | Añadidos parametros cart, customer y currency |
Descargar en Markdown
Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.