improved how we handle items with no barcode

if an item doesn't have a barcode we set the item as not having a
barcode and put the barcode on the box instead. as long as the box only
has one item inside of it, scanning the box when purchasing will work as
expected.