ControllerExtensionModuleKlarnaCheckoutModule::index PHP Метод

index() публичный Метод

public index ( )
    public function index()
    {
        $this->load->model('extension/payment/klarna_checkout');
        // If Payment Method or Module is disabled
        if (!$this->config->get('klarna_checkout_module_status') || !$this->config->get('klarna_checkout_status')) {
            $this->model_extension_payment_klarna_checkout->log('Not shown due to Payment Method or Module being disabled');
            return false;
        }
        // Validate cart has products and has stock.
        if (!$this->cart->hasProducts() && empty($this->session->data['vouchers']) || !$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {
            $this->model_extension_payment_klarna_checkout->log('Not shown due to empty cart');
            return false;
        }
        // Validate minimum quantity requirements.
        $products = $this->cart->getProducts();
        foreach ($products as $product) {
            $product_total = 0;
            foreach ($products as $product_2) {
                if ($product_2['product_id'] == $product['product_id']) {
                    $product_total += $product_2['quantity'];
                }
            }
            if ($product['minimum'] > $product_total) {
                $this->model_extension_payment_klarna_checkout->log('Not shown due to cart not meeting minimum quantity reqs.');
                return false;
            }
        }
        // Validate cart has recurring products
        if ($this->cart->hasRecurringProducts()) {
            $this->model_extension_payment_klarna_checkout->log('Not shown due to cart having recurring products.');
            return false;
        }
        list($totals, $taxes, $total) = $this->model_extension_payment_klarna_checkout->getTotals();
        if ($this->config->get('klarna_checkout_total') > 0 && $this->config->get('klarna_checkout_total') > $total) {
            return false;
        }
        if ($this->model_extension_payment_klarna_checkout->checkForPaymentTaxes($products)) {
            $this->model_extension_payment_klarna_checkout->log('Payment Address based taxes used.');
            return false;
        }
        $this->setShipping();
        list($klarna_account, $connector) = $this->model_extension_payment_klarna_checkout->getConnector($this->config->get('klarna_checkout_account'), $this->session->data['currency']);
        if (!$klarna_account || !$connector) {
            $this->model_extension_payment_klarna_checkout->log('Couldn\'t secure connection to Klarna API.');
            return false;
        }
        $data['klarna_checkout'] = $this->url->link('extension/payment/klarna_checkout', '', true);
        return $this->load->view('extension/module/klarna_checkout_module', $data);
    }
ControllerExtensionModuleKlarnaCheckoutModule