> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reordenar un pedido anterior

> Clona un pedido fulfilled del cliente en un carrito OPEN. No copia fees, direcciones ni pagos.

Clona un pedido fulfilled del cliente autenticado en un carrito OPEN con el mismo store, channel, fulfillment y brand.

Solo se copian líneas `PRODUCT`. Los fees se recalculan, `payment_intents` queda vacío y no se copian snapshots de entrega o facturación.

Si no hay un carrito OPEN para ese scope, Fire spark crea uno (`201`). Si ya existe, `strategy` decide si se reemplaza o se unen las líneas clonadas (`200`).

> [!NOTE]
>
> Requiere un access token de Storefront API de [Intercambio de
> token](https://firespark.cloud/docs/es/storefront-api/oauth/exchange/post.md).

En `@fire-spark/storefront`, llama `Order.reorder(orderId, { strategy })`. Después de adoptar la sesión, llama `order.validateOrder()` y muestra las diferencias de líneas antes del checkout.

> [!WARNING]
>
> El reorder se rechaza si el pedido fuente no está fulfilled
> (`status` o `fulfillment_status` en `COMPLETED` o `FULFILLED`). Un pedido
> ausente o de otro cliente responde `404`.

## Parámetros de ruta

| Parámetro | Requerido | Descripción |
| - | - | - |
| `id` | Sí | Identificador externo del pedido fulfilled de origen |

## Cuerpo de la solicitud

| Campo | Requerido | Descripción |
| - | - | - |
| `strategy` | No | `replace` (por defecto) o `merge`. Solo aplica si ya hay un carrito OPEN para el mismo scope. |

```bash theme={null}
curl -X POST "https://firespark.cloud/api/storefront/v1/orders/ord-48291/reorder" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"strategy":"replace"}'
```

## Respuesta

Devuelve el carrito OPEN. `201` si se creó, `200` si se actualizó uno existente.

```json Success theme={null}
{
  "data": {
    "id": "ord-91002",
    "status": "OPEN",
    "fulfillment_status": "IDLE",
    "payment_status": "IDLE"
  }
}
```

## Errores

| Estado | Descripción |
| - | - |
| `401` | Token ausente o inválido |
| `404` | Pedido no encontrado o de otro cliente |
| `422` | El pedido de origen no está fulfilled |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.