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

# Reorder a previous order

> Clone a fulfilled customer order into an OPEN cart. Fees, addresses, and payments are not copied.

Clones a fulfilled order owned by the authenticated customer into an OPEN cart for the same store, channel, fulfillment, and brand.

Only `PRODUCT` lines are copied. Fees are recalculated, `payment_intents` stay empty, and delivery or billing snapshots are not carried over.

If no OPEN cart exists for that scope, Fire spark creates one (`201`). If one already exists, `strategy` decides whether the cart is replaced or the cloned lines are merged (`200`).

> [!NOTE]
>
> Requires a Storefront API access token from [Token
> exchange](https://firespark.cloud/docs/storefront-api/oauth/exchange/post.md).

In `@fire-spark/storefront`, call `Order.reorder(orderId, { strategy })`. After the session is adopted, call `order.validateOrder()` and surface any line diffs before checkout.

> [!WARNING]
>
> Reorder is rejected unless the source order is fulfilled
> (`status` or `fulfillment_status` is `COMPLETED` or `FULFILLED`). Missing or
> unowned orders return `404`.

## Path parameters

| Parameter | Required | Description |
| - | - | - |
| `id` | Yes | External identifier of the fulfilled source order |

## Request body

| Field | Required | Description |
| - | - | - |
| `strategy` | No | `replace` (default) or `merge`. Used only when an OPEN cart already exists for the same 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"}'
```

## Response

Returns the OPEN cart. `201` if it was created, `200` if an existing cart was updated.

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

## Error responses

| Status | Description |
| - | - |
| `401` | Missing or invalid access token |
| `404` | Order not found or not owned by the customer |
| `422` | Source order is not fulfilled |


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