Issue Overview:
After Shopify released the Fulfillment Orders API update (v2025-07), users noticed delays or missing fulfillments syncing from Shopify to NetSuite through Celigo.
Orders that previously synced instantly now appear to wait for hours, or only partially sync.
This happens mainly for merchants using:
- Multi-location Shopify fulfillment
- 3PL or app-based fulfillment services
- Auto-location assignment rules
Root Cause:
With the 2025-07 API, Shopify now:
- Splits fulfillments per location
- Sends fulfillment events through a different queue
- Introduces “Fulfillment Orders” as separate entities from the main order
- Requires apps (like Celigo) to listen for new webhook formats
- Delays callbacks until all location-level checks pass
As a result, Celigo flows may not receive all fulfillment information unless adjusted to use the new structure.
Solution Summary:
To resolve the delay, update your Celigo flow to align with Shopify’s new Fulfillment Orders structure:
Enable “Fulfillment Orders” Webhook (NEW required event)
Use:
fulfillment_orders/fulfillment_request_accepted
fulfillment_orders/fulfillment_order_fulfilled
Update your Shopify export to include the new JSON paths
Shopify now sends:
fulfillment_orders[].assigned_location_idfulfillment_orders[].line_items[]fulfillments[].status(legacy, may be empty)
Add Celigo branching based on location
Since Shopify splits fulfillments by location, add a branching rule to:
- Identify the fulfillment location
- Map it to NetSuite’s Location internal ID
- Sync each location separately
Adjust retry and polling interval
Set polling to 1–3 minutes instead of instant to avoid API replay delay.
Step-by-Step Resolution
1. Update Shopify Webhooks in Celigo
- Go to Shopify Connection → Webhooks
- Enable the new fulfillment order events:
fulfillment_orders/fulfillment_order_fulfilledfulfillment_orders/assigned_fulfillment_order_updated
- Disable old
fulfillments/createif it causes duplicates.
2. Modify the Shopify Export Flow
Add these fields to the export:
fulfillment_orders[].idfulfillment_orders[].assigned_location_idfulfillment_orders[].shipment_statusfulfillment_orders[].line_items[].skufulfillment_orders[].line_items[].quantity
This ensures full visibility into each fulfillment order.
3. Add Location-Based Branching
In the flow:
Branch 1: Shopify location = Warehouse
→ Map to NetSuite Location A
Branch 2: Shopify location = Store
→ Map to NetSuite Location B
This prevents incomplete fulfillment syncs.
4. Update NetSuite Fulfillment Mapping
Use these Shopify fields instead of legacy ones:
Shopify (New API)NetSuitefulfillment_orders[].line_items[].skuItemassigned_location_idLocationshipment_statusStatustracking_numbers[]Tracking #5. Increase Retry Interval
Go to:
Flow → Advanced → Retry Settings
- Set retry interval: 2–5 minutes
- Set max attempts: 5–7
This matches Shopify’s new event timing.
Shopify’s 2025-07 Fulfillment Orders API update introduced a new multi-location fulfillment model that caused delays in Celigo integrations.