# PO Receiving block

> Purchase Order Receiving Page with Line-Item Tracking and Activity Timeline

Full-page purchase order detail for receiving stock against a PO: supplier and terms form, line-item receive table with backorders, costs, totals, and a note timeline. ReUI Badge, Timeline; shadcn Card, Table, Input. PO receiving, inventory intake.

- Type: Pro block
- Category: [Inventory](https://web.dev.reui.io/blocks/solutions/inventory.md)
- Page: https://web.dev.reui.io/blocks/solutions/inventory/solution-inventory-4
- MCP: `get_block("solution-inventory-4")`
- Built with: Alert Dialog, Badge, Button, Calendar, Card, Field, Input, Input Group, Item, Popover, Select, Separator, Table, Textarea, Timeline, Tooltip
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

Received quantities typed per line that move a submitted order to Partially received or Received, plus backorders, freight, tax and notes

## Agent notes

- `DEFAULT_PO_LINES`, `PO_PRODUCTS` and `PO_ACTIVITY_EVENTS` in data.tsx are sample data, and the supplier is always the first `PO_SUPPLIERS` entry
- `handleToolbarAction` calls no API: Submit order sets `submitted`, then posting a receipt sets every `received` to `ordered`
- Print and Export only call `showPoToast`, and PO-2041 plus the note author Mira Stone are hardcoded in `PurchaseOrder`

## When not to use

- A dated event feed on its own, with no line items, totals or form around it: use [Timeline](https://web.dev.reui.io/components/timeline.md) (`get_component("timeline")`)
- A list of items below reorder point with a suggested order quantity each: use [Stock Reorder](https://web.dev.reui.io/blocks/solutions/inventory/solution-inventory-3.md) (`get_block("solution-inventory-3")`)

## Third-party libraries

- date-fns v4: [docs](https://date-fns.org/v4.1.0/docs/Getting-Started)
- Sonner v2: [API reference](https://sonner.emilkowal.ski/toast), [docs](https://sonner.emilkowal.ski/getting-started)
- React DayPicker v9: [API reference](https://daypicker.dev/v9/api), [docs](https://daypicker.dev/v9/start), through shadcn Calendar

## Install

```bash
npx shadcn@latest add @reui/solution-inventory-4
```

## About Inventory blocks

### When to use

- Stock overview and ledger pages: KPI tiles, a stock health bar and a filterable SKU table
- A low stock reorder queue, or a purchase order received line by line from its supplier
- Product and order overlays: stock rules, variants and photos, order review, tracking or a shipping label

### When not to use

- A team overview of KPI tiles and charts where nothing tracks stock or SKUs: use the [Dashboard blocks](https://web.dev.reui.io/blocks/application/dashboard.md)
- A side panel for a record other than a product, order or shipment: use the [Sheet blocks](https://web.dev.reui.io/blocks/application/sheet.md)
- An activity or event history on its own, with no stock or shipment around it: use the [Timeline blocks](https://web.dev.reui.io/blocks/application/timeline.md)

### Agent notes

- Every block sets a `min-h-svh` wrapper with its own padding in page.tsx or its root component; drop it when the block mounts inside your app layout
- No block fetches or saves anything: actions set local state, fire a sonner `toast`, link to a page anchor or have no handler, so wire each to your API

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
