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

# Status vs State

> How TWICE distinguishes between Status (lifecycle stage) and State (current condition) on its core entities.

TWICE uses two related concepts on its core entities — **Status** and **State** — to track different aspects of where something is in its journey.

## Quick Summary

| Concept    | What it tracks                       | Typically set by                       |
| :--------- | :----------------------------------- | :------------------------------------- |
| **Status** | Where the entity is in its lifecycle | Manually, or by workflows              |
| **State**  | Current operational condition        | Automatically, by events in the system |

Each entity (stock item, order, listing) defines its own status and state values — there is **no universal** Status that applies to everything. The table below shows what each entity uses.

## Status and State by Entity

<Tabs>
  <Tab title="Stock Items" icon="box">
    | Dimension  | Values                            | Set by                            |
    | :--------- | :-------------------------------- | :-------------------------------- |
    | **Status** | In use / Out of use / Lost / Sold | Manual or workflow                |
    | **State**  | In / Out                          | Automatic (fulfillment & returns) |

    * **Status** controls whether the item can be assigned to new orders
    * **State** reflects whether the item is at hand or with a customer

    Read more: [Stock Item Status](/docs/concepts/inventory/stock-item-status) · [Stock Item State](/docs/concepts/inventory/stock-item-state)
  </Tab>

  <Tab title="Orders" icon="shopping-cart">
    | Dimension             | Values                                                | Set by                                                                              |
    | :-------------------- | :---------------------------------------------------- | :---------------------------------------------------------------------------------- |
    | **Status**            | Pending / Draft / Open / Active / Archived            | Mixed — system sets `pending`/`open`/`active`; operators move to `draft`/`archived` |
    | **Payment state**     | Unpaid / Partially Paid / Paid                        | Automatic (payment events)                                                          |
    | **Fulfillment state** | Unfulfilled / Ready / Partially Fulfilled / Fulfilled | Automatic (fulfillment events)                                                      |

    At the line-item level, each Stock Item assigned to an order also carries its own fulfillment state: `pending`, `reserved`, `on-hold`, `ready`, `cancelled`, `fulfilled`, `returned`.

    Each order shows the three top-level chips (status, payment, fulfillment) side by side on the orders table.

    Read more: [Order Lifecycle](/docs/concepts/orders/order-lifecycle) · [Payments](/docs/concepts/orders/payments)
  </Tab>

  <Tab title="Listings" icon="tag">
    | Dimension             | Values                       | Set by |
    | :-------------------- | :--------------------------- | :----- |
    | **Publishing status** | Draft / Published / Archived | Manual |

    A listing's publishing status controls whether customers can see and purchase it.

    Read more: [Listings](/docs/concepts/catalog/listings)
  </Tab>
</Tabs>

## Why two dimensions?

Status answers a slow-changing question: *"What kind of thing is this right now in its lifecycle?"*

State answers a fast-changing question: *"What's happening with this thing operationally?"*

Keeping the two separate lets you reason about each independently. For example, a stock item with status **In use** can have state **Out** (rented to a customer) — both are valid and meaningful at the same time. You can:

* Filter by **status** to clean up your workspace (hide Sold items, show only In use)
* Filter by **state** to make operational decisions (which items are currently Out, which are In and ready for a new order)

## Worked Examples

### Stock Item

A bike rental shop has the same bike go through these combinations over time:

| Status     | State | Meaning                             |
| :--------- | :---- | :---------------------------------- |
| In use     | In    | Bike is on the shelf, ready to rent |
| In use     | Out   | Bike is currently rented out        |
| In use     | In    | Bike has been returned              |
| Out of use | In    | Bike pulled from service for repair |
| In use     | In    | Repair done, back on the shelf      |
| Sold       | In    | Bike sold at end of season          |

### Order

| Status   | Payment | Fulfillment | Meaning                                              |
| :------- | :------ | :---------- | :--------------------------------------------------- |
| Pending  | Unpaid  | Unfulfilled | Cart in progress, no commitment yet                  |
| Open     | Unpaid  | Unfulfilled | Order placed, awaiting payment                       |
| Open     | Paid    | Ready       | Paid, items prepared, awaiting pickup                |
| Active   | Paid    | Fulfilled   | Items handed to the customer (rental period running) |
| Archived | Paid    | Fulfilled   | Rental returned and order finalised                  |
| Draft    | —       | —           | Operator-saved draft, never confirmed                |

## Related Concepts

<CardGroup cols={2}>
  <Card title="Stock Item Status" icon="box" href="/docs/concepts/inventory/stock-item-status">
    In use, Out of use, Lost, Sold
  </Card>

  <Card title="Stock Item State" icon="arrows-rotate" href="/docs/concepts/inventory/stock-item-state">
    In vs Out — physical location
  </Card>

  <Card title="Order Lifecycle" icon="shopping-cart" href="/docs/concepts/orders/order-lifecycle">
    Open / In progress / Closed plus payment & fulfillment
  </Card>

  <Card title="Listings" icon="tag" href="/docs/concepts/catalog/listings">
    Publishing status: Draft / Published / Archived
  </Card>
</CardGroup>
