National Commerce Docs
Feature guides

Purchase Orders

Create draft purchase orders, push them to ShipHero, and track receiving discrepancies.

Purchase orders replenish your inventory. This area lets you build a draft order, send it to ShipHero, and check what the warehouse actually received.

The sidebar splits it into two screens: Purchase Orders and Receiving Discrepancies.

Working from a replenishment cycle

Purchase orders can also be created from, and attached to, a replenishment cycle. See Replenishment for the cycle view, which shows every PO for a brand's reorder period together with what has arrived.

Purchase Orders list

The list shows every order in one place. It mixes two kinds of order:

  • Draft: an order you are still building. It has not reached ShipHero yet.
  • Regular: a real order that ShipHero has confirmed.

Drafts always sort to the top. Everything else sorts by date, newest first.

Columns

Each row shows the created date, PO number, account, warehouse, status, item count and quantity, and the last update.

The quantity counts base units. A case line item multiplies its quantity by the units per case.

Statuses

A colored badge marks each state:

  • Draft (blue): not yet sent to ShipHero.
  • Pending (orange): open in ShipHero.
  • Closed (green): received and closed in ShipHero.

What you can do

  • Filter by account, warehouse, or status.
  • Search by PO number.
  • Create New PO opens the draft builder.
  • Edit or Delete a draft.
  • View in ShipHero opens a regular order's PDF in ShipHero.
  • Retrigger Processing re-runs a regular order through the workflow.

Retrigger and re-import use N8N

Retrigger adds a job to the purchase_order_updates_queue table. An N8N workflow picks it up and re-processes the order. Processing can take up to a minute.

Re-import deleted orders

Sometimes an order is deleted but still needs to return. An amber banner lists these orders with a Re-import button.

Re-import first checks that the order's SKUs are classified. If SKUs still wait in the sync queue, you must resolve them first.

Create a draft purchase order

The Create New PO button starts a two-step flow.

Step 1: Start the draft

Pick the account, then the vendor, then the warehouse. The app generates the draft PO number for you.

Step 2: Add line items

The edit screen lets you build the order:

  • Add an item by searching the vendor's Base SKUs and Case SKUs. Each item saves as soon as you add it.
  • Edit each item's quantity, price, and manufacturer SKU.
  • Swap an item between its Base SKU and Case SKU form.
  • Delete an item you no longer need.

A summary shows the item count and the total base units.

Swap between Base and Case SKUs

Swap converts a line item between single units and cases.

  • Base to Case: the app divides the unit quantity by the units per case. It warns you about any leftover units it cannot fit into a case.
  • Case to Base: the app multiplies the case quantity by the units per case.

You cannot swap if the other form already sits on the same order. That rule stops duplicate lines.

Build drafts with the assistant

You do not have to key a confirmed replenishment order in by hand. Hand the client's confirmed sheet to the Assistant in Claude. It previews one draft per warehouse with the SKUs matched, asks you about any line it cannot match, and creates the drafts once you confirm. They show up in this list as normal drafts for you to review and submit.

Push to ShipHero

Submit to ShipHero sends the draft. A progress modal walks through each step.

The app saves the order, resolves each SKU, and sends a GraphQL purchase_order_create request to ShipHero. It signs the call with the account's own ShipHero access token.

On success the order's status becomes ShipHero PO Created. The real order later syncs back into the list.

Receiving Discrepancies

This screen finds orders where the received quantity does not match the ordered quantity. It covers closed and pending orders only.

How it flags a discrepancy

The app compares received against ordered:

  • Over Received: the warehouse received more than you ordered.
  • Under Received: the warehouse received less than you ordered.

Rows that match exactly do not appear. The screen shows only real discrepancies.

Email alerts

Users who opt in also get an email about a discrepancy. The email is sent once the whole order is closed, comparing the final received count against what was ordered.

Nothing is emailed while an order is still being received. A warehouse checking in 2 cases of a 30 case line is not short by 28, it is part way through, so waiting for the close is the only way the figures in the email are right. Orders that were cancelled are not emailed about either.

This means a pending order can show a difference on this screen before any email has gone out. That is expected. The screen shows you where receiving stands right now, and the email tells you how it finished.

One email per line, ever

A line item is only emailed about once. If the quantities change afterwards, no follow-up is sent, so treat this screen as the current truth rather than the email.

Columns

Each row shows the PO number, date, inventory SKU, item name, and warehouse. It also shows the ordered and received quantities, the difference, the status, and the resolved time.

Over-received rows tint light red. Under-received rows tint a deeper red.

What you can do

  • Filter by warehouse, discrepancy type, or resolution status.
  • Mark as resolved stamps the row as handled. It records who resolved it and when.

Local-only writes

This screen reads received quantities that ShipHero already synced. Marking a row resolved writes only local fields. It sends nothing back to ShipHero.

On this page