Partially Capture Payment based on Fulfillment using FLOW or an App

Currently working with a 3rd party warehouse who uses an integration to capture our orders and send us fulfillments. Unfortunately, they cannot capture payment, and so I am using FLOW to do this today. Unfortunately, FLOW does not allow capture of payment based on items fulfilled that I am aware of, so I am capturing the full payment despite sometimes not shipping the complete order. In these cases, I have to go back and refund what did not ship, which is very time consuming when there are many orders. I am looking for a way to do this more efficiently either with Flow or with an App. Can anyone help?