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

# Hook `actionOrderStatusPostUpdate`

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

## Descripcion

Se ejecuta DESPUES de que el nuevo estado del pedido haya sido guardado en la base de datos. A diferencia de actionOrderStatusUpdate, aqui el cambio ya es efectivo. Es el lugar adecuado para ejecutar acciones que dependan de que el estado este confirmado, como generar documentos, actualizar inventario externo o registrar logs.

## Parametros

| Nombre | Tipo | Requerido | Descripcion |
| --- | --- | --- | --- |
| `newOrderStatus` | `OrderState` | si | Nuevo estado del pedido ya guardado |
| `id_order` | `int` | si | ID del pedido afectado |
| `order` | `Order` | no | Objeto Order del pedido (disponible desde PS 1.7.7) |

## Valor de retorno

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

## Disparado por

| Contexto | Clase | Metodo | Fichero |
| --- | --- | --- | --- |
| OrderHistory | `OrderHistory` | `changeIdOrderState()` | `classes/order/OrderHistory.php` |

**Paginas**: `admin-orders`, `order-confirmation`

## Registro del hook

```php
<?php
public function install()
{
    return parent::install()
        && $this->registerHook('actionOrderStatusPostUpdate');
}
```

## Ejemplo de uso

```php
<?php
/**
 * Hook actionOrderStatusPostUpdate — despues de actualizar estado
 */
public function hookActionOrderStatusPostUpdate(array $params)
{
    /** @var OrderState $newStatus */
    $newStatus = $params['newOrderStatus'];
    $idOrder = (int) $params['id_order'];
    $order = isset($params['order']) ? $params['order'] : new Order($idOrder);

    // Ejemplo: Generar factura automatica cuando el estado es 'Pago aceptado'
    if ((int) $newStatus->id === (int) Configuration::get('PS_OS_PAYMENT')) {
        // Verificar que no tenga factura ya
        if (!$order->hasInvoice()) {
            $orderInvoice = new OrderInvoice();
            $orderInvoice->id_order = $order->id;
            $orderInvoice->number = Order::getLastInvoiceNumber() + 1;
            // ... generar factura
        }

        // Registrar log de pago confirmado
        PrestaShopLogger::addLog(
            'Pago confirmado para pedido #' . $order->reference,
            1,
            null,
            'Order',
            $idOrder
        );
    }

    // Ejemplo: Marcar como completado en sistema externo cuando se entrega
    if ((int) $newStatus->id === (int) Configuration::get('PS_OS_DELIVERED')) {
        Db::getInstance()->update('mymodule_order_sync', [
            'status'      => 'delivered',
            'date_upd'    => date('Y-m-d H:i:s'),
        ], 'id_order = ' . $idOrder);
    }
}
```

## Notas y gotchas

- A diferencia de actionOrderStatusUpdate, aqui el nuevo estado YA esta guardado en BD.
- Es mas seguro para operaciones que dependan del estado final (como enviar emails de confirmacion).
- El parametro order solo esta disponible desde PS 1.7.7.
- No cambiar el estado del pedido dentro de este hook — puede causar bucles infinitos.
- Si el pedido pasa por multiples estados rapidamente, este hook se dispara para cada uno.

## Hooks relacionados

- [`actionOrderStatusUpdate`](https://ayudaprestashop.es/hooks/actionOrderStatusUpdate)
- [`actionValidateOrder`](https://ayudaprestashop.es/hooks/actionValidateOrder)
- [`actionOrderHistoryAddAfter`](https://ayudaprestashop.es/hooks/actionOrderHistoryAddAfter)

## Guias relacionadas

- [modules/main-file](https://ayudaprestashop.es/modules/main-file)
- [orders/order-states](https://ayudaprestashop.es/orders/order-states)

## Historial de versiones

| Version | Cambio |
| --- | --- |
| 1.5 | Introducido con newOrderStatus e id_order |
| 1.7.7 | Añadido el parametro order (objeto Order) |
| 8.0 | Sin cambios. Compatible |


---

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