Side effects & integrations
When you move a PO through its lifecycle, things happen automatically — Shopify gets updated, your supplier gets emailed, tags get applied, the audit log records every step. This page is the complete list. Use it when you’re trying to understand why something happened (or didn’t).
On this page
Section titled “On this page”- Inventory effects
- Tag effects
- Email effects
- Background work
- Constraint engine effects
- Document effects
- Audit effects
- Things that don’t happen automatically
- Reconciling drift
- See also
Inventory effects
Section titled “Inventory effects”| When | What |
|---|---|
| PO moves to Sent | Shopify’s incoming inventory for the variants is pushed as the ordered quantity. (This is where “incoming” first appears in Shopify — not Confirmed.) |
| Lines confirmed (or PO transitions to Confirmed) | Incoming is reconciled to confirmed − received − cancelled − rejected. If the supplier confirmed less, incoming goes down accordingly. |
| Receive Manually | Receipt is recorded in Logistified. On-hand is not pushed unless Auto-sync to Shopify on receiving is enabled. Shopify incoming is reconciled when Auto-sync or manual Sync to Shopify runs. |
| Sync to Shopify after a manual receive | Warehouse receipts are pushed to Shopify on-hand and incoming is reconciled. |
| Quick Complete receive | Confirmed quantities are received, warehouse on-hand is pushed to Shopify, incoming is reconciled, and the PO is completed. |
| Cancel a PO | Any pending Shopify incoming for this PO’s lines is rolled back to zero. |
| Reopen Order (from Completed) | Incoming is re-pushed for any outstanding pending units. |
| Merge or split lines into another PO | Incoming is recalculated for the affected source and target POs so Shopify reflects the lines’ new owner and quantities. |
These pushes target Shopify’s incoming inventory field when incoming tracking is enabled. The visible result in Shopify is that “available” (= on hand + incoming) moves as soon as a PO is Sent. On-hand changes only when stock is received and pushed through Quick Complete, Auto-sync, or manual Sync to Shopify.
If updates don’t happen, run Incoming reconciliation.
Tag effects
Section titled “Tag effects”Tag triggers on POs are operator-configured, not hard-coded. In Settings → Purchase Orders → Product Tags you define, per tag:
- Apply statuses — which transitions cause the tag to be applied to the linked Shopify product (or variant).
- Remove statuses — which transitions cause the tag to be removed.
- Removal policy — “always remove” or “remove only when no other active PO holds this product.” The “protected” policy is what you want when a product can be on several POs at once and you don’t want a per-PO removal to strip the tag prematurely.
Typical defaults are “apply on Sent” and “remove on Completed / Cancelled,” but you can wire any status as a trigger.
| When | Tag effect |
|---|---|
Any transition with Apply statuses matched | Tag applied to the product or variant in Shopify. |
Any transition with Remove statuses matched | Tag removed, subject to the removal policy. |
| Other transitions | No tag change. |
Useful when your storefront wants to display “shipping soon” badges on products with open POs, or when a 3PL integration keys off tags.
Email effects
Section titled “Email effects”| When | |
|---|---|
| PO moved to Sent via Send via Logistified | Supplier email queued with the PO PDF (attachment uses the linked export template). |
| Email delivered / bounced / failed | Delivery statusEmail delivery statusThe current state of an email Logistified sent — Queued, Sent, Delivered, Bounced, or Failed. Visible on the Emails card of the related order. Read more → updated on the Emails card. |
| Manual Re-Send Email from actions menu | New email queued; new row in the audit. |
| PO moved to Sent via Mark as Sent (Manual) | No email sent. |
The email template lives in Settings → Purchase Orders → Email Templates and supports per-supplier overrides — assign a specific template as default for a given supplier. The sender domain and signature come from Settings → Email Sending; supplier email sending is gated on those being configured. Manual Mark as Sent does not send email.
Background work
Section titled “Background work”These happen invisibly after a transition:
- Sync with companion apps. If you also use the Assemblified app, variants it manages are synced separately so the two apps stay aligned.
- Audit log. Every state change adds an entry. The Log card shows them in order.
- Local receipt records. Receiving updates Logistified first; Shopify is updated by Quick Complete, Auto-sync, or manual Sync to Shopify.
- Merge and split reconciliation. When lines move between POs, Logistified refreshes the affected Shopify incoming quantities, product tags, and write-back metafields instead of treating the move as only a visual row change.
- Write-back metafields. If you’ve configured PO → Shopify write-back rules, they fire on the trigger status you specified. Boolean write-back rules use TRUE and FALSE status lists and keep the Shopify value TRUE while another active PO still holds the same product or variant in a TRUE status.
Constraint engine effects
Section titled “Constraint engine effects”If constraint rules are configured (Elevate plan):
- Constraint evaluation refreshes badges and purchase-order hints. Evaluation does not change data.
- Running the optimizer builds a preview plan. It does not change data.
- Applying an optimizer plan updates Logistified PO quantities/additions in one confirmed apply request, then reevaluates constraints.
- Apply does not send the PO, email the supplier, or push incoming inventory to Shopify by itself. Use the normal PO lifecycle action or Sync to Shopify for Shopify inventory updates.
- Apply is allowed only for Draft and Sent POs and only for Elevate users.
Document effects
Section titled “Document effects”- Sending a PO generates the supplier PDF on demand and queues it as the email attachment. The PDF layout comes from the linked export template.
- Printing labels generates the label PDF (or CSV/XLSX) on demand and downloads it to your browser.
- Uploaded documents are saved alongside the PO and persist with it.
For very large POs (50+ lines), PDF generation can be slow. If you see a timeout, split the PO or print labels separately.
Audit effects
Section titled “Audit effects”Every transition stamps:
- A dated column on the PO header (Sent date, Confirmed date, Received date, etc.).
- A log entry on the PO’s Log card.
- The previous status, so undo and Reopen work cleanly.
Things that don’t happen automatically
Section titled “Things that don’t happen automatically”This is the list of common surprises — actions you’d reasonably expect to be automatic but aren’t.
- Credit application reversal on cancel. Cancelling a PO does not reverse applied credits. Unapply manually.
- Receipt reversal on shipment cancel. Cancelling a shipment row doesn’t reverse received quantities on the lines. Edit the line directly.
- Per-line tax override. Tax applies at the PO level. Workaround: split the PO when some lines need different tax treatment.
- Auto-apply credits on PO creation. Available credits aren’t pre-applied — you choose when.
- “Marked as paid” validation. The flag is operator-set; it doesn’t compare against the recorded payments total.
- On-hand push on manual Receive. Without Auto-sync to Shopify on receiving enabled, Shopify on-hand changes only after you click Sync to Shopify (or use Quick Complete). Shopify incoming may also continue to show the earlier amount until that sync or an incoming reconciliation runs.
Reconciling drift
Section titled “Reconciling drift”If you notice Shopify’s incoming doesn’t match what Logistified shows, run Incoming reconciliation. Drift is usually caused by a transient sync failure; the reconciliation flow catches and fixes it.
See also
Section titled “See also”- Lifecycle & statuses — the at-a-glance matrix.
- Preferences — Auto-sync, incoming tracking, label default format.
- Inventory → Incoming reconciliation — drift detection.
- Settings — every setting that influences the side effects.
- Constraint optimizer — optimizer apply behavior and limits.