We are partners with Shopify and have few apps in the app store. We received a notification regarding changes in the way orders will be processed for 3rd Party Marketplaces like Instagram and Facebook.
We thoroughly read and understood this article regarding the topic.
For 3rd Party Marketplace Order(3PMO) , First in order to recognize that this is a 3PMO, we need to look for source_name which should match 1 of the values listed in partner's dashboard. If it's a 3PMO order then it can't be edited
The Flow of order will be Order / Create webhook will have financial_status as either authorized or paid depending upon the payment gateway and if you have FulfillmentOrder Object , here status will be on-hold.
After some arbitrary time Marketplace releases the order and FulfillmentOrder status changes to 'OPEN', this would be informed to us by either orders/updated or fulfillment_orders/ready_to_fulfill which is still in Unstable State. As this change is on FulfillmentOrder Object and not Order Object we assume fulfillment_orders/ready_to_fulfill would be the right webhook here as financial_status on Order Object still remains the same.
Once we know order is not on hold then we can fulfill the order and then Marketplace would release the payment for this order and then we can make edits to the order.
With that out of the way Let me also state our usecase, we do order edits if we find relevant product as a lineItem in the order and also do auto-fulfillment of these order , but this is setting , not all stores opt for it.
Finally here are our doubt , if anyone from Shopify Team could help us here:
First is our understanding of the flow accurate?
Next if our understanding is correct then we actually can't do much as the only way to know that FulfillmentOrder status is 'OPEN' would be through fulfillment_orders/ready_to_fulfill webhook which is in unstable state, hence can't be used for production apps.
In order for us to modify the order , we would need to fulfill the order, then how do we know that marketplace has released the payment , which field on which resource would update to what value. I am guessing it would be financial_status on Order Resource through Order/Update webhook but again to what value?
Hope I have clearly elucidated my concerns , Let me know if you need any further information.