Add purchase processing (including various tweaks)