1) Add price_id for variable price options to purchase method.
2) Add quantity option.
3) Remove unnecessary double price sanitation.
4) Extends get_product_files() to accept variable price id. (for compat with 1)