I am using fulfillmentCreateV2 mutation to fulfill the orders into Shopify, in the payload if I pass notifyCustomer: false so it won’t trigger the Shipping confirmation email, but when I am writing tracking numbers back into Shopify using fulfillmentTrackingInfoUpdateV2 mutation with the notifyCustomer: true it is also not triggering the Tracking Number emails. The conclusion is I don’t want to send Shipping confirmation when we create fulfillment in Shopify, but I want to trigger the Tracking number emails when there are tracking numbers.
Have you seen if the boolean is actually boolean?
Sometimes we pass strings to it and it just don’t work.
In the variables for the query make sure you only put the true or false strings without quotes.
This has been a problem for me before when invoking bulk operations.
Also, take a look on the fact that the message delivered to the end user, the customer for tracking number, is only triggered when the tracking number changes, so my recommendation would be to put 2 different scenarios as it follows, just try them and see if it works:
-
Include a value within the variables of your mutation for the “shipping update” email message as true, only when you want that notification on the customer inbox and in no other case, not even with the value false.
-
Send the tracking info → number or tracking info → numbers without the parameter notifyCustomer whenever your process needs to update a tracking number or numbers.
I have been running through this problem since Shopify released the new Fulfillment API. And no acceptable solution is available on their API doc. I am using GraphQl which has type safety. It will throw an error for invalid data types.
The tracking number email will trigger if I pass notifyCustomer: true when creating the fulfillment but it also will trigger the shipping confirmation email at the same time of fulfillment. So I just want to send an email when I update tracking details.
Then try to not include notifyCustomer, because it’s not a mandatory parameter and it can be ignored whenever the tracking info array that includes the new number is sent.
Check it on you GraphQL endpoint and tell me how it went.
The snapshot of the payload for creating fulfillment in Shopify: https://prnt.sc/Gml0MZ-GZHz5 And the tracking number update payload: https://prnt.sc/Gml0MZ-GZHz5
No emails were triggered and if I pass true in both the payloads then it will work but it will also trigger a Shipping confirmation email that I don’t want to trigger.
Edit on above**
And the tracking number update payload: https://prnt.sc/WS8IvRPwYr9k
That’s what I mean, omit the notifyCustomer and send everything else.
Because maybe what you are doing right there is telling the platform:
“Hey, I know that you send a notification whenever you update a tracking number, but don’t send anything, OK?”.
So, the end user ended up receiving a message when you didn’t passed the notifyCustomer with any value?
And if so, what did the end user received?
No emails were triggered! I tried removing notifyCustomer in both payloads.
It will trigger only in once case when notifyCustomer is true in both the payload.
Another possibility is to try to do what I did with what I have using the REST API.
You want to take a look or setting aside GraphQL is not an option?
Not sure if it works in REST but can’t use it as a RATE limit issue.
If you use this:
https://shopify.dev/docs/api/admin-graphql/unstable/mutations/fulfillmenttrackinginfoupdatev2
Maybe you won’t be generating an email notification to the customer (regarding shipping), also, when using this you must pass the notifyCustomer variable as boolean true in order to inform about the change in the tracking number.
Have you seen it before? I think it’s a different mutation.
I have gone through the all docs and have tried all possible options. It works fine when I pass notifyCustomer: true in both the payloads mentioned below in SS. But it also triggers an additional shipping confirmation email.
Please include the new tracking number in your resulting array, not only the Fulfillment global ID, and also please show the result when using the fulfillmenttrackinginfoupdatev2 mutation and omit the name parameter, as it makes no sense because there is no name value for a fulfillment.
I just want to see what happens.
If it persists it’s probably due to the fact the whole shipping process is updated.
For example:
Let’s say that a shipping guide is automatically assigned to a certain order that has a certain weight.
If you only partially fulfill an order that has many items on it you have to change the tracking number that was originally assigned to the order, and by doing so, the shipping information changes.
Maybe it’s entirely intentional to send those two messages, one to announce the tracking number being changed and the other to take a look over the general shipping information over the partially or totally fulfilled order.