Минимальная стоимость заказа Opencart

Я пытаюсь реализовать приведенный ниже код отсюда в catalogue/view/theme/default/template/checkout/confirm.tpl.

<?php if ($this->cart->getSubtotal() >= 1000) { ?>
<div id="payment"><?php echo $payment; ?></div>
<?php } else { ?>
<div class="warning">Minimum 10 Euro to checkout</div>
<?php }  ?> 

но я получаю сообщение об ошибке

Notice: Undefined property: Loader::$cart in C:\xampp\htdocs\optest\catalog\view\theme\default\template\checkout\confirm.tpl on line 51
Fatal error: Call to a member function getSubtotal() on null in C:\xampp\htdocs\optest\catalog\view\theme\default\template\checkout\confirm.tpl on line 51

ссылка взята:

Минимальная цена заказа Opencart исключает одну категорию

http://forum.opencart.com/viewtopic.php?t=53810


person Kundan SIngh    schedule 15.10.2015    source источник
comment
какую версию opencart вы используете? Если он выше 2.0, вы не сможете сделать это напрямую в своем tpl-файле.   -  person Vidhyut Pandya    schedule 15.10.2015
comment
@VedPandya да, это 2.0, тогда как решить проблему   -  person Kundan SIngh    schedule 15.10.2015


Ответы (2)


Не то же самое, но вы можете сделать это так:

Добавьте эту строку в файл контроллера checkout.php.

if ($this->cart->getSubtotal() < 1000) {
    $this->session->data['error'] = 'Your warning message';
    $this->response->redirect($this->url->link('checkout/cart'));
}

После

if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
    $this->response->redirect($this->url->link('checkout/cart'));
}

Вот и все.

person Vidhyut Pandya    schedule 15.10.2015
comment
Это не работает в моем случае, это не перенаправление в корзину обратно. - person Hardika Satasiya; 01.03.2019
comment
@HardikaSatasiya Если данное решение не работает для вас, задайте для этого новый вопрос. - person Vidhyut Pandya; 08.03.2019

Код ниже работает для меня:

    <?php if($this->session->data['currency'] == 'USD') : ?>
       <?php if($this->cart->getSubtotal() < 2enter code here0) : ?>
       <div class="warning"><center><?php echo $text_comandamin_eur; ?></center></div>
       <?php endif; ?>
    <?php } elseif($this->session->data['currency'] == 'INR') : ?>
       <?php if($this->cart->getSubtotal() < 1000) : ?>
       <div class="warning"><center><?php echo $text_comandamin_ron; ?></center></div>
       <?php endif; ?>
    <?php endif; ?>
person Asaph Azariah    schedule 28.03.2017