When the Marketplace Connect app imports an order from Amazon which is marked as FBA (fulfilled by Amazon) no inventory adjustment is created for the shipped products. Therefore the stock is not reduced. However the corresponding fulfillment order points to a normal shop location and have a fulfillable quantity that is greater than 0. It is not apparent to us as a ERP system how we are to distinguish these orders / fulfilments and not adjust the stock in our system when they are created.
We could not find any way using the GraphQL API to distinguish such entities and would therefore ask that a way is added to recognize orders / fulfillments which should not adjust stock.
Let me add some context:
The issue arises for merchants using the Shopify Marketplace Connect App.
Merchants who rely on Amazon FBA do not fulfill these orders themselves, Amazon does that for them. Therefore, the inventory of products in the merchants’ locations should not be reduced when an FBA order is marked as fulfilled by Shopify Marketplace Connect.
What Shopify Marketplace Connect seems to do when an FBA order is placed is, that a fulfillment is immediately created in a merchants’ location, but this fulfillment does not reduce the inventory of the product, so Shopify’s stock levels remain correct.
However, difficulties arise, if stock managing third party apps (ERPs, like ours) are involved.
We act as the system of record for inventory. We create fulfillments in Shopify for all orders processed by the merchants (and thereby reduce the inventory in Shopify). If the merchant creates a fulfillment directly in Shopify (or if a third-party app creates one), we also import this fulfillment to our ERP and reduce the inventory in our system, if said fulfillment was created in a merchant’s location.
This leads to problems in the FBA case: Shopify Marketplace Connect still creates a fulfillment in a merchant’s location, even though the inventory is not actually reduced there.
Like @Benedikt_Brunner says, as far as we can tell, the GraphQL API does not provide a way to distinguish between
- “normal fulfillments”, that are supposed to reduce the inventory in a merchant’s location and
- “Shopify Marketplace Connect FBA special fulfillments” that reference merchant’s location, however never reduce the stock.
@Liam-Shopify do you maybe know how to identify these fulfillments or to work around this problem?
Hey all. I’m taking a look in to this to see what I can find out for you. I’ll follow up here once I know more.
Hey @KyleG-Shopify, thanks for answering!
Did you already have the time to take a look?
Cheers!
Hey Florian, yes, I’ve been looking in to this and still awaiting work from our teal that works with marketplace connect to get some clarity. It is not forgotten. I will update here as soon as I have more information.
Hey @Benedikt_Brunner and @Florian_Faatz,
After digging in to this, there isn’t currently a direct solution for this. What I did find though is that Marketplace Connect does assign order tags to FBA orders. The workaround is to query the order’s tags field via the GraphQL API and use that tag combined with the fulfillment data to know what has happened.
The feedback on this limitation has been passed on as well. 
1 Like