User GuidesOrders & fulfillment

Orders & fulfillment

When a shopper checks out, Orchard creates an order. This guide covers finding orders, updating fulfillment status, printing packing slips and buying shipping labels, and handling refunds and return requests.

The order lifecycle, briefly

An order moves through a few states. The exact labels are on the order, but the shape is:

  1. Pending (shown as Awaiting payment) — checkout started; payment not yet confirmed.
  2. Paid — payment captured by Stripe. This is when you fulfill.
  3. Fulfilled — items packed and handed to the carrier. Fulfillment has its own status track separate from the order status (Pending → Processing → Shipped → In transit → Delivered, with Awaiting pickup / Exception / Returned as off-ramps) — see Fulfill an order below.
  4. Refunded — Orchard marks the order Refunded once its full captured amount has been returned. A partial refund doesn’t change the order’s own status; it shows up in the order’s Refunds history instead, with a running “refunded / remaining” total.
  5. Cancelled — order voided before payment completed.

For the full state model, see Concepts → Order lifecycle.

The Orders list filtered to Paid: order number, customer, total, and status.

Find an order

  1. Go to Orders in the left nav.
  2. Search by order number, customer email, or name.
  3. Filter by status (Paid, Fulfilled, Refunded), date range, or fulfillment state to work a queue — for example, “all Paid, not yet Fulfilled.”
  4. Click an order to open its detail view: fulfillment status, shipping address, payment details, refund history, line items with a full money breakdown (subtotal, shipping, tax, discount, total), an activity timeline, communications sent for the order, and internal notes.

Fulfill an order

Fulfill once the order is Paid.

  1. Open the order.
  2. Review the line items and the shipping address (editable from the order detail before you ship).
  3. Click Buy shipping label to buy a label through the store’s connected carrier account (see Settings → Integrations). This opens a dedicated page to pick the service level; Orchard shows the rate. If you already have a purchased label, a View label link appears in its place.
  4. Click Packing slip to open the print view and include it in the box.
  5. Pack the items.
  6. Carrier tracking normally advances the fulfillment status automatically. If you need to update it by hand (no carrier data yet, a mis-scan, or a correction), use the Fulfillment card’s Advance status dropdown (Pending, Processing, Shipped, In transit, Awaiting pickup, Delivered, Exception, Returned) and click Advance. This locks the order to manual control so a later carrier event can’t silently revert it — a manual override badge shows next to the status.
  7. To add or correct a tracking number and carrier without changing the status, use the same card’s Tracking number / Carrier fields and click Save tracking.

An order detail's Fulfillment card: status badge, the Advance status dropdown, and the tracking form.

When the fulfillment status reaches Delivered, if an integrator subscribed to webhooks, the corresponding order event is delivered — see Webhooks.

Fulfillment status and the order’s own status are tracked separately: the order flips to Fulfilled once carrier or manual tracking confirms shipment, but day-to-day progress (Processing → Shipped → In transit → Delivered) lives on the Fulfillment card, not on the order status badge.

There’s no per-line-item fulfillment today — one status and one tracking/carrier pair cover the whole order. If you can only ship part of an order, use the Reason field on the Advance-status form to note what shipped and follow up manually for the rest.

Heavy or freight items

Standard parcel shipping works out of the box. Heavy/freight (LTL) shipping is a planned capability that isn’t available yet — there’s no self-serve toggle and no freight flow on the order today. See EasyPost integration if your catalog needs it.

Refunds

The Refunds card on the order detail only offers a refund while the order is Paid and has a remaining refundable balance.

  1. Open the order and scroll to Refunds.
  2. Enter an Amount — it defaults to the full remaining balance, so leave it as-is for a full refund or lower it for a partial one. There’s no separate full/partial toggle and no per-line-item selection; the amount field is the only control.
  3. Optionally pick a Reason (Requested by customer / Duplicate / Fraudulent) and add a Note.
  4. Restock inventory proportionally is checked by default — uncheck it if the returned stock isn’t sellable.
  5. Click Issue refund. A confirmation dialog (“Issue this refund?”) repeats the amount and warns this sends real money through Stripe and cannot be undone — click Issue refund again to confirm.

The Refunds card: amount, reason, restock checkbox, and the Issue refund confirmation.

Each refund appears in the Refunds card’s history with its own status (Requested / Processing / Succeeded / Failed / Cancelled) and the card shows a running “refunded / remaining” total. The order’s own status badge only becomes Refunded once the full captured amount has been returned — a partial refund leaves the order’s status unchanged.

Refunds are real money movements in live mode. Double-check the amount and that you’re in the right mode before confirming.

Returns

Return requests are started by the shopper, from their account on the storefront — there’s no “start a return” action on the order detail page. Once a shopper requests a return, it lands in the Returns queue for you to work:

  1. Go to Returns in the left nav (under Commerce) to see requests by status: Requested, Approved, Received, Refunded, Processed, plus Rejected/Cancelled.
  2. Open a request and click Approve return to accept it, or fill in a required Denial reason and click Deny return to reject it (the shopper is emailed either way).
  3. Once the item is back, use the Refund amount and optional Note fields and click Issue refund & process return to refund the shopper and mark the return Processed in one step. Restock inventory proportionally is checked by default here too.

A return and a refund are related but distinct: the return tracks the goods coming back; the refund returns the money. You can also refund an order directly from its own Refunds card without a formal return.

Cancel an order

There’s no Cancel action on the order detail page today. If you need to void a paid order before it ships — a duplicate, a fraud hold, a customer change of mind — issue a full refund from the order’s Refunds card so the shopper isn’t charged. This doesn’t change the order’s fulfillment status, so also leave a note (or an internal note) so nobody ships it later.

Common questions

  • An order is stuck in Pending. Payment never completed. The shopper may have abandoned checkout or the card failed. Pending orders don’t need fulfillment; they resolve to Paid or expire.
  • I shipped but the customer says no email arrived. Confirm the store’s email integration is connected and check the order timeline for the notification event. Ask the shopper to check spam.
  • I refunded the wrong amount. A refund can’t be “un-refunded.” If you under-refunded, issue an additional partial refund. If you over-refunded, you’ll need to collect the difference outside Orchard.

Next: keep stock in sync after fulfillment in Inventory, or look up a shopper in Customers.