We built a custom app for Farmer Bailey, a Wholesale custom flower plug brokerage, that saved the team four hours a week by automatically updating product inventory for one of their partner vendors. The vendor inventory is now updated 84 times a week rather than two. This allows Farmer Bailey to have a greater inventory accuracy and reduces communication and customer service time.
Farmer Bailey works with multiple vendors to sell their flower plugs. It’s common in the B2B flower plug industry to inform other vendors of product inventory changes by sending availability spreadsheets back and forth. One of the new vendors Farmer Bailey wanted to add to their Shopify store worked in this format. The vendor sells their plants through many channels and their inventory updates often.
As Thomas McCurdy, managing partner of Farmer Bailey, put it, “[the vendor] updates their inventory sometimes multiple times a day, and it will be important that we’re able to keep things super precise and in line with their real-time numbers.”
The main goal of this project was to get a real-time feed of product inventory from the vendor, and automatically update the inventory numbers in Farmer Bailey’s Shopify store. After exploring multiple avenues, we decided to create a custom app using Gadget.dev.
Farmer Bailey’s team was spending 4 hours per week updating the inventory spreadsheet from the vendor’s data and then updating it in the Shopify store. They were updating the inventory for the vendor twice per week. We had two goals:
The app consisted of five main stages:
We worked with the vendor’s IT Lead to set up a data connection. We created a URL in our custom app where they would send a file of their products’ latest inventory information every two hours.
The biggest difficulty here was due to a mismatch of skills. The vendor normally sent their data from one server to another using File Transfer Protocol (FTP). However we wanted to use more modern web programming techniques. The IT Lead didn’t have experience with web programming so we had to coach them through what we wanted to accomplish. This is through no fault of their own as it is actually the industry standard to use this old-fashioned technique.
We learned enough of their programming language to translate what we wanted into their format. We also assisted to debug errors from their side to properly encode the data to the file.
The vendor’s internal product IDs were different from the ones on Shopify. This means that we couldn’t understand which Shopify product to update out of the box.
We had to set up a mapping between the vendor and Shopify products so our app could know which vendor product ID corresponded with which Shopify product ID. This was necessary to update the product inventory correctly.
To set up the mapping, we went through each vendor product and manually associated it with a Shopify product. This was a one-time operation to get things set up. However in the future Farmer Bailey will need to add a mapping themselves for every new vendor product they want to add to their Shopify store.
Once the data was sent over and we knew which vendor product ID corresponded to which Shopify product, we could update the inventory. To be performant, we only updated products if their current inventory number was different from the vendor’s inventory number. This would be important on off times like the weekends where the inventory would not change very often, but the data would still be sent every two hours.
We treated the vendor’s data stream as the source of truth, so we always overrode Shopify’s inventory number. The vendor’s inventory would take any orders or cancellations from Farmer Bailey into account.
As mentioned before, the Farmer Bailey team would be responsible for adding mappings for any new vendor products. We created a simple UI to provide an overview of existing mappings and to add and delete new mappings.
Finally, we set up some monitoring features. An email would be sent out if the app didn’t receive any data from the vendor for more than 24 hours. We also displayed import reports to provide an overview of which product and variants were updated during each import. This would help with debugging if something were to fail.
Thanks to our custom app, the Farmer Bailey team has two less tasks to do in their weekly workflow. This custom app saved them approximately 4 hours per week. The vendor inventory is also automated and updated 84 times a week rather than two. This will help with keeping inventory numbers as accurate as possible and reducing customer service tickets if they oversold, since Farmer Bailey is not the only store selling the vendor’s flowers.
Here’s what one Farmer Bailey team member said: “I was initially updating the [vendor] spreadsheet on Monday and Thursday – each time the process took between 34 and 45 minutes …so approximately 60-90 mins per week saved thanks to Plentiful Commerce! If you are looking for total impact/time saved – I handed it off to two more team members (Ally and Bobby usually) who worked together to update the inventory on Shopify.” Updating the inventory in Shopify took 2 hours each week.
We’re so happy to further support Farmer Bailey in their growth in the flower plug industry!
Save your team’s precious time by investing in automation services. Many manual tasks can be automated to help your team focus on value-added tasks. Whether it’s updating inventory, adding product information, or updating content, we can work with you to build a custom solution.
Need inspiration? Check out one of our newsletter editions where we go in depth about when it makes sense to invest in a custom app. Make sure to subscribe to future editions if you liked it 😉
Get in touch with us at Plentiful Commerce to discuss how we can help with automating repetitive tasks in your business.