No one responded here, and Shopify Partner Support directed me to Slack and explained they aren’t developers.
I’ve concluded that it is not possible to designate a fulfillment service app as the default location.
I have figured out how to transfer inventory from one location to a fulfillment service app:
Install the Fulfillment Service App:
Follow the instructions here to install the app.
Associate Inventory Items:
Fetch the store’s ProductVariants.
Use GraphQL to obtain the InventoryItem IDs.
Activate these items using the inventoryActivate mutation and the location ID returned when creating the fulfillment service. More info here.
Prioritize the Fulfillment Service Location:
Manually set your fulfillment service as the highest priority location in the Shopify store settings and configure its Shipping Rates. (No API method available for this step currently.)
Pause Fulfillment Updates:
This is done on our backend, suspending updates on our fulfillment service app.
Sync Inventory Counts:
Loop through each inventory item.
Use inventoryActivate to set the standard location’s inventory count to zero.
Immediately after, update the count for the fulfillment service location to the correct amount.
I hope this helps. Let me know if you have any more questions.
Hi, thanks for your detailed reply! I’m using a different fulfilment service app.
You’re right that it’s not currently possible to select a fulfilment app as a default location (Shopify - please fix this!) but I was able to get around the issue.
I made sure stock was assigned to that location, used order routing rules to make it the preferred location, but it still was defaulting to the old location.
I realised that was because I hadn’t set rates for the fulfilment app in the shipping settings! Once I copied the rates over all is working as it should.
Hope this helps someone else.