[Shopify] Handle deleted fulfillment service location in Shopify#6847
Merged
[Shopify] Handle deleted fulfillment service location in Shopify#6847
Conversation
darjoo
approved these changes
Feb 26, 2026
Groenbech96
approved these changes
Feb 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When a fulfillment service location is deleted in Shopify but the corresponding
Shpfy Shop Locationrecord still exists in Business Central, theGetLocationGraphQL query returns{"data":{"location":null}}. The code attempted to parsedata.location.fulfillmentServiceas a single path, which fails because the nulllocationtoken cannot be traversed to reachfulfillmentService. This left a stale record withFulfillment Service Id = 0, causingUpdateFulfillmentServiceCallbackUrlto proceed with an invalid ID in theUpdateFulfillmentServiceGraphQL mutation.Solution
GetFulfillmentService: Split the JSON parsing into two steps. First resolvedata.location— if it's null (location no longer exists in Shopify), delete the staleShopLocationrecord (which cascades to relatedShpfy Shop Inventoryrecords) and exit. Then separately resolvefulfillmentServicewithin the location object.UpdateFulfillmentServiceCallbackUrl: After callingGetFulfillmentService, recheckFulfillment Service Id. If it's still0(record was deleted or service couldn't be resolved), exit before attempting the update mutation. This provides defense in depth against calling the Shopify API with an invalid ID.Fixes AB#622988