Uncategorized

Building a Better Product Catalog

Theory

As much as I love ZenCart, it has limitations. One of the things I’ve never seen in an online shop system is an understanding of package deals. For example, I have kits that are made of parts. Every part is available (or should be available) in the store. The price of kits should change whenever I change a part price, and the quantities of parts should change whenever I sell a kit. ZenCart doesn’t understand either of these things so I’m left to do a lot of manual work. Call me lazy but I don’t like doing work if I can make the machine do it. As my good friend Steven says, “if you have to do it more than twice… automate it.” Happy 30th, Steven!

Details

So, where was I. Oh right! So I’m building a new database that has all my inventory in it. The mysql table looks a bit like this:

Field Type Null Key Default
id int(10) unsigned NO PRINULL
SKU varchar(32) NO PRINULL
next_id int(10) NO 0
prev_id int(10) NO 0
name varchar(64) NO NULL
qty float NO 0
supplier text YES NULL
weight float NO 0
description text YES NULL
MSRP float NO 0
bulk_purchase_qty float NO 0
bulk_purchase_cost float NO 0
bulk_import_fee float NO 0
unit_cost float NO 0
video varchar(128) NO
data_sheet varchar(128) NO
unit_purchase_cost float NO 0
video_quality enum(‘missing’,’poor’,’ok’,’exemplary’) NO missing
image_quality enum(‘missing’,’poor’,’ok’,’exemplary’) NO missing
description_quality enum(‘missing’,’poor’,’ok’,’exemplary’) NO missing
data_sheet_quality enum(‘missing’,’poor’,’ok’,’exemplary’) NO missing
margin float NO 0

I also have a table that describes inventory as one-parent-to-many-children. So a single inventory item can actually be made of many other inventory items.

Opportunities

– every version of every item has a unique SKU code.
– If I change a part in an inventory item completely it will assign a new SKU and adjust the prev_id and next_id. It could automatically update descriptions to say “this product has been replaced with [hot new version]” or “This is a replacement for [old and busted version]”.
– When an inventory item is updated my catalog will automatically adjust the price.
– When I make a sale of a kit that has parts it will automatically adjust the product quantity of each part. It can then list parts and kits as out of stock if necessary.
– Because I will have accurate inventory control I can predict when parts will run out and order replacements just in time. Less money sitting on the shelves waiting for someone to buy.
– The system can track who got what version of what order, and it will be a lot easier to produce a Bill Of Materials (BOM) and cross-check it before each kit is sent. It also means if someone has a problem with an older model I can track info on that version. “Oh yeah, that was a big problem in the ’38 Mark IIs – they fall right out of the sky” or “Well, I see here that minion 24 signed the papers saying this kit was OK to ship on last Tuesday. I’ll be sure to have him… corrected.”

Costs

Time. I’ve written a lot of PHP in recent years so it’s no sweat to pull together the core systems. I’ve already got a LAMP server running so that’s basically free. So far I’ve imported my old excel sheets full of inventory into the new database.

This afternoon I’m going to play with Arduino joysticks (as promised) and tomorrow I’m going to copy in all the parent > child relationships and then build logic to control what happens when and how. All the while my 3D printer is making delta robot parts and hog drives for happy customers.
Friday I have a disgusting pool to clean, Saturday I don’t know yet, and Sunday is a 5k run in my neighborhood. Some time next week the camera I bought with Bitcoins will arrive and I can start to take new product photos, at last.

The work never stops here, and I wouldn’t want it to – I’m having too much fun!

Uncategorized

New Camera Bought with Bitcoins

I finally have my new Canon Rebel T3 that I bought with Bitcoins. I’m going to use for new product photography. I’m just waiting for the batteries to charge now. So excited!

Uncategorized

Vancouver Hack Space is Moving

Vancouver Hack Space is moving from 45 West Hastings to 270 East 1st Ave. This will mean ground floor, wheelchair friendly access and 2000sqft of extra space to work in. I’m coordinating the load-out from the old space which means a lot of my Marginally Clever work is going to suffer over the next month. Also, the girlfriend will be sad because I’ll be busy every weekend hauling boxes.

More importantly to you, dear reader, is that the laser cutter I use to make parts will be out of commission. So I’m looking to Sell my CNC machine and get a laser cutter instead.

Uncategorized

Moving VHS 3.0 to 270 East 1st

In this scene our heros are building a staircase to lower the 400kg laser to the pavement.  In the distance the regular delivery has to back his truck out of the alley.
In this scene our heros are building a staircase to lower the 400kg laser to the pavement. In the distance the regular delivery has to back his truck out of the alley.

Together we moved the laser cutter, the gumball machine, the fume hood, the MAME arcade machine, the fridges, and a CNC machine from storage and brought them all to the new space in a 24′ Budget truck. Ever used a dolly, a lift gate, or a pallet jack? You would have today! Ever sawed, nailed, hammered, measured, or drawn a plan? That would have been today, too. Oh, and the snacks. I think I ate about 6 doughnuts and I burned all those calories before lunch climbing stairs, dismantling the wall around the laser, lifting a fridge down the stairs… and I wasn’t the hardest worker. Matthew, Kevin, SDY, Mike, Inez, and Richard were there all morning making it happen and being really supportive of everyone there. Ken showed up having just heard of the hackspace and spent the afternoon with us putting the exterior door back on and helping unload at the new space.

Richard is wearing safety gloves.  Weeks after it has last been fired and it is still hot from residual laser radiation.
Richard is wearing safety gloves. Weeks after it has last been fired and it is still hot from residual laser radiation. Richard is a wild man.
Laser tube, detail.
hand blown? That’s some real talent. Don’t get fingerprints on it or you’ll etch the glass.

Oh man, I should have taken a picture. The space is SO BIG. There’s a huge overhang at the entrance for parking your bike out of the weather and then a roller door big enough for a troll and a short hall that opens onto a cavernous space. Ballroom dancing easy in here. In one corner there’s the top half of a concrete staircase. I could totally picture Smeagol up there, rubbing his One Ring.

Inside the brain of a Redsail Laser Cutter.  How many parts can you identify?
Inside the brain of a Redsail Laser Cutter. How many parts can you identify?

Tomorrow if the good lord’s a willin’ and the crick don’t rise we’re going to use what’s left of the truck rental to pick up the benches we got from Nokia and start putting them together at the VHS. That way we’ll be able to start bringing in stuff as soon as Luke finishes the section of wall they’re building. That’s going to take place during the week and on the weekend of the 11th and the 18th we’re going to bring over everything else, biggest things first. Everything from here on out can fit into a van or truck so we should have any big surprises.

Stay tuned for more later!

Uncategorized

Makelangelo Day, May 6 2013

Today is a Makelangelo day. I’m working on patching bugs reported by users, updating the wiki, and prettying up the photos on the website. Got anything to contribute? Let me know!