Opencart Убираем шаги оплаты и доставки в оформлении заказа



Если Вы уже упростили форму оформления заказа, Вам может потребоваться удалить шаги с выбором способа доставки и способа оплаты.

  1. Отключаем выбор способа доставки. Открываем /system/library/cart.php, находим функцию:
	public function hasShipping() {
		$shipping = false;

		foreach ($this->getProducts() as $product) {
			if ($product['shipping']) {
				$shipping = true;

				break;
			}
		}

		return $shipping;
	}

В самом начале функции добавляем строчку с отключением доставки, в итоге получается:

	public function hasShipping() {
		return false;
		
		$shipping = false;

		foreach ($this->getProducts() as $product) {
			if ($product['shipping']) {
				$shipping = true;

				break;
			}
		}

		return $shipping;
	}
  1. Далее, отключаем выбор способа оплаты. Заходим в админку, открываем: "Мено" -> "Модули" -> "Оплата". Отключаем все способы кроме "Оплата при доставке". Заходим в настройку этого способа оплаты и проверяем его настройки:

Нижняя граница: 0 Статус заказа после оплаты: Complete Географическая зона: Все регионы Статус: Включено Порядок сортировки: 0

Далее открываем файл: /catalog/view/theme/default/template/checkout/payment_method.tpl в самом верху файла добавляем скрипт, который автоматически нажимает кнопку "Далее":

<script>
 $(document).ready(function(){
 setTimeout(function(){
  $('#button-payment-method').trigger('click');
  },1000);
 });
</script>

Чтобы яваскрипт смог нажать кнопку "далее", нужно установить галочку в пункте "Я прочитал Terms & Conditions и согласен с условиями". Находим этот кусочек кода:

    <?php if ($agree) { ?>
    <input type="checkbox" name="agree" value="1" checked="checked" />
    <?php } else { ?>
    <input type="checkbox" name="agree" value="1" />
    <?php } ?>

И меняем его на:

    <input type="checkbox" name="agree" value="1" checked="checked" />

Теперь полностью скрываем этот шаг из гармошки, открываем файл: /catalog/view/theme/default/template/checkout/checkout.tpl, находим следующий код:

        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_method; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-method">
            <div class="panel-body"></div>
          </div>
        </div>

Меняем его на:

        <div class="panel panel-default" style="display:none;">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_method; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-method">
            <div class="panel-body"></div>
          </div>
        </div>

В заключении открываем файл: /catalog/language/russian/checkout/checkout.php в котором изменяем заголовки для оставшихся двух шагов.

Opencart Убираем шаги оплаты и доставки в оформлении заказа

Как обычно, пример можно посмотреть на тестовом сайте.


Сообщество: AWS

Комментариев(31)


ID: #400   Создан:
Автор: Евгений

Спасибо Вам огромное! Всё получилось! Теперь оформление заказа всего в 2 шага! ФАНТАСТИКА!!!! )))

ID: #401   Создан:
Автор: Timo

спасибо. У меня вопросик. Когда клиент залог., как закоментировать строки в шаге, где его просят оставить существующий адрес или изменить его? Ковырчл chekout.tpl но там такой суповой набор )))) Не подскажите какие строки трогать

ID: #402   Создан:
Автор: Алексей

Подскажите, сделал все, как вы сказали, но на последнем шаге подтверждение заказа не высвечиваеться табличка с заказом, а просто бело пустое место без кнопки подтверждения заказа. Как это исправить? Вот для наглядности, попробуйте сделать заказ: http://sportmall.com.ua/index.php?route=checkout/checkout

ID: #403   Создан:
Автор: ololoev

Скорее всего у Вас не стоит галочка на пункте "Я прочитал Terms & Conditions и согласен с условиями " и из-за этого скрипт не может нажать кнопку "Далее".

Статью дополнил, посмотрите, пожалуйста.

ID: #404   Создан:
Автор: Jacob

Привет admin! Есть идеи как всунуть табличку с покупками и стоимостью из шага «подтверждение заказа»,в шаг «платежная информация»? Ведь таким образом можно воплотить мечту многих,избавится от гармошки и сделать все на одной странице скрыв последний шаг!

ID: #405   Создан:
Автор: mixet

Согласен с Jacob. Получился бы идеальный вариант.

ID: #406   Создан:
Автор: ololoev

Jacob, mixet, теоретически избавиться от гармошки не так уж и сложно. Но тогда, скорее всего, придётся чем-нибудь пожертвовать. Например доставкой, или, может быть, модулями скидок и купонов.

Будет время попробую сделать, если получится оформлю в бесплатный модуль.

ID: #407   Создан:
Автор: mixet

Можно обойтись и без модуля, если подскажите всем, как убрать гармошку или хотя бы сделать ее раскрытой с 1 кнопкой. Ж)

ID: #408   Создан:
Автор: vit16

Здравствуйте,все сделал , работает ,спасибо . Вопрос такой, можете подробно описать последний шаг "В заключении открываем файл: /catalog/language/russian/checkout/checkout.php в котором изменяем заголовки для оставшихся двух шагов."

И как можно убрать "индекс" в оформлении заказа?

ID: #409   Создан:
Автор: ololoev
>>408

В файле /catalog/language/russian/checkout/checkout.php содержатся переводы с английского на русский для страницы оформления заказа. И т.к изначально нумерация шагов отличалась, то теперь там нужно всё подправить. Индекс убирается как и другие не нужные поля: <a href="http://allwebstuff.info/быстрый-заказ-opencart-2/">http://allwebstuff.info/быстрый-заказ-opencart-2/</a>

ID: #410   Создан:
Автор: Дмитрий

