To provide a more fine-grained approach to stock control in concrete5's ecommerce we've packaged up a new customer choice and dashboard page.
If you run an online shop that sells physical items an ongoing challenge can be to keep track of your stock levels and ensure that customers can't buy items you don't have stock for.
Concrete5's eCommerce package has built in stock management, which allows you to enter in stock levels against each product you sell, with the system reducing these stock levels when orders are placed, stopping customers from ordering once the stock level reaches zero. This basic form of stock tracking works great if your products are simple and present no options, but as soon as you sell variations of an item, such as sizes, colours or anything where customers make a choice, this approach no longer gives you full control over your stock levels.
With an online shop we have been recently styling and configuring for a client we recognised that with the wide range of product options they had, they needed to be able to control individual stock levels of product options. After investigating the current marketplace options for advanced stock control we found that they didn't quite work how we wanted and decided to build our own solution.
An extension of the 'Select - Product price' custom choice
As we wanted to track individual stock levels to different product options, we recognised that we needed to create a custom product attribute, similar to the existing configurable product attribute that can list options with a price modifier, but with an associated stock level.To achieve this, we cloned the existing attribute, and added our extra field.
This means that we can now add a list of options (e.g. a list of product colours), which each have a quantity. The quantities are decremented on sale and will eventually grey out on the front end of the shop.
All stock levels at a glance
Adding stocks levels for new products is only half of the equation - stock levels for existing products need to be updated when new stock comes in or purchases are made offline. To make this process more streamlined we developed a custom dashboard page which presents a searchable list of products, where their quantities and option quantities can be edited and updated in one go. Even if you don't use the stock controlled product attribute, this extra dashboard page is handy!
Although the option drop down will grey out when the stock level for that option has been depleted, this won't prevent someone from adding to their cart a quantity for that option greater than what is actually available. It will still respect the total product quantity however.
So this add-on is really intended to remove options automatically, removing the need for manual intervention, but isn't a hard-lined stock control. If you are needing strictly enforced stock control, the recommendation would be to make separate individual products.
I've pushed this to github for anyone to use and/or enhance. Although much of the add-on uses code from the non-open eCommerce, I've been given permission by the concrete5 team to release this publicly.
Download the zip from github, unzip it to your top level packages folder, remove the '-master' from the folder name and install via the dashboard. After installation you should find the new dashboard page in the eCommerce section and the new customer choice ready to set up for products.