Wednesday, October 22, 2014

OpenBoxes v0.6.7 released

It's been awhile since v0.6.6 was released (August 31).  I haven't had much time for new feature development, but have been trying to fix a few bugs as well as providing support for several new users.  The next few months should be a little more productive and I'll try to add our Road Map to the website so that I can get some feedback on what we should be working on.

In addition to a few bug fixes, this latest version comes with some improvements to the Purchase Order workflow.  I'm hoping to spend a lot more time on Purchasing in the next few months and will be working closely with some of our users to figure out their immediate needs.  So please let me know if you have any feature requests or requirements you'd like taken into consideration.  As always feedback, bug reports, and feature requests can be created via GitHub.

Or by clicking on the Feedback button the website.

Click on the link below to download and view release notes for the v0.6.7 release:



List Purchase Orders

View Purchase Order

Print Purchase Order

Download Purchase Order as CSV

Monday, April 7, 2014

Confluence Questions

We're very excited to announce the launch of the OpenBoxes Knowledge Base.  This is a Q&A community powered by Atlassian's Confluence Questions.  Find answers to commonly asked questions, receive expert advice from users, or ask your own questions.

NOTE:  If you receive an Access Denied error after successfully creating your account, just give me a few minutes to add your account to the proper groups.  Or email me (justin at openboxes dot com) if you're feeling impatient.

Confluence Questions

Wednesday, March 26, 2014

OpenBoxes v0.6.3.1 Bug Fix Release

We discovered a showstopper bug in the most recent version of OpenBoxes (v0.6.3) that occurs on some, but not all instances.  If you see an empty category selector (see the screenshot below), please upgrade to the version  The bug may prevent a user from creating or updating products, as well as browsing inventory by category.  

You can download the v0.6.3.1 release from github:

Here's a screenshot of the bug:

Tuesday, March 18, 2014

OpenBoxes v0.6.3

OpenBoxes v0.6.3 has been released.

Release Notes - OpenBoxes - Version 0.6.3

Bug fixes

[OB-2966] - CreateProduct | Could not find matching constructor for: org.pih.warehouse.core.ApiException(java.lang.String) (org.springframework.webflow.execution.ActionExecutionException)
[OB-3046] - Delete Product | Cannot get property 'id' on null object (java.lang.NullPointerException)
[OB-3078] - Unparseable date: "01/févr./2014" (java.text.ParseException)
[OB-3087] - OpenBoxes default startup fails in development if using a copy of a production database
[OB-3092] - email-generated packing list showing incorrect quantity
[OB-3104] - Should allow user to remove tag value from spreadsheet without causing an error


[OB-3002] - Inventory Import | Should handle multiple expiration date format (yyyy-mm-dd)
[OB-3050] - Stock out indicator report should group by product group
[OB-3051] - Consumption report should include generic product
[OB-3086] - Should refresh megamenu when user switches locales
[OB-3090] - view product group on stock card
[OB-3094] - Add product group column to exports
[OB-3098] - Add manufacturer / vendor information back into inventory level import
[OB-1961] - List Shipments > Need to improve performance using pagination


[OB-3100] - Allow user to assign their own product code when creating a product
[OB-3101] - Allow user to download templates for importing data
[OB-3102] - Create an inventory snapshot fact table to keep track of QoH and other quantities by date
[OB-3105] - Allow admin to configure default role to be added when user signs up for an account

Wednesday, March 12, 2014

Inventory Management Basics

I have a couple of blog posts in draft form that I'm going to try to publish over the next few weeks months years, but I wanted to start with a quick article about Inventory Management basics -- the things you do outside of the electronic system that will determine whether your overall supply chain or inventory system is successful.  Most of the blog posts that I'm planning to write will be related to best practices that I've learned through the development and implementation of OpenBoxes or that I've read about in blogs or books.

One of my next articles will be about open-source ERP systems.  I've evaluated most of the open-source systems (as well as a bunch of commercial systems) during the past few years and wanted to at least provide a list of these systems to help give people a sense of what's out there.  I won't be able to write reviews for all of them (at least not in the short-term) but I'll try to provide enough background to help people in their search for the right system.

But before we get to those articles, I wanted to share an awesome best practices guide published by the folks at Clearly Inventory, a web-based inventory management system that is simple to use and relatively inexpensive.  I have no affiliation with Clearly Inventory, other than I've evaluated in the past, but I have a special place in my heart for this company because they seem to "get it".

