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 PSCambio
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.