Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

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

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

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


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

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


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

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


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


в ..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 - соответственно меняем по своему усмотрению

  • +1 8
Ссылка на комментарий
Поделиться на других сайтах


А если прописать код который вот нашла на форуме? /* Минимальная сумма заказа */ $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, Ваш вариант очень помог!!!Все получилось)))) Спасибо огромнейшее!

Ну я и не сомневался , что это fix тебе помог . :)
Ссылка на комментарий
Поделиться на других сайтах


  • 4 месяца спустя...

При обновлении корзины с минимальной суммой, например увеличив количество товаров всплывает следующая ошибка: 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++

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


  • 1 месяц спустя...

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, спасибо за консультацию

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


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

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


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

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

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


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

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

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

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


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

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

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


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

спасибо, всё замечательно работает, +1 =)
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.