Order Management Multiple Fulfillers for Same Products

Order Management Multiple Fulfillers for Same Products

Memento
Visitor
2 0 0

This question relates to order management and fulfillment workflow.

 

We are launching a premium t-shirt print-on-demand business on Shopify later this year and work with two great factories - one in North America > producing for orders in North America and one in Europe > producing orders or Europe.

 

Both factories have their own existing systems/software that are setup to quickly integrate with Shopify’s existing APIs.

 

We need to:

 

  1. Insert a layer/filter in-between our orders and the API that directs certain orders to each factory based on a set of rules/paramaters (e.g. location of customer order)
  2. We need to do this without requiring the factories to significantly alter their integration or the type of APIs they interact with. Ideally it’s just us providing new API keys and it’s no difference to them.
  3. We don’t want each factory to see the other’s orders. Both factories produce the same items.
  4. As a bonus, ideally we would have the ability to override or direct certain orders from one to the other temporarily (e.g. if one factory got behind on orders and we wanted to route all orders to the other).

 

Our North American partner is already integrated/using our standard/Shopify APIs. We created a “custom app” in Shopify App development that essentially just grants them read access to our orders, product listings, and product APIs (took 2 minutes to setup).

 

Our European partner has not yet integrated/connected to our APIs.

 

Your helping how we can most efficiently set up the above 4 needs would be very helpful!

Replies 4 (4)

Liam
Shopify Staff
2873 312 821

Hi Memento - great to hear you're launching a new business soon! 

 

What it sounds like you're trying to do is to set up an order routing system based on the customer location, the locations of your fulfillment companies, and some manual interventions when needed. Here is a very general outline of how this can be approached:

 

Use order creation webhooks so whenever an order is created, this webhook will send order information to the URL you specify. This URL would direct to a server that you control, which acts as the "layer/filter" (middleware application) you mentioned. This server would receive the order data, determine where the order needs to go based on your rules (such as the location of the customer, or shipping address which is included in data from the webhook), and then forward the order to the appropriate factory. 

 

Your middleware application would then make a request to the factory's own API. Each factory would have its own API endpoint, which would only receive orders that are meant for it. You could provide new API keys to your factories, as you mentioned.

 

Once the factory's API receives the order data, it would process the order just as it would if it was receiving the order directly from Shopify. It shouldn't require any significant changes to the factory's existing integration or APIs.

 

As for being able to manually route orders from one factory to the other, this could be a feature of your middleware application, so wouldn't live within Shopify. 

 

In terms of how to actually build this out, it would largely depend on the tech stack you want to use. Setting up the webhook to send order data to a specific URL is not very complex (see this short guide). The middleware could be built in any language that supports web server functionality, like Node.js, Python, Ruby, etc. You'd also likely need some sort of database to keep track of orders and where they're routed, and a way to transfer back fulfilment data to Shopify if needed. 

 

This is quite a high level description - but I hope it helps!

Liam | Developer Advocate @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

Memento
Visitor
2 0 0
Hi Team,

Thanks very much for the detailed and expedient response.

I have to imagine we are not the only store out there that have this need
to route orders according to certain logic (middleware application that
replicates Shopify order API). Do you know if there are any third party
apps that can do this already for us that wouldn't involve a custom build?

Best,
Scott
Liam
Shopify Staff
2873 312 821

Hey Scott,

There is for sure many apps on the Shopify App Store that can offer custom fulfilment options. Here's a couple that might work for your use case:

Hope this helps,

Liam | Developer Advocate @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

gnicklas-LS
Visitor
1 0 0

Hello Liam,

I am trying to solve a similar but slightly different issue. 

We are currently integrated with one 3PL warehouse partner's API and we are launching an additional 3PL warehouse partner through their API with ShipHero to ship the same set of goods as our first 3PL warehouse partner.

Our intent is to fulfill orders from the first 3PL warehouse partner first based on inventory availability, and if the order cannot be fulfilled in full then we want to fulfill the order from the second 3PL warehouse partner.

Would the same apps suggested above be recommended for accomplishing this kind of work flow or is there another solution recommended since we are not looking to fulfill order based on additional criteria?