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.

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 — open the draft builder.
  • Edit or Delete a draft.
  • View in ShipHero — open a regular order's PDF in ShipHero.
  • Retrigger Processing — re-run 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 — search 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.

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.

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 — stamp 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