---
title: actionValidateOrder
section: hooks
slug: actionValidateOrder
hook_type: action
category: order
location: FO+BO
since_version: 1.5
source_url: "https://ayudaprestashop.es/hooks/actionValidateOrder"
---

# Hook `actionValidateOrder`

| Propiedad | Valor |
| --- | --- |
| Tipo | Action |
| Localizacion | FO+BO |
| Categoria | order |
| Desde version | 1.5 |

## Descripcion

Se ejecuta cuando un pedido es completamente validado, es decir, despues de que el modulo de pago llame a validateOrder(). Es el hook mas importante del ciclo de vida de un pedido. Se dispara una sola vez por pedido, justo cuando el dinero es confirmado y el pedido queda registrado en la base de datos.

## Parametros

| Nombre | Tipo | Requerido | Descripcion |
| --- | --- | --- | --- |
| `cart` | `Cart` | si | Objeto Cart que origino el pedido |
| `order` | `Order` | si | Objeto Order recien creado |
| `customer` | `Customer` | si | Cliente que realizo el pedido |
| `currency` | `Currency` | si | Moneda del pedido |
| `orderStatus` | `OrderState` | si | Estado inicial del pedido |
| `id_order` | `int` | si | ID del pedido creado |
| `extraVars` | `array` | no | Variables extra del modulo de pago |

## Valor de retorno

- **Tipo**: `void`
- **Descripcion**: Este hook no espera valor de retorno

## Disparado por

| Contexto | Clase | Metodo | Fichero |
| --- | --- | --- | --- |
| PaymentModule | `PaymentModule` | `validateOrder()` | `classes/PaymentModule.php` |

**Paginas**: `order-confirmation`

## Registro del hook

```php
<?php
// En el metodo install() de tu modulo:
public function install()
{
    return parent::install()
        && $this->registerHook('actionValidateOrder');
}
```

## Ejemplo de uso

```php
<?php
/**
 * Hook actionValidateOrder
 * Se ejecuta cuando el pedido es confirmado
 */
public function hookActionValidateOrder(array $params)
{
    /** @var Order $order */
    $order    = $params['order'];
    /** @var Cart $cart */
    $cart     = $params['cart'];
    /** @var Customer $customer */
    $customer = $params['customer'];
    /** @var Currency $currency */
    $currency = $params['currency'];

    // Ejemplo: Enviar notificacion a sistema externo
    $data = [
        'order_id'    => $order->id,
        'reference'   => $order->reference,
        'total'       => $order->total_paid,
        'currency'    => $currency->iso_code,
        'customer'    => $customer->email,
        'date'        => date('Y-m-d H:i:s'),
    ];

    // Registrar en la BD del modulo
    Db::getInstance()->insert('my_order_export', [
        'id_order'   => (int)$order->id,
        'data'       => pSQL(json_encode($data)),
        'created_at' => date('Y-m-d H:i:s'),
    ]);

    // Enviar webhook
    // $this->sendWebhook($data);
}
```

## Notas y gotchas

- Este hook se ejecuta una sola vez por pedido, cuando el pago es confirmado.
- El parametro $params['order'] ya tiene id > 0 — el pedido ya esta en la BD.
- Si necesitas ejecutar logica despues de que el estado del pedido sea asignado, usa actionOrderStatusUpdate.
- Evita operaciones pesadas o peticiones HTTP sincronas en este hook — pueden bloquear al cliente en la pagina de confirmacion.
- El carrito ($params['cart']) ya NO esta activo en este punto — ha sido 'consumido' para crear el pedido.
- Para crear facturas o documentos PDF despues del pedido, usa actionSetInvoice en su lugar.

## Hooks relacionados

- [`actionOrderHistoryAddAfter`](https://ayudaprestashop.es/hooks/actionOrderHistoryAddAfter)
- [`actionOrderStatusUpdate`](https://ayudaprestashop.es/hooks/actionOrderStatusUpdate)
- [`actionPaymentConfirmation`](https://ayudaprestashop.es/hooks/actionPaymentConfirmation)
- [`actionSetInvoice`](https://ayudaprestashop.es/hooks/actionSetInvoice)
- [`displayOrderConfirmation`](https://ayudaprestashop.es/hooks/displayOrderConfirmation)

## Guias relacionadas

- [modules/main-file](https://ayudaprestashop.es/modules/main-file)
- [payment/payment-module](https://ayudaprestashop.es/payment/payment-module)
- [database/objectmodel-crud](https://ayudaprestashop.es/database/objectmodel-crud)

## Historial de versiones

| Version | Cambio |
| --- | --- |
| 1.5 | Introducido con los parametros basicos |
| 1.6 | Añadido el parametro extraVars |
| 1.7 | Sin cambios. Compatible con PS 1.7, 8.x y 9.x |


---

*Fuente: [https://ayudaprestashop.es/hooks/actionValidateOrder](https://ayudaprestashop.es/hooks/actionValidateOrder). Version Markdown generada automaticamente para consumo por LLMs.*