Здравствуйте! Сдела все по инструкции - получилось хорошо. Спасибо! Но остался вопрос: если доставка иногда платная (скажем до 2000 руб), как сделать чтобы она суммировалась в конце заказом?

Учитывать в заказе - включено Доставка (3) Промежуточный итог (1) Итого (9)

Включено: Доставка в зависимости от суммы заказа Фиксированная стоимость доставки Бесплатная доставка Самовывоз из магазина

Я так понимаю, что из-за отключения шагов она не суммируется?

ID: #411   Создан:
Автор: ololoev
>>410

Да, если нужна рабочая доставка то её отключать нельзя. Либо, нужно вручную, в модуле "Итого", прибавлять нужную сумму.

ID: #412   Создан:
Автор: Дмитрий

Ага, понятно, спасибо. Насчет вручную - это условие прописать в последнем шаге я так понимаю? типа если Предварительная стоимость (sub_total - это же оно?) меньше "2000" и "регион/область" (zone или zone_id ?) равен "Москва", то к Предварительной стоимости прибавить "300" и вывести в поле Итого (total). А не знаете где этот модуль находится?

Я смотрю на catalogcontrollercheckoutconfirm.php Но там как-то не особо интуитивно:)

ID: #413   Создан:
Автор: komolov

Спасибо! Супер!

ID: #414   Создан:
Автор: Игорь

Здравствуйте. Не отключается "способы оплаты", галочка стоит, код поменял на Ваш. И еще, когда убираю первый шаг "регистрация", не всегда открывается меню заказа (где поля: имя, тел., адрес и .т.д.), а если и открывается, то с задержкой 2-3 сек. Все делаю как написано, несколько раз переделывал.Что может быть? Версия 2.0.3.1

ID: #415   Создан:
Автор: ololoev
>>414

Если наблюдается нестабильное поведение, то открывается, то не открывается, это значит проблема не в инструкции. Ищите проблему либо в хостинге, либо в подключённых скриптах.

ID: #416   Создан:
Автор: Игорь

Здравствуйте. Поля убрал и индекс тоже. Но вот вопрос: заказчику приходит письмо, где указано и область и индекс и страна (по умолчанию), но ведь в заказе этого нет. Заказчику эта информация не нужна, как можно сделать, что бы в письме к заказчику этого не было? Спасибо.

ID: #417   Создан:
Автор: Игорь

Еще забыл, заказчику в письме приходит: "Способ оплаты: оплата наличными при получении товара." Это понятно, но как можно изменить саму строку "Оплата наличными при получении товара". Модуль тот же, все тоже, только изменить саму надпись, например просто написать "Оплата наличными или предоплата" или что то в этом плане? В самом модуле это нельзя сделать, смотрел в файлах, тоже не нашел.

ID: #418   Создан:
Автор: ololoev
>>417

Игорь, всё что связано с письмом для клиента, находится в шаблоне: /catalog/view/theme/default/template/mail/order.tpl

ID: #419   Создан:
Автор: Максим

Notice: Error: Could not load template /home/m/logindomen/public_html/catalog/view/theme/default/template/checkout/shipping_method.tpl! in /home/m/login/domen/public_html/system/engine/loader.php on line 91

скачал готовый архив, распаков на хостинг. и..... вот такая ошибка выходит....

ID: #420   Создан:
Автор: ololoev

Очень подозрительная ошибка, я никаких изменений в system/engine/loader.php не делал. Скиньте, пожалуйста, ссылку, по которой скачивали архив.

ID: #421   Создан:
Автор: Алексей

Илья! А как бы отключить в "гармошке" именно шаг "Адрес доставки", а шаг "Способ доставки" оставить?

ID: #422   Создан:
Автор: Алексей

Допер сам))

Сделал вот так:

ID: #423   Создан:
Автор: Ден

что именно поменять в /catalog/language/russian/checkout/checkout.php . На пальцах пожалуйста

ID: #424   Создан:
Автор: Ден

Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in C:OpenServerOpenServerdomainslocalhost estcatalogcontrollercheckoutconfirm.php on line 12Notice: Undefined index: payment in C:OpenServerOpenServerdomainslocalhost estcatalogcontrollercheckoutconfirm.php on line 504Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in C:OpenServerOpenServerdomainslocalhost estcatalogcontrollercheckoutconfirm.php on line 851 Fatal error: Call to undefined method ControllerCheckoutConfirm::render() in C:OpenServerOpenServerdomainslocalhost estcatalogcontrollercheckoutconfirm.php on line 860

На последнем подтверждающем шаге такая ошибка

ID: #425   Создан:
Автор: Ден

Все работает, автору +.

ID: #426   Создан:
Автор: Андрей

Добрый день. Возникла проблема в скрытии способов доставки. Делал все по инструкции. После шага в котором мы редактируем /system/library/cart.php пропадает способ доставки.

ID: #427   Создан:
Автор: Андрей

Илья, добрый день! После отключения способа доставки /system/library/cart.php отключается так же способ оплаты и дальше подтверждение не идет. файл cart.php у меня находится чуток далее чем у Вас в примере /system/library/cart/cart.php версия опенкарта 2.3. Очень жду Вашей помощи.

ID: #428   Создан:
Автор: proexpress

сделайте мне упрощеное оформление заказа ... сколько это будет стоить?

ID: #429   Создан:
Автор: ololoev
>>428

Я уже много лет не занимаюсь фрилансом. Только нормальная удалённая работа.

ID: #430   Создан:
Автор: Urfn

Спасибо большое.

Всего: 31 комментариев на 1 страницах

Ваш комментарий будет анонимным. Чтобы оставить не анонимный комментарий, пожалуйста, зарегистрируйтесь



Сообщества