The guide highlights the most important aspects of managing your inventory and walks you through what you need to do BEFORE you adopt an inventory management system.

The guide is pretty simple and straightforward (maybe even obvious to most).  But the reason this guide is so remarkable to me is because it is one of the only places on the web (that I've found) where a company trying to sell an inventory management system has provided publicly accessible instructions for how to improve the processes around the electronic system.  Most of the major commercial brands publish these awful marketing blurbs about how to "synergize your supply chain with our cloud-based ERP offering" but they never give any concrete advice on how to improve your supply chain processes to effectively use their system.  Either they don't know or they want you to pay for that advice.  In either case, that's not a company I want to do business with.

The main point is that you should implement sound processes before you select a system.  In fact, the system you choose should complement the business processes you've adopted, not require you to completely rewrite all of your operation manuals.

I've been developing software for over 13 years and while I'm an advocate of using software to solve problems, I feel like the electronic system is always just a small part of the solution.  And in reality it's usually part of the problem because the people adopting the system believe that it will magically fix all of their problems.  A new system should not be adopted because you think it will fix all of your supply chain woes.  It should be used in concert with your current business practices to improve processes that you know are deficient because you've analyzed them.  If you don't think you've solved your business process problems yet, do that before looking for a new system.  Your Excel spreadsheet is probably good enough until you fix the human/process problems -- those human/process problems become much bigger when you adopt the wrong system (more on that in another post).

Some example business process problems that you need to solve first:
  • hire the right staff (with skills and education that match your needs)
  • find the right manager for your staff (focus on domain knowledge and leadership qualities)
  • adopt conventions for naming, identifying, and classifying products 
  • establish procedures for counting, receiving, putting away, and picking stock
  • understand what products are your fast movers and move them to a convenient picking location in your warehouse (more on ABC analysis later)
  • organize your stock's putaway locations (aisles, shelves, bin locations)
  • review demand on a periodic basis and prepare yourself for possible changes in demand 
  • determine reorder points for your products and review periodically (weekly, monthly, quarterly)
  • COUNT YOUR F------ STOCK OFTEN! (a.k.a the "CYFSO" principle)
  • know the lead time of your vendors, establish safety stock levels
  • create a bootcamp training for on-boarding new staff members and management
  • schedule recurring training sessions for your staff to keep them abreast of latest procedures 
  • provide opportunities for management to learn new systems and skills
  • empower staff to take initiative in reporting discrepancies, expiration, low stock, stock outs
  • figure out what data you will need in order to do all of the above better
Try to solve some of these problems first and then look for a system to help improve efficiency of those processes.  Unfortunately, most software providers spend most of their time convincing you that their system will revolutionize your business without ever really understanding and improving your current processes.

Don't be fooled.

Hello, World

My first blog entry on the OpenBoxes blog.  More to come related to OpenBoxes, as well as supply chain and inventory management best practices.

Saturday, February 1, 2014

OpenBoxes v0.6.2

OpenBoxes v0.6.2 has been released.

Release Notes - OpenBoxes - Version 0.6.2

Bug fixes

[OB-2648] - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1
[OB-3032] - Stock Card | Cannot add item to shipment due to "No pending shipments" error
[OB-3047] - Edit Requisition Item | NullPointerException: Cannot get property 'code' on null object
[OB-3048] - Delete Product | NullPointerException: Cannot get property 'id' on null object
[OB-3058] - Verify requisition: Should show the appropriate reason codes for each action (cancellation, substitution, modification) when editing a requisition item
[OB-3074] - MissingMethodException: No signature of method: org.pih.warehouse.product.Product.removeFromSynonyms() is applicable for argument types: (null) values: [null]


[OB-2555] - Delivery note | Should cross out requested item if there is a substitution
[OB-2834] - Include cancelled items on picklist and delivery note
[OB-3015] - Indicate date range of shipments on dashboard
[OB-3033] - Record Inventory | UI tweaks for Blake
[OB-3035] - Browse Inventory | Should allow user to deselect category
[OB-3066] - Import inventory level data should ignore product name and category columns
[OB-3068] - Configure staging and procurement server to use new smtp account
[OB-3069] - Substitution reason code should contain translate french for "substitution due to" and "cancelled due to"
[OB-3070] - Cannot get property 'id' on null object at /WEB-INF/grails-app/views/shipment/showDetails.gsp:183


[OB-2322] - show quantity pending in a requisition when view stock card


[OB-3028] - Upgrade to latest version of newrelic on staging and production
[OB-3045] - Import IMRES products