This post is for anyone with insight and experience of using the Shopify FulfilmentService API.
I 'm creating an app for a customer utilising the FulfilmentService API. Everything is working well, however... I'm coming up against an issue. If the app is uninstalled at any stage and then re-installed and all products are then re-assigned to use the "fulfilment service" specified by the app, any manual fulfilments that are made on orders placed prior to the uninstall/reinstall will not utilise that fulfilment service. Instead, they will default to using the 'manual' fulfilment service.
Needless to say that those manual fulfilments do not then reach the app's fulfilment handling process.
Anyone have any idea as to whether this is intended behaviour or an issue that needs investigation? Perhaps I'm missing a vital step in re-initialising the fulfilment service for existing products/orders or is it just not possible to undertake partial fulfilments on orders that were placed prior to the fulfilment service being installed into the store?
Any help much appreciated as always!
Fulfillment service is recorded in the Order at the time the order is placed. So if your App was not installed at that time, then none of the products would have your service as a fulfillment option, so it makes sense they were recorded as manual. When your App is installed, only then is it possible to stamp your service as an option.
So no, you cannot just install the service, set the product to use it, and expect old orders to magically pick that up.
I was once burned by this too, which is how I know it.
Thanks as always Bill,
Interestingy... the service was installed at the time the order was placed and the name of the service did not change upon re-install. I wonder therefore if there is a unique ID for the fulfilment service that also gets recorded with the order and that ID does not get re-used upon re-installation of the FulfimentService?
If it were just based on the name, then I would reasonably presume it would still work... but unfortunately it does not. This could be an issue where a fulfilment service needs to be re-installed by a merchant into their store to make use of major functionality changes within that service. It means that they won't be able to process any existing orders through to the fulfilment service. Not a big deal for most, but will certainly cause issues for stores that run partial fulfilments.
Thanks again for your quick response, if anything does ring a bell then please chime in!