Online shopping has changed a lot over the years and the pandemic only made it grow faster. With so many eCommerce websites, businesses must find ways to stand out and meet customers’ changing expectations. Simply having a website that works well is not enough anymore. To succeed and grow, businesses need a good front-end and an even better back-office system.
As a mobile app developer for eCommerce, I’ve worked on many different projects with different needs and challenges. In this blog, I want to share my experience working on a warehouse management app module. The goal of this module was to help the warehouse’s inventory management team process orders more accurately and quickly.
Let’s take a closer look at the challenge of processing orders, the complexity of back-office operations, and how we developed a powerful solution to help.
A quick overview of the eCommerce back office operations:
For an eCommerce website to deliver orders on time, it needs a strong system that supports the back office operations. This includes an order management system to handle order processing (picking, packing, and shipping), an inventory management system to make sure the business always has enough stock, and a warehouse management system to run the warehouse smoothly and make the best use of storage space. When all these systems work seamlessly, then it helps with the smooth processing of orders.
Our client’s eCommerce website caters to retailers and wholesalers. So, each order received in the system is a bulk order, meaning that the quantity needed for a specific order is usually large. Sometimes during the order processing, when there is not enough active inventory to fulfill any order, there is an immediate need for more stocks for order fulfillment. If there is a delay in fulfilling the order, it directly impacts the delivery time, and the customer will not be able to receive their orders as per the schedule. This affects the customer experience and has a direct impact on return customers and sales.
The challenge was that the warehouse receives 200-300 new purchase order boxes for stock replenishment daily; some of these boxes contains the products needed to fulfill the orders which are being processed by the back office team currently. But to find the product, the back office team must check all those boxes, which is insanely time-consuming and laborious. Secondly, they also need to know whether there is the desired quantity of the product per the order. What if they can find the right product in a box, but there isn’t enough quantity to complete the order?
The mobile app we made for the warehouse team uses Swift, Coredata, and storyboard. It helped them manage tasks such as checking the stock, picking items, and assigning storage spaces (called bin locations) to make inventory management easier.
To solve the current challenge, we added an additional functionality to this app particularly to search for products in a purchase order that is received daily by the warehouse team by introducing a QR code. When the purchase order boxes are prepared for shipping at the procurement center (source from where the warehouse receives its stocks for further sales and distribution), they will be assigned a unique id. The procurement unit will use this unique box id to store the product details and quantity of the goods packed inside the box in the system.
Each box id will then be used to generate a unique QR code that will be printed on every box, before it is shipped to the warehouse. So, when the boxes are delivered to the warehouse, the inventory team can use these QR codes to find the intended products by simply scanning it.
How did the new search functionality work?
1.) Searching for the product and quantities inside the box
The warehouse team will open the mobile app and navigate to the search functionality. With the help of the search bar, they will enter the details of the products that they want to search for. They can select the product to be searched in various ways, which are:
- a drop-down menu that lists all the products related to the terms entered into the search bar
- manually type the details
- scan the respective product barcode if they have the intended product that they want to search for at hand
Once you have entered/selected the product to be searched, it automatically triggers the next action that is enabling the camera for the warehouse team to scan the QR codes of the purchase order boxes that have arrived. A QR code stores information as a series of pixels that any digital device can interpret. In our case, the QR code stores the unique box id decoded by the phone’s camera during the scanning process.
After the scanning, the next action involves triggering API calls to the web server using the unique box id and retrieving the data for that id.
The retrieved data is then matched against the entered search item. When there is a match, a green frame appears around the QR code and displays the product details and quantity; if there is a mismatch, a red frame appears. The person scanning the order can skip the boxes with the red frames and go ahead and open the boxes with green frames to prepare the order shipment.
2.) Scanning multiple boxes at a single time using multithreading
The next challenge was to make the process fast because there are about 200-300 boxes to be checked, and checking one box at a time isn’t feasible. So, we implemented a technique that allows them to scan 5-10 packages simultaneously. To accomplish multiple-box scanning, we used Swift’s multithreading concept. Multithreading allows you to run several processes simultaneously, keeping the user unaware of the changes because the thread switch happens quite quickly.
The user will use their phone camera to scan one or multiple QR codes at a time. For example, if we want to scan five boxes at a time with the help of multithreading, we make 5 API calls at the same time to the server and get the intended details immediately.
Through this minor feature addition which may seem small, it created a huge impact on the warehouse team, making them efficient in processing more orders in a day while saving cost. Most of the solutions we have developed for customers are always focused on helping businesses automate their processes and reduce redundancies, manual labor, and unwanted errors while saving costs.