Skip to content

Receiving & Shopify sync

Receiving on an SSR does two things: it consumes allocated supplier-held stock, and it creates a warehouse inventory receipt. The Shopify on-hand update is a separate step — either auto-triggered, or driven manually from the Sync to Shopify action.

  • The receive flow
  • Partial receipts
  • Auto-sync vs. manual sync
  • What Sync to Shopify does
  • Unreceive
  • See also

When you click Receive Quantities and submit one or more line receipts:

  1. Each requested receipt quantity is matched against open allocations on the line (oldest first). An allocation is the link from a release line item to a specific supplier-held stock position.
  2. For each allocation the SSR consumes:
    • The allocation’s quantityReceived increases; the allocation closes when fully received.
    • The underlying supplier_stock_position is decremented (quantityTotal and quantityReserved). When the position hits zero, its status becomes consumed.
    • An inventory receipt line is created against the destination warehouse location (receiptType = supplier_stock_release).
  3. The release line item’s quantityReceived is updated; its status becomes partially_received or received accordingly.
  4. The release header status rolls up: received if every line is closed, partially_received otherwise.

The receipt itself is a normal inventory_receipts row, the same kind used by PO receipts. Each receipt line is marked shopifySyncStatus = pending until you sync it.

You can receive less than the requested quantity in a single call — the release transitions to Partially Received and you can issue further receipts later. Each call creates a separate inventory_receipts row, visible on the Receipts sub-tab of the line items table.

If you try to receive more than the remaining open quantity on a line, the call fails with Received quantity exceeds open release quantity.

Whether Shopify gets touched on receive depends on the global setting Auto-sync on receiving (Settings → Purchase orders). The same setting governs PO receipts.

  • On: every successful receive call immediately attempts to sync the newly received quantities to Shopify on-hand at the destination location. If the Shopify update partially fails, the locally-synced records are rolled back so the receipt and the Shopify state stay in step.
  • Off: receipts stay flagged shopifySyncStatus = pending. You can sync them later from the Sync to Shopify action on the release header.

The Sync to Shopify action opens a dialog listing every line with unsynced received quantity. You pick which lines and how many units to push, then submit. For each line:

  • The local inventory_receipt_line_items records flip from pending to synced.
  • An InventoryAdjustment call updates Shopify on-hand at the release’s destination location.
  • If Shopify rejects any update, the local sync record for that line is rolled back.

The action is only offered when the release has at least one unsynced receipt — once everything is synced, the button shows as disabled with “No unsynced warehouse receipts.”

Unreceive Quantities reverses receipts. For each unreceive call:

  • The most recent receipt allocations for the line are walked back; quantityReceived on allocations decreases, and the underlying supplier stock position is restored (its status flips back to active if it had been marked consumed).
  • The release line item’s quantityReceived decreases; if it drops to zero on every line the release reverts to Sent to Supplier, otherwise it stays at Partially Received.
  • The associated receipt line is removed from the inventory receipt.

Unreceive does not automatically reverse a prior Shopify sync — if you unreceive quantity that was already synced, you’ll need to sync the corrected (lower) value back to Shopify separately. The unsynced delta becomes negative until you do.