Alikins/product_id

Probably needs more rebasing/commit cleanup yet, but I wanted a review of where the code was.