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

Упрощение оформления заказа (OpenCart 2.0.2.0)

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

<p>Итак, у вас OpenCart 2.0.2.0 или друга версия, но 2.x и вы решили упростить заказ.<br />

Я постараюсь разложить всё по полочкам и рассказать, как это сделал я.<br />

Мне помог в этом вопросе <strong>Romans </strong>и<strong> Ravilr</strong>, за что им большая благодарность от меня.<br />

<br />

ВНИМАНИЕ! Лично мне не нужна была регистрация покупателей, поэтому я такую возможность убрал для своего сайта, соответственно при оформлении заказа, возможности регистрации и прочего не будет<strong>!!!</strong><br />

<br />

<span style="color:#006400;"><span style="font-size:18px;"><strong>1. ПЕРВАЯ ЧАСТЬ </strong></span></span><span style="font-size:18px;">(Делаем так, чтобы при переходе в оформление заказа нас автоматически отсылало от первого пункта ко второму)<br />

<span style="font-size:14px;">

</span></span><br />

<strong>1.1. Изменяем так, чтобы автоматически был выбран пункт "Оформить заказ без регистрации"</strong></p>

<p>

</p>

<p>Первым делом заходим в файл <span style="color:#40e0d0;"><strong>catalog/view/theme/default/template/checkout/</strong></span><span style="color:#ff0000;"><strong>login.tpl</strong></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим эти строки</span></span></p>

<div>

<pre class="_prettyXprint">

<div class="radio">

<label>

<?php if ($account == 'register') { ?>

<input type="radio" name="account" value="register" checked="checked" />

<?php } else { ?>

<input type="radio" name="account" value="register" />

<?php } ?>

<?php echo $text_register; ?></label>

</div>

