When a 3PL creates a fulfillment service, which is the correct way and seamless way to interact with Shopify on behalf of a client, it implicitly creates an underlying location with the property “legacy” set to “true”.
The problem is when the client connects other third-party apps that try to create or synchronize orders, these locations never show up in whatever platform they’re trying to use, because the default locations query has includeLegacy set to false.
This results in a situation where the 3PL is blamed for doing some weird, and I have to explain that the other service simply needs to set includeLegacy: true so it will show up in their tool’s dropdown and then the problem goes away. But because most companies have abdicated all responsibility for competent customer support, the conversation usually stops there.
Even if I do get through to a developer, I then need to explain why it’s not actually legacy, which makes it sound like the 3PL is doing something wrong, instead it’s some leftover flag from when Shopify had half-baked support for multiple locations and the hacked in something over a decade ago for Shipwire, before permitsSkuSharing and all of that came around. Probably half of the Shopify developers don’t even know why the flag is there, and that the name of the property itself is legacy.
Please, for the love of Pete, change includeLegacy to true in the default locations query in a future API release, or just get rid of the flag entirely. With fulfillmentOrders and permitsSkuSharing in the past, I don’t know why the flag still exists.
