[checkout] decouple purchase logic from payum.