Shopify Flow is an ecommerce automation platform that enables you to automate tasks and processes within your store and across your apps.
Trying to place orders on hold for 1 hour to delay my shipping software from syncing so that we have a small window to make changes to the order. With flow, I can place all on hold, but I can't figure out how to release the hold. Flow wants me to "get order data" but I don't know how to grab the specific order I put on hold 1 hour before.
Solved! Go to the solution
This is an accepted solution.
edit your flow to match the screen shot below.
1. Right after the wait step, add > Action > Get fulfillment order data
2. Change the "Maximum number of fulfillment_orders" to 100.
3. Add an action, Select Flow then select For each loop.
4. It will ask you for a list, click into it and select the "Get Fulfillment Order Data". See screenshot.
5. Add an action to "Do this for each item". And then add release fulfillment hold.
Thanks for the prompt and thorough reply! I'm going to test now!
As I suspected, the "Release" action is releasing the hold on ALL orders, not just the order we originally held in the Flow.
For instance, over the course of 59 minutes, we may receive 10 orders, and all are placed "On Hold". At 60 minutes, all 10 orders are Released. So 1 order was held for 1 hour but the other nine were not.
I think you don't need that "Get fulfillment order data" action. You could just loop over order / fulfillment orders with "For each" and release the fulfillment hold for each of them.
I'll add - fulfillment orders are assigned after an Order is created. You may see this workflow fail sometimes because it's missing them. If so, add a wait step after "order created" of ~ 5 minutes. Or use the Order ready to fulfill trigger.
If you do the latter no looping is required:
Paul,
Thanks for the reply! I tried removing the "get data" but it errors.
I tried your second recommendation. It places the orders on hold, but it does not release them, they remain on hold after 1 hour.
This workflow should work. You need to figure out why it's not releasing the hold. Are you looking at the workflow run to see if it fails or not?
I'm trying to use a query to only select orders older than 1 hour, but it's still releasing the hold for ALL on hold hours:
created_at:<='{{ scheduledAt | date_minus: "1 hour" }}' AND fulfillment_status:on_hold AND NOT status:cancelled
You are making up query filters here (maybe copying them from an order query?). There is a link to the docs on that action, which should take you here: https://shopify.dev/docs/api/admin-graphql/2024-07/queries/fulfillmentOrders#argument-query
fulfillment_status is not a filter on fulfillment orders. I'm also not sure you a fulfillment order can have a status of cancelled. It looks like you
This is an accepted solution.
Give this flow a try, it should solve the issue.
Bingo! This works. Holds the order for 1 hour and then releases it. Game changer for us being able to edit a order before the shipping team even sees it.
Thank you!
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024