Allow multiple mode payments #6448

It allows sale payments using multiple gateways.
handle case if sale is `None`