# Manage orders and fulfilment

> See what a customer bought, review their payment attempts, and keep track of what still needs to be delivered.

Source: https://railbed.io/docs/user-guide/orders/ · Updated: 2026-09-26 · Railbed by DeepWork user guide

## An order brings the purchase together

Open [Orders](https://app.railbed.io/orders) for the purchase itself: the items, customer, total, addresses, payment attempts and fulfilment. Use [Payments](https://railbed.io/docs/user-guide/payments.md) when you need the evidence for a particular attempt to pay.

One order can have several payment attempts. A retry does not always mean a second purchase, and one customer can have many orders. Always match the order and payment before delivering.

**Visual example: How customers, orders and payments relate.** Customer: Alex Morgan. Their history can include many orders. alex@example.com. Order #1001: Design consultation. One purchase, with its own total and fulfilment record. $49.00 USD. Payment attempts: One retry, one purchase. An order can be paid after an earlier attempt expires. Attempt 1: Expired · Attempt 2: Paid. Fulfil the order once; inspect individual attempts when reviewing payment evidence.

*Illustrative records. A customer can have many orders, and an order can have several payment attempts.*

Orders appear from payment links, reusable checkouts and sessions created by your store or the API. Store integrations can send item details, shipping, tax, discounts and addresses. A simple checkout creates an order for its product or plan. Missing details mean the source did not provide them; Railbed does not invent an address or product catalog entry.

## Find the orders that need you

1. Check **Test** or **Live** mode. Orders, customers and payments are separate in each mode.
2. Choose a view in **Orders**, then narrow by **Source** if you want one store or checkout type.
3. Search for an order number, customer name, email, product, reference, or order/payment ID. **Clear filters** returns to the broader list when nothing matches.
4. Open a row to review the order. Use **Show more** to load more results.

| View | What it includes |
|---|---|
| All | Orders matching your current source, customer and search filters |
| Not fulfilled | Paid orders recorded as waiting to be fulfilled |
| Being reviewed | Orders whose payment is held for review |
| Awaiting payment | Open or In progress orders |
| Ended unpaid | Declined, Expired or Canceled orders |

The counts on **Not fulfilled** and **Being reviewed** stop at **100+**. That is a capped count, not a claim that there are exactly 100 orders. Filtered page totals can also show **10,000+**.

Filters stay in the page URL, so refreshing or using Back keeps your view. An order link still requires sign-in and the matching account and mode.

## Read an order

The drawer keeps the list behind it so you can move through your work. Use **Previous order** and **Next order**, or **K** and **J** while focused in the drawer and outside a text field.

- **Items and total:** products, quantities, variants, discounts, shipping and tax when sent by the source. The order total is what the customer was charged in the order's currency.
- **Customer and address:** open the linked customer for their wider history. Copy the shipping address when one is present. Addresses are stored as provided; they have not been checked against a postal service.
- **Attempts:** inspect each attempt to pay. One failed or expired attempt does not undo another attempt that is Paid.
- **Settlement:** reported USDC receipts describe what reached your wallet. They are different from the order total. See [wallet and settlement](https://railbed.io/docs/user-guide/wallet-and-settlement.md).
- **Timeline:** follow the order, payment and fulfilment events in context.

If the drawer warns that the buyer paid more than once, inspect each payment under **Attempts**. Deliver the intended order once, then agree any duplicate-payment refund with the buyer. Marking fulfilment does not refund a payment.

## Payment and fulfilment are separate

A payment status answers whether the order was paid. Fulfilment records whether you have delivered it. **Mark as fulfilled** cannot turn an unpaid order into a paid one and does not send money.

| Fulfilment label | Meaning |
|---|---|
| No shipping | The order was created without a shipping requirement, such as a service or digital product |
| Not fulfilled | The order is waiting to be shipped or delivered |
| Fulfilled | You or the connected store recorded delivery or dispatch |

Do not treat **No shipping** as proof that a digital item was delivered. Your business or connected system still handles delivery. Likewise, a fulfilment label alone is not proof of payment.

## Mark an order fulfilled

For an order managed in Railbed:

1. Open the order and confirm **Paid**. Check the items, customer and delivery details.
2. Deliver the goods or service through your normal process.
3. Choose **Mark as fulfilled**. To correct the record later, use **Mark as not fulfilled**.

For several orders, select the rows and choose **Mark as fulfilled** in the selection bar. You can select up to 100 orders. Railbed checks each order; unpaid orders and orders whose fulfilment is controlled by a store are skipped. Read the result message and review anything that was skipped.

> [!IMPORTANT]
> A store-connected order says **Fulfilment comes from the store**. Update it in that store. Use **Open in WooCommerce**, or the source's available order link, to find it. Railbed shows the state sent by the integration.

If an order is **Being reviewed**, choose **Review payment** and follow [the held-payment guide](https://railbed.io/docs/user-guide/held-payments.md). Do not mark it fulfilled to bypass a payment review.

## Export orders

Choose **Export CSV** to download orders matching the current filters. The export includes the order number, customer, items, amounts, currency, payment/fulfilment labels and available source details. A selection export downloads the selected orders instead.

Each full export contains up to 10,000 orders. Narrow the filters if you need a smaller set. Keep the currency column with every amount; do not add USD, EUR and other currencies as if they were one unit. **Received (USDC)** is a separate settlement measure.

Exports contain customer details when available. Store and share them only where you intend to keep those details. Deleting customer data in Railbed does not recall a CSV you already downloaded.

## When something looks wrong

| What you see | What to check |
|---|---|
| An order is missing | Confirm the mode, clear filters and search by its order or payment ID |
| A customer tried again | Open Attempts; several attempts can belong to the same order |
| An expired order later becomes Paid | Late settlement can update the order; read its current status before sending a new request |
| Fulfilment cannot be changed here | Check whether the order is controlled by its source store, or has not been paid |
| The store shows a different fulfilment state | Check the integration and latest sync; make changes in the source store |
| An address or item is missing | Check what the store or API sent when the order was created |

- [Understand your customers](https://railbed.io/docs/user-guide/customers.md): See each customer's orders, contact details and private note.
- [Find records across Railbed](https://railbed.io/docs/user-guide/search.md): Search by order number, email, payment ID or transaction.
