Hi everyone,
I’m developing a fulfillment service app by following the official Shopify documentation here:
Shopify Fulfillment Service Guide
I’ve successfully completed the first two steps:
Step 1: Create a Fulfillment Service
I used the fulfillmentServiceCreate
mutation and set a callback URL, for example:
https://mydomain.com/shopify/FulfillmentRequest/
Step 2: Add and Update Location
I called the locationEdit
mutation to configure and update my location successfully.
Issue with Step 3: Receive Fulfillment Requests and Cancellations
According to the docs, Shopify should send fulfillment requests to:
<callback_url>/fulfillment_order_notification/
I’ve created and exposed the /fulfillment_order_notification/
endpoint properly, for example:
https://mydomain.com/shopify/FulfillmentRequest/fulfillment_order_notification/
However, when a merchant triggers a fulfillment request in the Shopify admin, the request is being sent to the base callback URL only, i.e.:
https://mydomain.com/shopify/FulfillmentRequest/
…and nothing is hitting the /fulfillment_order_notification/
path.
Because of this, I never receive the expected payload like:
json
CopyEdit
{ "kind": "FULFILLMENT_REQUEST" }
Problem When Skipping Step 3
If I try to skip this webhook handling step and directly call the fulfillmentOrderAcceptFulfillmentRequest
mutation, I get the following response:
json
CopyEdit
{
"data": {
"fulfillmentOrderAcceptFulfillmentRequest": {
"fulfillmentOrder": null
}
}
}
So it seems that the mutation fails silently since the app didn’t first receive or process the actual request notification.
What I Need Help With:
- Why isn’t Shopify sending the
FULFILLMENT_REQUEST
orCANCELLATION_REQUEST
payloads to my/fulfillment_order_notification/
endpoint? - Are there any additional steps, webhook subscriptions, or permissions required to get these requests?
- Is there a way to debug or force Shopify to send those fulfillment requests again?
- Also, in the Shopify admin, I don’t see the “Request Fulfillment” button. Instead, I only see a “Fulfill Item” button. Does this mean something is misconfigured with my fulfillment service setup?
I’ve double-checked my endpoint and logs, and everything seems to be working fine on my side. Any guidance or suggestions would be greatly appreciated!
Thanks in advance