Перейти к содержанию
Semirina7

Минимальная сумма заказа

Рекомендуемые сообщения

Возможно ли это осуществить? Очееень нужно! Если такой вопрос был, извиняюсь, так как поисковик на форуме ничего не ищет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не проверял, но есть в "учитывать в заказе" пункт "Затраты на минимальный заказ"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не проверял, но есть в "учитывать в заказе" пункт "Затраты на минимальный заказ"

Нет, это лишь прибавляет в заказ указанную сумму, а не запрещает оформлять менее какой то суммы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в ..catalogcontrollercheckoutcart.php

находим

if (isset($this->error['warning'])) {	$this->data['error_warning'] = $this->error['warning'];			} elseif (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {	$this->data['error_warning'] = $this->language->get('error_stock');} else {	$this->data['error_warning'] = '';}
заменяем на

if (isset($this->error['warning'])) {	$this->data['error_warning'] = $this->error['warning'];			} elseif (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {	$this->data['error_warning'] = $this->language->get('error_stock');} elseif ($this->cart->getTotal() < 9000) {	$this->data['error_warning'] = 'need more money!';} else {	$this->data['error_warning'] = '';}

в ..catalogcontrollercheckoutshipping.php

строчку

if (!$this->cart->hasProducts()  || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
меняем на

if (!$this->cart->hasProducts() || ($this->cart->getTotal() < 9000) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {

9000 - соответственно меняем по своему усмотрению

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если прописать код который вот нашла на форуме? /* Минимальная сумма заказа */ $sql = "SELECT SUM(goods_price * goods_number) FROM " . $ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "' " . "AND parent_id = 0 AND is_gift = 0 AND rec_type = '$flow_type'"; if ($db->getOne($sql) < 50) { show_message($_LANG['not_minimum_order'], '', '', 'warning'); }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

эт ваще что?) и чем Вам не нравиться мой вариант?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

эт ваще что?) и чем Вам не нравиться мой вариант?)

Извини, я просто когда писала, твоего сообщения еще не было) Вот пробую твой вариант

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fix305, Ваш вариант очень помог!!!Все получилось)))) Спасибо огромнейшее!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fix305, Ваш вариант очень помог!!!Все получилось)))) Спасибо огромнейшее!

Ну я и не сомневался , что это fix тебе помог . :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При обновлении корзины с минимальной суммой, например увеличив количество товаров всплывает следующая ошибка: Warning: Cannot modify header information - headers already sent by (output started at W:\home\opencart.local\www\catalog\controller\checkout\cart.php:1) in W:\home\opencart.local\www\system\engine\controller.php on line 27

Как бороться?

UPD

Починено.

Похоже все дело было в кодировке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совет от Fix305 помог, только у меня сборка ocStore 0.1.7, изменения вносила в в ..catalogcontrollercheckoutpayment.php

Только проблема в кодировке при выводе предупреждающей фразы в корзине выводится квадратиками), если сумма меньше минимального заказа. Подскажите, пожалуйста, как исправить кодировку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только проблема в кодировке при выводе предупреждающей фразы в корзине выводится квадратиками), если сумма меньше минимального заказа. Подскажите, пожалуйста, как исправить кодировку?

(зевая) учитывая что начались новые сутки, сегодня я еще не давал ответа на этот вопрос... UTF-8 без BOM, я лично для редактирования пользуюсь Notepad++

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(зевая) учитывая что начались новые сутки, сегодня я еще не давал ответа на этот вопрос... UTF-8 без BOM, я лично для редактирования пользуюсь Notepad++

А не могли бы Вы поконкретнее рассказать где прописать кодировку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fix305 дал хорошее решение, ему респект. Но было бы лучше минимальную сумму заказа хранить в БД, а из интерфейса админки менять ее значение. Как это можно сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите так сделаны в админке "Настройки", достаточно добавить свое поле с name="min_price_order" в шаблоне (даже контроллер, модель трогать не придется)

а значение можно получить как

$this->config->get('min_price_order');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача управления минимальной суммой заказа из интерфейса администратора решается просто для версии ocStore 0.1.9

1) в файле ..\admin\controller\setting\setting.php

в массив $settings добавляем элемент 'min_price_order'


		$settings = array(
			'config_name',
			'config_url',
                         ............
                         ............
                         ............
			'min_price_order',
		);

2) в ..\admin\view\template\setting\setting.tpl

добавляем, например, внутри тега <div id="tab_general"><table class="form"> ... </table></div>

<div id="tab_general">
   <table class="form">
    ............................
        <tr>
            <td>Минимальная сумма заказа</td>
            <td><input type="text" name="min_price_order" value="<?php echo $min_price_order; ?>" size=9" />
         </td>
          </tr>
    </table>
</div>

Выполнив эти два действия, имеем возможность устанавливать параметр min_price_order в интерфейсе администратора (меню: Настройки, закладка: Общие) и использовать его в любом месте кода

$this->config->get('min_price_order')

3) в ../catalog/controller/checkout/cart.php

находим

if (isset($this->error['warning'])) {
        $this->data['error_warning'] = $this->error['warning'];                 
} elseif (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {
        $this->data['error_warning'] = $this->language->get('error_stock');
} else {
        $this->data['error_warning'] = '';
}

заменяем на

if (isset($this->error['warning'])) {
        $this->data['error_warning'] = $this->error['warning'];                 
} elseif (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {
        $this->data['error_warning'] = $this->language->get('error_stock');
} elseif ($this->cart->getTotal() < ((float)$this->config->get('min_price_order'))) {
        $this->data['error_warning'] = 'Минимальная сумма заказа '. $this->config->get('min_price_order').' руб!';
} else {
        $this->data['error_warning'] = '';
}

4) в ../catalog/controller/checkout/shipping.php

строчку

if (!$this->cart->hasProducts()  || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {

меняем на

if (!$this->cart->hasProducts() || ($this->cart->getTotal() < (float)$this->config->get('min_price_order')) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {

Вот и все

Fix305, спасибо за консультацию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fix305 дал хорошее решение, ему респект. Но было бы лучше минимальную сумму заказа хранить в БД, а из интерфейса админки менять ее значение. Как это можно сделать?

Есть модуль доставки. Там всё настраивается из админки. Но линк на него вставить не получается. Видимо, кто-то из модеров этого форума обиделся на тот сайт и поставил фильтр. :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть модуль доставки. Там всё настраивается из админки. Но линк на него вставить не получается. Видимо, кто-то из модеров этого форума обиделся на тот сайт и поставил фильтр. :lol:

вы путаете задачи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно. Если здесь имеется в виду, что меньше определённой суммы вообще не получится оформить заказ - то да, в том модуле решение другой задачи. Там выставляется сумма, меньше которой автоматически взимается (вписывается в счёт) дополнительная плата за доставку.

Возможно, я не до конца вник в суть этого топика. :)

ЗЫ. Кстати, нашёл этот модуль, о котором я писал, и на этом форуме. Вот здесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь имеется в виду задача о запрете формирования заказа на общую сумму менее заданной. Такая задача достаточно актуальна для оптовой торговли в оффлайне. В онлайне задача также актуальна, например, если торговые издержки покрываются прибылью только при достижении оборота реализации не менее заданного (точка безубыточности торговой операции).

Во многих скриптах интернет магазинов, например, VirtueMart, настройка "минимальная сумма заказа" предусмотрена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно что это не стандартная функция

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача управления минимальной суммой заказа из интерфейса администратора решается просто для версии ocStore 0.1.9

спасибо, всё замечательно работает, +1 =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×