Dev Log: Inventory Management/Online Ordering Portal

I probably shouldn’t do two Dev Log posts in a row, but this is my blog, so I can post what I want. I will likely condense all my projects into one (maybe weekly) post, but until then, here’s another one about a different project. This is not my project but one that I am working on for my employer that can save them thousands of dollars a year. They need a system that allows their clients to order semi-customizable products and store the excess in an inventory system.

This project has been separated into warehouse management and client portal, and I’m currently about 60 hours into it. A client can log in to the portal, view the specific products set up for them, choose the options/fill in the fields for the product. All of this information would be sent to the salesman in charge of the account and they choose where it goes from there. That’s pretty much where it’s at right now.

The Warehouse Management portion is the one that is actively being developed right now. So far, I have purchased and downloaded a nice template for the layout and connected a few databases allowing the user to add a new Warehouse, Aisles for the warehouse, and Locations for the warehouse. I didn’t run into too many issues setting that up so far, but the next step is to create the ability to add products to the database.

This step causes a few issues as I’m currently not sure how to move forward. For a bit of background, we already have a Project/Inventory management system that is not being replaced. I’m not too knowledgeable about this system. The product codes don’t fit together very well, causing me to believe it’s a manual process to add products. Products have a different coding scheme across clients, and some even differ within the same client. Since we are not getting rid of this system, this is something that I need to figure out how they’d like to proceed. My approach would be to have the system create these numbers for you to keep things cohesive. However, if I do go with that approach, we would be dealing with a total of three codes (Our Code, Inventory Code, and the Clients Code) per product…

Another minor issue that I’ve already realized will be that when you add products to the inventory, you’d obviously like to also locate them somewhere in the warehouse. At first, this sounded like a simple system in my head, just use a few dropdowns and have them select where it going, right? Well, it may not be that simple. Let’s say you have a warehouse with two aisles. Both aisles have the same 3 locations, which you have labeled A-C. If I were to list all your aisles, you would have this list; 1, 2. Not that crazy, but when you list all your locations, you’d have 1A, 1B, 1C, 2A, 2B, 2C. This may not seem like a huge issue, and truth be told, it’s not. Not functionally a problem anyway. I planned to have separate dropdowns for the aisle and the locations, meaning your lists would actually look like 1, 2, and A, B, C, A, B, C. Now you could choose aisle 1 and select the second A and everything would still be fine, it would still show in the system as located in 1A. The issue is just of usability, as you will have multiple of the same location per aisle if your locations are named the same across the aisles.

This usability issue can be solved in one of 2 ways, the first one being to just ignore it and hope no one has a problem with the duplicated locations. As much as I prefer this solution as it’s a lot easier, I also have a habit of thinking that whenever I develop anything, people won’t like the most specific features. This is why I tend to “overthink” particular problems that many people may never have even thought of as an issue. The other option to overcome this obstacle is by using a language that I’m not super familiar with. That language would be AJAX or Asynchronous JavaScript and XML. Though I’m not used to using this language, I believe I could have the user select an Aisle, then make an AJAX call asynchronously to the database to pull all locations that aisle has. This will prevent duplication and make everyone happy. The only problem is I’m not entirely sure if that’s what AJAX does, and I’m definitely not sure about how to do it if it can do it.

As I’m working on this project for my full-time employer, I should make some reasonably quick progress on this and will probably have an additional update soon. Maybe I’ll even have some of the issues figured out by then, but I’ll probably have some additional ones to stack on top. That’s it for this post, and I appreciate you for taking the time to read it all the way through!

Leave a Reply

Your email address will not be published.