The quantity must be computed. So normalize your product so that the quanities will be counted per product barcode.
Ex:
Product->productSkus()
So product can have many skus(barcode). And each skus can go into their own packagings(this will also be another model in your system). And each skus will have their own expiration date.