BUG: Deleted fulfillment services prevent products from being edited via API

New Member
2 0 0

Hi,

We noticed a problem with Shopify API with some of our apps user stores. We sometimes get the following error when trying to update product:

{
  "errors": {
    "fulfillment_service": [
      "is not defined for your shop"
    ]
  }
}

Or this error when trying to add fulfillment to order:

{
  "errors": {
    "base": [
      "Your shop does not have the '******' fulfillment service enabled."
    ]
  }
}

It turns out that the product in question had a fulfillment service value set for some of the variants that was not the default "manual". However when checking for fulfillment services in that store (fulfillment_services.json?scope=all), we see that there no such fulfillment services exist.

{
    "fulfillment_services": []
}

It looks that the problem is caused when the user uninstalls application that created the fulfillment service. I tried this with my test store and successfully repeated the issue:

  1. Installed app that creates a fulfillment service (Advanced Shipping Rules app)
  2. Set fulfillment service for some of my products
  3. Deleted the app
  4. See that products in API still reference the same fulfillment service value that no longer exists
  5. When trying to edit products from API (any value of product that is not related to fulfillment), I now get the error mentioned before

When editing variant in web interface, I see that thedropdown shows "Manual", but that is only because the value actually stored in database is no longer available.

I found two ways to fix this manually:

  • User has to manually edit each variant and set fulfillment service to manual (long and tedious task, and hard to do because in the web interface it already looks like it is set to Manual)
  • Use API to change each variants fulfillment_service to a value that is available (but this shouldn't be the app responsibility, especially if it has nothing to do with fulfillment service that caused the problem)

So it looks like a bug on Shopify side - to work correctly, they should do one of the following:

  • reset fulfillment_service value in all products if the app that created it gets deleted
  • do not cause validation errors for this field when app is trying to modify product fields that are not related to the problematic one.
0 Likes
Shopify Staff
Shopify Staff
1113 77 153

Hey there, 

I definitely agree in that ideally we would just roll back to a manual fulfillment service in the event this happens. I've been trying to test this using my own fulfillment service and haven't been able to replicate it though, my test shop actually does revert back to manual fulfillment every time. 

Are you able to recreate this 100% of the time with the Advanced Shipping Rules app? Do you have an example product ID this happened to that I may be able to have a look at? If you have a timeframe for when this occurred it would be great as well. 

0 Likes
New Member
2 0 0

Hi,

I tested this with product 645320048682 on store pftest123.myshopify.com

Product is reverted correctly when fulfillment service is deleted. I tested this both with manually created custom fulfillment service in dashboard and fulfillment service created from API.

However after the app that created the fulfillment service is uninstalled without deleting fulfillment services first, the product still contains the previous fulfillment service value.

Some variants of my test product still contain "printful" (created by Advanced Shipping Rules app) or "printify" (created by Printify app) as fulfillment service value, although both apps were uninstalled.

As a result I get the error when trying to do simple changes to product (like updating title or description).

0 Likes
Shopify Staff
Shopify Staff
1113 77 153

Hey again, 

I've actually just managed to replicate this accidentally, however I can't do it on demand - I'll have to do some more testing. Once I find a way to replicate this reliably though, I'll reach out to our developers and have them take a look at fixing it. Thanks for the heads up! 

0 Likes
Shopify Partner
15 0 1

I am also experiencing this when trying to mark an order as fulfilled - order ID 916564705338

 

 

0 Likes
New Member
1 0 0

I was wondering if there was a solution found for this issue....

i.e. If the order was placed with an item that has non-manual fulfillment service, then that service was deleted, and the item is now set to manual,  how do I insert the tracking information for the product (since it still has the fulfillment service of the old, deleted service).

I have tried with the API, and I get "errors{base[Your shop does not have the 'X' fulfillment service enabled".

I have tried manually, and it errors out.

 

Any suggestions?


@Josh wrote:

Hey again, 

I've actually just managed to replicate this accidentally, however I can't do it on demand - I'll have to do some more testing. Once I find a way to replicate this reliably though, I'll reach out to our developers and have them take a look at fixing it. Thanks for the heads up! 


 

0 Likes
Highlighted
Tourist
7 0 5

I just had this issue with InkFrog (an app/service that helps push Shopify listings to eBay).

Sales from our eBay store would automatically appear in Shopify,

but...

when trying to dispatch/fulfil using an app, we'd get this error

and when trying to dispatch/fulfil using the Shopify website, it would just give a generic error ("There was an error" -- or something like that).

I looked at the variants and they have fulfilment set to 'manual'

 

There was no solution to this problem without using the API,

so I said screw it and just deleted all these orders (the orders still exist on eBay).

0 Likes