public function finish()
    {
        // Check the users details are set, if not, send them to the cart
        $billing_data = Session::get("Checkout.BillingDetailsForm.data");
        $delivery_data = Session::get("Checkout.DeliveryDetailsForm.data");

        if (!Checkout::config()->simple_checkout && !is_array($billing_data) && !is_array($delivery_data)) {
            return $this->redirect($this->Link('index'));
        }
        
        // Check permissions for guest checkout
        if (!Member::currentUserID() && !Checkout::config()->guest_checkout) {
            return $this->redirect($this->Link('index'));
        }
            
        if (Checkout::config()->simple_checkout) {
            $title = _t('Checkout.SelectPaymentMethod', "Select Payment Method");
        } else {
            $title = _t('Checkout.SeelctPostagePayment', "Select Postage and Payment Method");
        }

        $this->customise(array(
            'Title'     => $title,
            'Form'      => $this->PostagePaymentForm()
        ));

        $this->extend("onBeforeFinish");

        return $this->renderWith(array(
            'Checkout_finish',
            'Checkout',
            'Page'
        ));
    }