Doesn't this break compatibility? May call an additional hook with the new_cart_item (Which wouldn't need the product_id?)