<?php if ($checkout_guest) { ?>

<div class="radio">

<label>

<?php if ($account == 'guest') { ?>

<input type="radio" name="account" value="guest" checked="checked" />

<?php } else { ?>

<input type="radio" name="account" value="guest" />

<?php } ?>

<?php echo $text_guest; ?></label>

</div></pre>

</div>

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на эти строки</span></span></p>

<pre class="_prettyXprint">

<div class="radio">

<label>

<?php if ($account == 'register') { ?>

<input type="radio" name="account" value="register" />

<?php } else { ?>

<input type="radio" name="account" value="register" />

<?php } ?>

<?php echo $text_register; ?></label>

</div>

<?php if ($checkout_guest) { ?>

<div class="radio">

<label>

<?php if ($account == 'guest') { ?>

<input type="radio" name="account" value="guest" checked="checked" />

<?php } else { ?>

<input type="radio" name="account" value="guest" checked="checked" />

<?php } ?>

<?php echo $text_guest; ?></label>

</div></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

<strong>1.2. Делаем так, чтобы автоматически нажималась кнопка продолжить в пункте "ШАГ 1"</strong></span></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

Находим файл </span></span><strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:#ff0000;">chekout.tpl</span></strong><br />

Находим строку:</p>

<pre class="_prettyXprint">

$('a[href=\'#collapse-checkout-option\']').trigger('click');</pre>

<p>Заменяем на:</p>

<pre class="_prettyXprint">

$('#button-account').trigger('click');</pre>

<p>

</p>

<p><strong>1.3. Скрываем всё ненужное в пункте "ШАГ 1", чтобы покупатель не имел возможности случайно или специально сделать как-то по-другому</strong><br />

<span style="font-size:18px;"><span style="font-size:14px;">

</span></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим файл </span></span><strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">login.tpl</span></strong></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Ищем в нём:</span></span></p>

<pre class="_prettyXprint">

<div class="col-sm-6">

<h2><?php echo $text_returning_customer; ?></h2></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на:</span></span></p>

<pre class="_prettyXprint">

<div class="col-sm-6" style="display:none;">

<h2><?php echo $text_returning_customer; ?></h2></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Ищем в этом файле:</span></span></p>

<pre class="_prettyXprint _lang-">

<div class="radio">

<label>

<?php if ($account == 'register') { ?>

<input type="radio" name="account" value="register" />

<?php } else { ?>

<input type="radio" name="account" value="register" />

<?php } ?>

<?php echo $text_register; ?></label>

</div></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на:</span></span></p>

<pre class="_prettyXprint">

<div class="radio">

<label>

<?php if ($account == 'register') { ?>

<input type="radio" name="account" value="register" />

<?php } else { ?>

<input type="radio" name="account" value="register" />

<?php } ?>

<?php echo $text_register; ?></label>

</div> </pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим и удаляем, либо комментируем</span></span></p>

<pre class="_prettyXprint">

<p><?php echo $text_register_account; ?></p></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

</span></span><br />

<span style="font-size:18px;"><span style="color:#006400;"><strong>2. ВТОРАЯ ЧАСТЬ </strong></span>(Убираем выбор страны и региона в пункте"ШАГ 2")</span></p>

<p>

</p>

<p>Файл <strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:#ff0000;">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint">

html = '<option value=""><?php echo $text_select; ?></option>';

if (json['zone'] && json['zone'] != '') {

for (i = 0; i < json['zone'].length; i++) {

html += '<option value="' + json['zone']['zone_id'] + '"';

if (json['zone']['zone_id'] == '<?php echo $zone_id; ?>') {

html += ' selected="selected"';

}

html += '>' + json['zone']['name'] + '</option>';

}

} else {

html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';

}

</pre>

<p>Заменяем на:</p>

<pre class="_prettyXprint">

html = '';

if (json['zone'] && json['zone'] != '') {

for (i = 0; i < json['zone'].length; i++) {

html += '<option value="' + json['zone']['zone_id'] + '"';

if (json['zone']['zone_id'] == '<?php echo $zone_id; ?>') {

html += ' selected="selected"';

}

html += '>' + json['zone']['name'] + '</option>';

}

} else {

html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';

} </pre>

<p>Находим это:</p>

<pre class="_prettyXprint _lang-">

<select name="country_id" id="input-payment-country" class="form-control">

<option value=""><?php echo $text_select; ?></option>

<?php foreach ($countries as $country) { ?></pre>

<p>Заменяем на это:</p>

<pre class="_prettyXprint _lang-">

<select name="country_id" id="input-payment-country" class="form-control">

<?php foreach ($countries as $country) { ?></pre>

<p>Находим это:</p>

<pre class="_prettyXprint _lang-">

<div class="form-group required">

<label class="control-label" for="input-payment-country"><?php echo $entry_country; ?></label>

</pre>

<p>Заменяем на это:</p>

<pre class="_prettyXprint">

<div class="form-group required" style="display:none;">

<label class="control-label" for="input-payment-country"><?php echo $entry_country; ?></label> </pre>

<p>

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>3. ТРЕТЬЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Убираем лишние поля в пункте "ШАГ 2")</span><br />

<br />

Лично я предпочитаю оставлять для своих магазинов поля: <strong><span style="color:#ff0000;">*</span>Имя</strong>, <strong><span style="color:#ff0000;">*</span>Телефон</strong>, <strong>E-mail</strong>, <strong><span style="color:#ff0000;">*</span>Город</strong>.<br />

Все поля убираются практически так же, как было и в 1.5.x<br />

<br />

Показываю, как это делается на примере обязательного поля "Фамилия"<br />

<br />

<strong>3.1. Уберём поле "Фамилия"</strong><br />

<br />

<strong>3.1.1. Убираем сначала проверку поля "Фамилия" на ошибку</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/controller/checkout/</span><span style="color:rgb(255,0,0);">guest.php</span></strong><br />

Находим и удаляем или комментируем:</p>

<pre class="_prettyXprint">

if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim($this->request->post['lastname'])) > 32)) {

$json['error']['lastname'] = $this->language->get('error_lastname');

}</pre>

<p><strong>3.1.2. Теперь можно отключать отображение "Фамилии в заполнении заказа"</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint">

<div class="form-group required">

<label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>

<input type="text" name="lastname" value="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />

</div>

</pre>

<p>Заменяем на (либо просто дописываем <strong>style="display:none;"</strong>)</p>

<pre class="_prettyXprint _lang-">

