How to prevent unpaid items from being fulfilled in Flow app?

Topic summary

A user is experiencing an issue where their Shopify Flow workflow exports order line items to Google Sheets, including items added via a post-purchase app that haven’t been paid for. This results in accidentally fulfilling unpaid items.

Proposed Solutions:

  • Check the lineitem.nonFulfillableQuantity field and add a Flow condition to filter out items where this value equals the total quantity (indicating the item cannot be fulfilled)
  • Use order.lineItems.nonFulfillableQuantity to identify scenarios where items are unpaid

Current Status:

The discussion remains open with suggested technical approaches but no confirmed resolution. There’s uncertainty about whether Shopify provides a direct “paid status” field for individual line items, though the non-fulfillable quantity metric appears to be the closest available indicator for filtering unpaid items in Flow workflows.

Summarized with AI on November 10. AI used: claude-sonnet-4-5-20250929.

Hello,

In the Flow app I have the following Workflow that pulls orders’ data from Shopify to a Google Sheet.

I use a post-purchase app and sometimes an item is added to the order but is not paid.

The flow still sends the lineitem’s data to the sheet and this causes to sometimes fulfill items that haven’t been paid for.

Any solution? Like a quantity parameter that only shows paid and therefore fulfillable items?

{{order.createdAt}},{{order.name}},{{lineItemsForeachitem.sku}}, {{lineItemsForeachitem.quantity}},{{lineItemsForeachitem.unfulfilledQuantity}},{{order.shippingAddress.name | replace: ",", " " }},{{order.shippingAddress.address1 | replace: ",", " " }},{{order.shippingAddress.address2 | replace: ",", " " }},{{order.shippingAddress.city | replace: ",", " " }},{{order.shippingAddress.province | replace: ",", " " }},{{order.shippingAddress.zip | replace: ",", " " }},{{order.shippingAddress.countryCodeV2}},{{order.shippingAddress.phone}},{{order.customer.email}}
1 Like

Hello,

I think you could add a condition to check if the lineitem.nonFulfillableQuantity == lineitem.quantity.

Lily

I’m not aware of any field that tells you if a line item has been paid for or not. You could check to see if order / lineItems / nonFulfillableQuantity returns true in that scenario.