Skip to main content

Managing Purchase Orders

How to edit, progress, and cancel POs after creation.


Editing a PO

Any PO can be edited regardless of status, except completed and cancelled POs which are fully read-only.

Editable fields on the PO header:

FieldEditable until
PO numberCompleted / cancelled
Supplier referenceCompleted / cancelled
IncotermCompleted / cancelled
SupplierCompleted / cancelled
Order dateCompleted / cancelled
Requested delivery dateCompleted / cancelled
Confirmed delivery dateCompleted / cancelled
NotesCompleted / cancelled
Additional costsCompleted / cancelled
General discountCompleted / cancelled
Payment termPayment status = invoiced
CurrencyPayment status = invoiced
Sync receipts to ShopifyStatus moves past draft
Line items (quantity, unit price, discount, tax, location, notes) can be edited on any PO in draft, confirmed, or in_transit status. New products can be added via the Add products button on those same statuses. The same MOQ, pack size, and minimum order value validation rules apply as on creation — see Creating POs.

Status Progression

POs move forward through statuses using the primary action button in the page header.

Draft → Confirmed (Mark confirmed)

Two preconditions must be met:

  1. A confirmed delivery date must be set — Synplex shows a toast error if it is missing
  2. All line items must have a warehouse location assigned — Synplex shows a toast error listing how many items are missing a location

When confirmed:

  • PO status changes to confirmed
  • All line item statuses change to confirmed
  • Each line item gets its estimatedDeliveryDate set to the confirmed delivery date
  • The Add shipment modal opens automatically for all items with pending quantity
  • Supply plan regeneration is enqueued in the background for every inventory level linked to line items with pending quantity (high priority, 3 retries)

Confirmed / In Transit → Add Shipment or Mark Complete

When the PO is confirmed or in_transit and there is still unannounced quantity (quantityAnnounced < quantityOrdered), the primary action is Add shipment. Once all quantity is announced, the primary action switches to Mark complete.

Mark Complete

Available when the PO is confirmed or in_transit and at least one non-cancelled shipment exists. If no non-cancelled shipments exist, the complete action is blocked with an error.

What happens on completion:

  1. Each line item's quantityOrdered is reconciled to actual received: it is set to quantityAccepted + quantityDefect across all active shipment items for that line item — not the originally ordered quantity. This means the final PO record reflects what was actually received, not what was originally requested.
  2. All line items have quantityPending set to 0
  3. All line items are set to status completed
  4. PO status is set to completed
  5. Supply plan regeneration is enqueued for all affected inventory levels (same as on confirming)
  6. Completed POs are fully read-only

Cancelling a PO

UI rules:

  • The Cancel PO button is visible only when status is draft, or when status is confirmed and no shipments have been created yet
  • Once any shipment exists the button is hidden

Backend rules (stricter):

  • The backend blocks cancellation if status is in_transit, completed, or already cancelled
  • The backend also blocks cancellation if any shipment has status received — even if the PO is still in confirmed status

What happens on cancellation:

  1. PO status is set to cancelled
  2. All non-received shipments are set to cancelled
  3. All shipment item quantities are zeroed (quantityAnnounced, quantityAccepted, quantityDefect and their synced baselines)
  4. All line items are set to status cancelled
  5. If Sync receipts to Shopify is enabled, cancellation compensation runs for each shipment — reversing any previously synced incoming stock in Shopify
  6. Synplex removes the expected incoming stock from inventory forecasts — variants relying on this delivery may return to Running Low or Stock Gap status

The Add Payment Button

The Add payment button (secondary action in the page header) is available on any PO that is not in draft or cancelled status. It calls the autoCreatePurchaseOrderPayment global action, which generates a payment record based on the supplier's payment terms configuration. The result appears on the Payments tab of the PO. For full details see Payments & Currency.


Quantity Tracking on the PO Details Page

The PO Items tab header shows four aggregate quantities across all non-cancelled line items:

FieldMeaning
OrderedTotal quantityOrdered across all line items
DeliveredTotal quantity delivered across all shipment items
AcceptedTotal quantity accepted (passed QC) across all shipment items
AnnouncedTotal quantity announced in shipments (may not yet be delivered)

Distribute Quantities Across Locations

Both the creation form and the details page have a Distribute feature that redistributes a variant's total order quantity proportionally across multiple locations. Distribution is weighted by the original plan's recommended quantities per location.

Two edge cases prompt a confirmation modal before proceeding:

  • Transfer-only location warning: if merging all quantity into a single location that only has a transfer-strategy row for a given variant, Synplex warns before executing
  • Central DC / missing SKUs: if distributing to a location that has no inventory level for a variant, Synplex asks whether to include those SKUs anyway (Central DC mode) or skip them

Exporting a PO

The Export order items button exports all PO line items to CSV.