DISPLAY BO Desde 1.7.7

displayAdminOrderSide

~3 min de lectura

#Descripcion

Añade un panel lateral en la vista de detalle del pedido en el back office. Desde PS 1.7.7, la vista de pedido tiene un layout de dos columnas: la columna principal (detalles del pedido) y una columna lateral derecha. Este hook permite insertar contenido en la columna lateral — ideal para informacion complementaria como datos de envio, notas internas, integraciones con ERP, etc.

📍
Disparado por
  • OrderController (Symfony)::viewAction()src/PrestaShopBundle/Controller/Admin/Sell/Order/OrderController.php

#Parametros

Nombre Tipo Requerido Descripcion
$id_order int Si ID del pedido que se esta visualizando
Retorno
string HTML del panel lateral

#Ejemplo de codigo

mymodule.php
php
public function install()
{
    return parent::install()
        && $this->registerHook('displayAdminOrderSide');
}
mymodule.php
php
/**
 * Hook displayAdminOrderSide — Panel de notas internas
 */
public function hookDisplayAdminOrderSide($params)
{
    $id_order = (int)$params['id_order'];
    $order = new Order($id_order);

    if (!Validate::isLoadedObject($order)) {
        return '';
    }

    // Cargar notas internas del pedido
    $notes = Db::getInstance()->executeS(
        'SELECT * FROM `' . _DB_PREFIX_ . 'mymodule_order_notes`
         WHERE id_order = ' . $id_order . '
         ORDER BY date_add DESC'
    );

    $customer = new Customer($order->id_customer);
    $carrier = new Carrier($order->id_carrier);

    $this->context->smarty->assign([
        'id_order'      => $id_order,
        'order'         => $order,
        'notes'         => $notes,
        'customer_name' => $customer->firstname . ' ' . $customer->lastname,
        'carrier_name'  => $carrier->name,
        'ajax_url'      => $this->context->link->getAdminLink('AdminModules', true, [], [
            'configure' => $this->name,
            'action' => 'saveNote',
            'ajax' => 1,
        ]),
        'module_path'   => $this->_path,
    ]);

    return $this->display(__FILE__, 'views/templates/admin/order-side-panel.tpl');
}

#Notas y gotchas

  • ⚠️ Solo disponible desde PS 1.7.7 — en versiones anteriores no existe la vista de pedido con columna lateral.
  • ⚠️ El contenido se renderiza como un panel Bootstrap 4 Card en la columna derecha.
  • ⚠️ Tambien existen `displayAdminOrderTabLink` y `displayAdminOrderTabContent` para añadir tabs en la columna principal.
  • ⚠️ Para añadir botones en la barra de acciones del pedido, usa `actionGetAdminOrderButtons`.
  • ⚠️ El HTML debe seguir las convenciones CSS del admin Symfony (Bootstrap 4, clases card, card-header, card-body).

#Relacionados

#Historial de versiones

Version PSCambio
1.7.7 Introducido con la nueva vista de pedido Symfony
8.0 Sin cambios — sigue disponible en la misma posicion
Descargar en Markdown Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.