<div class="form-group required" style="display:none;">

<label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>

<input type="text" name="lastname" value="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />

</div></pre>

<p>

<br />

<strong>3.2. Сделаем необязательным поле E-mail</strong></p>

<p>

<br />

<strong>3.1.1. Убираем сначала проверку поля "E-mail" на ошибку</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/controller/checkout/</span><span style="color:rgb(255,0,0);">guest.php</span></strong><br />

Находим и удаляем или комментируем:</p>

<pre class="_prettyXprint _lang-">

if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $this->request->post['email'])) {

$json['error']['email'] = $this->language->get('error_email');

}</pre>

<p><strong>3.1.2. Теперь убираем звёздочку перед пунктом "E-mail"</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint _lang-">

<div class="form-group required">

<label class="control-label" for="input-payment-email"><?php echo $entry_email; ?></label>

<input type="text" name="email" value="<?php echo $email; ?>" placeholder="<?php echo $entry_email; ?>" id="input-payment-email" class="form-control" />

</div></pre>

<p>Заменяем на (либо просто удаляем <strong>required</strong>):</p>

<pre class="_prettyXprint _lang-">

<div class="form-group">

<label class="control-label" for="input-payment-email"><?php echo $entry_email; ?></label>

<input type="text" name="email" value="<?php echo $email; ?>" placeholder="<?php echo $entry_email; ?>" id="input-payment-email" class="form-control" />

</div></pre>

<p>

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>4. ЧЕТВЕРТАЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Убираем "ШАГ 3" и "ШАГ 4")</span><br />

<br />

<strong>4.1. Убираем эти Шаги</strong><br />

<br />

Файл <strong><span style="color:rgb(64,224,208);">system/library/</span><span style="color:rgb(255,0,0);">cart.php</span></strong><br />

Находим:</p>

<pre class="_prettyXprint _lang-">

public function hasShipping() {

</pre>

<p>После неё вставляем:</p>

<pre class="_prettyXprint _lang-">

return false; </pre>

<p>

<br />

<b>Далее необходимо изменить надписи "ШАГ 1", "ШАГ 2" и т.д., об этом написано в "ПЯТОЙ ЧАСТИ"</b><br />

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>5. ПЯТАЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Изменяем надписи "ШАГ 1", "ШАГ 2" и т.д.)</span><br />

<br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/language/russian/checkout/</span><span style="color:rgb(255,0,0);">checkout.php</span></strong><br />

Находим и правим на свой вкус:</p>

<pre class="_prettyXprint">

$_['text_checkout_option'] = 'Шаг 1: Способ оформления заказа';

$_['text_checkout_account'] = 'Шаг 2: Профиль &amp; Платежная информация';

$_['text_checkout_payment_address'] = 'Шаг 2: Платежная информация';

$_['text_checkout_shipping_address'] = 'Шаг 3: Адрес доставки';

$_['text_checkout_shipping_method'] = 'Шаг 4: Способ доставки';

$_['text_checkout_payment_method'] = 'Шаг 5: Способ оплаты';

$_['text_checkout_confirm'] = 'Шаг 6: Подтверждение заказа';

</pre>

<p>У меня получилось следующим образом:</p>

<pre class="_prettyXprint">

$_['text_checkout_option'] = 'Шаг 1: Оформить заказ без регистрации (выбрали это за Вас)';

$_['text_checkout_payment_address'] = 'Шаг 2: Информация';

$_['text_checkout_payment_method'] = 'Шаг 3: Способ оплаты';

$_['text_checkout_confirm'] = 'Шаг 4: Подтверждение заказа';

</pre>

<p>

<br />

 </p>

<p>Статья в будущем скорее всего будет дополняться или редактироваться. Искренне надеюсь, что у вас всё по ней получится! Успехов!</p>

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


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

Админы, что-то произошло с темой. Помогите пожалуйста восстановить как-то

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


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

не надо бездумно копипастить из других источников.

<pre class="_prettyXprint">
...
<pre class="_prettyXprint _lang-">
редактируй полностью.

по другому никак.

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


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

Перенёс этот "кашу" в курилку

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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