Jump to content
Sign in to follow this  
OlegVladislavovich

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

Recommended Posts

<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('/^[^\@][email protected]*.[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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.