FulfillmentOrder and FulfillmentOrderLineItem create/update webhooks

FulfillmentOrder and FulfillmentOrderLineItem create/update webhooks

Shopify Partner
1 0 1



Subscribing to order changes is simple. If I subscribe to orders_created, orders_updated and orders_deleted I'll get notifications about new and updated orders. 


OrderFulfillments don't have an equivalent set of topics that cover basic C(R)UD (Read doesn't really apply here).


I've run through a bunch of scenarios to record which fulfillmentOrder related webhooks are triggered. These don't include fulfillment service related topics though I registered them anyway to track if they are ever triggered. Most map to topics that match their names closely:

1. New order + fulfillmentOrder created: "fulfillment_orders/order_routing_complete"

2. Placed on hold: "fulfillment_orders/placed_on_hold"

3. Change location: "fulfillment_orders/moved"

4. Release fulfillment hold: "fulfillment_orders/hold_released"

5. Merge fulfillment orders: "fulfillment_orders/merged"

6. Reschedule fulfillment order (in subscription app): "fulfillment_orders/rescheduled"

7. "Fulfill early" action on scheduled: "/fulfillment_orders_scheduled_fulfillment_order_ready"

8. "Prepare for delivery" action on Local Delivery items: "fulfillment_orders/line_items_prepared_for_local_delivery"

9. Cancel items prepared for delivery but not fulfilled: "fulfillment_orders/cancelled"

10. Pickup order mark ready for pickup: "fulfillment_orders/line_items_prepared_for_pickup"

11. Split fulfillment order: "fulfillment_orders/split"


Nothing happens in the following scenarios that affect FulfillmentOrders and FulfillmentOrderLineItems:

12. Add items to an order (order_updated is triggered)

13. Fulfill items (order_updated is triggered)

14. Refund items (order_updated is triggered)

15. Return items (order_updated is NOT triggered)

16. Items marked as Picked up (order_updated is triggered)

17. Update shipping address (order_updated is triggered)


My question is how do I register for scenarios (12)-(17)? Even if orders_updated is triggered, my understanding from the fulfillment docs is that I can't depend on order level webhooks to be synchronized with fulfillmentOrder changes. I'm trying to avoid registering for granular webhooks in topics that are not fulfillment_order related (for example, registering for fulfillment webhooks in order to update fulfillable quantities of fulfillmentOrderLineItems) 


The full list of topics I used for testing matches all fulfillment_orders prefixed topics available on the 2024-04 version of the API. I intentionally didn't register for "fulfillment_orders/ready_to_fulfill" on the "unstable" API as its marked as deprecated (though recommended for use in the best practices? https://shopify.dev/docs/apps/fulfillment/order-management-apps/third-party-marketplaces#best-practi...)


Reply 1 (1)

Shopify Partner
1 0 0

I have this same issue. There are lots of cases where FulfillmentOrders can be updated without ever getting an event with any payload that includes the update. It seems like the only solution is to watch for order and fulfillment updates and pessimistically fetch FulfillmentOrders from the API whenever they happen.