Main issue: prevent customers from being charged $20 when an order ships from two locations, enforcing a flat $10 shipping fee.
Attempted solution: a Shopify Flow automation triggered by “Order Risk Analyzed,” checking if shipping equals $20, then using “Update Order Metafield” to set price to $10. It runs without errors but does not change the shipping rate.
Feedback: the “Order Risk Analyzed” trigger may not occur before order completion, so it’s not guaranteed to affect the charge in time. The use of Liquid in the metafield namespace and key is likely incorrect; namespace and key should identify a specific metafield, not be populated dynamically (e.g., with arrays of namespaces or the current shipping cost). This setup probably updates/creates a metafield unrelated to the actual shipping charge.
Status: no resolution; the original poster seeks alternative methods to edit or discount the shipping fee for split shipments.
Notes: screenshots are central to understanding the current Flow configuration.
Key terms: Shopify Flow (automation tool), metafields (custom data attached to objects), Liquid (templating language), Order Risk Analyzed (trigger tied to fraud analysis events, not order completion).
Summarized with AI on February 14.
AI used: gpt-5.
I’m using the Shopify Flow app and am trying to create an automation that will either change the shipping fee or discount it when the order ships from two different locations. Our shipping rate is $10 but when the order is split between two locations, the customer gets charged $20. We would only like them to only be charged $10.
I set up a flow to access the order before it’s completed by using Order Risk Analyzed as the trigger. It checks to see if the shipping fee is $20. The action is Update Order Metafield to change the price to $10.
Unfortunately this isn’t working. I’m assuming my set-up for the metafields is incorrect, but I can’t be sure.
Hi @KarebouDesign it would be helpful to know how is it not working, if there is an error or simply the metafield appears different from what expected.
A few points I noticed:
Order risk analyzed depends on a different set of events than order completion so I don’t think it’s guaranteed it will run before order completion.
Currently you are using liquid to define the namespace and key to the metafield you want to update or create.
In the namespace field what will populate is the list of all existing metafield namespaces, and in the key definition the current shipping cost of the order.
Especially the namespace part seems counterintuitive as namespace and key are identifiers used to group metafields together.
Usually I’d expect those 2 fields define a specific metafield you want to edit, so especially the namespace being an array of all existing namespaces might be an issue?
Hi @G-L thanks for your reply. The current set-up isn’t throwing any errors, but it’s also not changing the shipping rate which is what I meant by saying it wasn’t working.
I was hoping to edit the existing shipping rate, not add a new metafield, but I don’t think I’m going about it the right way. There are numerous posts in the forum about trying to fix the double shipping charge, but there doesn’t seem to be a solution. If you can suggest an alternative method, I’d be happy to hear it!