OpenCart 2.0 (мин. сумма заказа)

Тема в разделе "Общие вопросы", создана пользователем Norton, 24 янв 2015.

  1. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане!
    Подскажите, пожалуйста, реализован ли функционал в OC 2.0 минимальной суммы заказа? Не могу никак найти и если нет, то как его можно реализовать? По версии 1.5.6 нашел мануалы, но они не подходят к 2.0 естественно.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    А где он был в 1.5 ??
    Если вы про Доп. плата при минимальном заказе, то он находится там же в Учитывать в заказе.
     
  3. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    В 1.5 я имею ввиду что нашел мануалы как сделать, но к 2.0 это не подходит.
    Нужен именно минимальный заказ, чтобы клиент в корзинку сложил минимум на 10 000 р
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    В файле \catalog\controller\checkout\cart.php

    меняем
    PHP:
                 if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) {
                    
    $data['error_warning'] = $this->language->get('error_stock');
                } elseif (isset(
    $this->session->data['error'])) {
                    
    $data['error_warning'] = $this->session->data['error'];

                    unset(
    $this->session->data['error']);
                } else {
                    
    $data['error_warning'] = '';
                }

    на это
    PHP:
                if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) {
                    
    $data['error_warning'] = $this->language->get('error_stock');
                } elseif (isset(
    $this->session->data['error'])) {
                    
    $data['error_warning'] = $this->session->data['error'];

                    unset(
    $this->session->data['error']);
                } elseif (
    $this->cart->getTotal() < 1000) {
                    
    $data['error_warning'] = 'Минимальная сумма заказа 1000р.!';
                    
    $data['error'] = true;
                } else {
                    
    $data['error_warning'] = '';
                }


    В файле \catalog\controller\checkout\shipping_method.php

    меняем это
    PHP:
            // 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'))) {
                
    $json['redirect'] = $this->url->link('checkout/cart');
            }
    на это
    PHP:
            // Validate cart has products and has stock.
            
    if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || ($this->cart->getTotal() < 1000) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
                
    $json['redirect'] = $this->url->link('checkout/cart');
            }


    В файле catalog\controller\checkout\confirm.php

    меняем это
    PHP:
            // 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'))) {
                
    $redirect $this->url->link('checkout/cart');
            }
    на это
    PHP:
           // Validate cart has products and has stock.
            
    if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || ($this->cart->getTotal() < 1000) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
                
    $redirect $this->url->link('checkout/cart');
            }


    в файле темы catalog\view\theme\default\template\checkout\cart.tpl

    это
    HTML:
    <div class="pull-right"><a href="<?php echo $checkout; ?>" class="btn btn-primary"><?php echo $button_checkout; ?></a></div>
    на это
    HTML:
    <div class="pull-right"><a href="<?php echo $checkout; ?>" class="<?php echo (!isset($error)) ? 'btn btn-primary' : 'btn btn-primary disabled ' ; ?>"><?php echo $button_checkout; ?></a></div>
     
    Последнее редактирование: 26 янв 2015
    MrTrump, pifagor82, Ален и 2 другим нравится это.
  5. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    Вставил код, но по каким-то причинам пропускает заказ все равно. Тестовые заказы на 100 и 500. Пробовал в режиме "Без регистрации" и с "регистрацией"
    Сообщение о минимальном заказе выводит, но оформить заказ все равно разрешает
     
    Последнее редактирование: 26 янв 2015
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    добавил проверку в шаблоне... Код обновил.
     
  7. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    Спасибо! Работает, правда допускает оформление до "способа оплаты доставки". Потом сообщение "error" и "undefine", либо выбрасывает обратно в корзину)
     
  8. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    поправил еще для последнего шага.
    А по шагу доставки ошибок не должно быть..
     
  9. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    А в последнем исправлении что изменилось?
     
  10. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    добавил .... изменения в файле catalog\controller\checkout\confirm.php
     
  11. Norton

    Norton Новичок

    Сообщения:
    6
    Симпатии:
    0
    Спасибо большое)
     
  12. Alex17

    Alex17 Пользователь

    Сообщения:
    66
    Симпатии:
    7
    а если со временем надо будет поменять сумма с 10 000 на другую, то исправить вручную здесь? :
    } elseif ($this->cart->getTotal() < 1000) {$data['error_warning'] = 'Минимальная сумма заказа 1000р.!';

    И больше нигде не надо?
     
  13. Alex17

    Alex17 Пользователь

    Сообщения:
    66
    Симпатии:
    7
    выводит вот такую бяку, : ����������� ����� ������ 450�.!
    вместо "Минимальная сумма заказа...
    Два раза пробовал менять, делал аккуратно, все по инструкции вроде

    Version 2.0.1.1 (rs.4), FireFox 35.0.1
    Помогите пожалуйста!
     
  14. Илюха

    Илюха Новичок

    Сообщения:
    28
    Симпатии:
    19
    Проверьте, чтобы файл catalog\controller\checkout\confirm.php был сохранен в формате UTF-8 без BOM (без БОМ).
    Или же Вам сюда: Шрифты (совместимость)
     
    Alex17 нравится это.
  15. Ravilr

    Ravilr Специалист

    Сообщения:
    3.882
    Симпатии:
    1.065
    Исправить везде, где есть условие getTotal() < 1000
     
  16. Alex17

    Alex17 Пользователь

    Сообщения:
    66
    Симпатии:
    7
    Спасибо большое!

    Выставил в редакторе (RjTextEd) режим UTF-8 без BOM (Format-Encoding) и вуаля, все по-русски стало. Замечательно просто!
     
    Последнее редактирование: 25 фев 2015
  17. mars1an

    mars1an Специалист

    Сообщения:
    629
    Симпатии:
    516
    Набросал ocmod с настройкой из админки (Настройки - Магазин - Опции - Оформление заказа)
     

    Вложения:

  18. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    @mars1an надо попросить сменить вам статус, на Мастер по ocmod ))
     
    KIVIn и mars1an нравится это.
  19. mars1an

    mars1an Специалист

    Сообщения:
    629
    Симпатии:
    516
    А ещё я vqmod, modx, diff и patch умею :D
     
    KIVIn нравится это.
  20. safronman

    safronman Новичок

    Сообщения:
    17
    Симпатии:
    0
    Подскажите пожалуйста как установить ocmod файл, который любезно предоставил mars1an?