This is really just an initial post to let folks know that I've developed this and just need to tidy the whole thing up, write documentation and then make it available for sale.
The Problem:
Two of the major problems with Interspires current inventory and stock control system are:
- The inability to link products so that they share a common inventory/stock value. Instead the current system ignores SKU (stock codes) and you are forced to update multiple listings for the same product.
- The other missing functionality has been the inability to bundle multiple products into a "set" and track inventory/stock for the component parts without, again long hours manually updating everything.
In both instances the potential for wasted hours and overselling creates a major headache for you the store owner and discourages product listings and bundling that would otherwise increase your sales.
My Solution
The code I've written allows you to use the Stock Code (SKU) values to link products together and create bundled products so that your stock only needs to be updated once for each sale that you make or each time you update your stock levels.
Example #1 (Cloned products)
Canon Compatible ink CLI-8BK is the same ink used in the CLI-221BK cartridge so the stock code is the same, the ink is the same. Until now listing a separate product for each meant having two different products with two different stock levels that didn't interact.
Because both products use the same SKU the mod' automatically updates the stock levels automatically whenever a sale is made or stock is updated for just one of the products.
Note: Variations with the same SKU also work with this.. so if you sell a variation with the same SKU as a single product, both will have their stock levels adjusted together.
Example #2 (Bundled products)
Product Bundle "Cartridge set for the Canon iP4200" has five component products all listed as individual products. Before you would have to keep your bundled product stock separate from your individual product stock tying up potential stock if the bundled product outstrips it's designated inventory and you have to move stock across while updating five individual listings to account for it. Mistake waiting to happen? Oh yes!
Now, with the mod', you use a custom field "Parts" to list the SKU's for each component in a comma separated list. All your physical stock is together
(not ringfenced) and you just keep your individual product
(ie: individual colour cartridges) stock levels up to date. The mod' handles stock levels by setting the bundled product level to the maximum complete bundles/sets that the individual products can put together.
(eg: 3xBlack, 2xYellow, 5xCyan, 4xMagenta, 1xPhotoBlack
= 1 set max).
The mod also updates stock levels for both bundles/sets and individual items, according to what sells. So, if a set sells, each component product gets reduced by one unit and the set stock level also gets reduced.
Likewise if you sell an individual product the available set level is checked and updated... eg: if 2 magenta cartridges were sold the available set stock still remains at 1.. but if the Photo black cart' goes, then the set/bundle stock is updated to zero.
Note: You can have a variation as a component product included in a bundle, but you can't have a variation as a product bundle as it doesn't have the custom field option.
What it doesn't do
It's easy to think this is nirvana for product listings and keeping everything up to date but a few things that need to be noted in terms of limitations:
- It doesn't automatically suggest pricing for bundled products
- Selecting component products has to be done manually (copy/paste) due to a lack of graphic interface (I simply don't have time)
- There are currently no sanity checks that update the values in the "Parts" field if a component products SKU is changed, so editing or deleting a component product used in a Bundled product will break that bundled product
- SKU's can only contain alpha-numeric values, full stops, underscore, hypen/dash and colon characters.
- SKU's must NOT contain a space either at the beginning or end of the SKU code.
- It does display the component product SKU's in the "Additional Information" tab, although a small hack for this could hide the field if needed.
- It doesn't allow nesting of product bundles, so you can't have a bundle of bed accessories and then try to add the bed accessories bundle to a bed + accessories bundle. (This functionality may be added in the future)
Perfect?
Well, not really... Perfect would be functionality already built into the Interspire product, complete with GUI... I'm settling for functional with less work overall.
Ultimately I've written this for my own purposes because stock control was driving me completely out of my skull... a GUI would be nice but is not on my list of to-do's as I don't have the knowledge of the ISC GUI code libraries or enough JQuery experience.
(If you can/want to tackle this I'm all ears!)
Support
Will be limited to installation and general help. I will maintain the code through successive ISC releases until my maintenance runs out in mid 2011 or Interspire snap out of their current myopia...
Further Development
Will be limited to what I need and what time I have available. Running two businesses, and reprising the roles of Father to a baby boy plus husband to a wonderful/patient wife, my time is seriously limited. I can't
(and will not!) make promises but if it makes financial sense and there is sufficient time I will consider polite/constructive suggestions.
I'll be putting together a camtasia demo when I get a bit more time so you can see how it works..
Cost will be £150
Installation will be £20 extra although it's simple enough for anyone with a reasonable text editor to do it.