Back Вы здесь: Home Всё о CMS Prestashop Как упростить быстрый заказ на Prestashop 1.5?

Как упростить быстрый заказ на Prestashop 1.5?

19

Внимание!

Инструкция для версий Prestashop 1.5 !!!

Здравствуйте дорогие читатели!
Сегодня мы рассмотрим тему упрощения быстрого заказа на Prestashop.
Для начала уберём со страницы быстрого заказа не нужные на мой взгляд поля и формы.
Итак, начнём с того, что система предлагает нам войти на сайт, но если нам нужен вход, мы уберем его, остается вопрос "как?".
Очень просто.
Эти и другие параметры мы будем редактировать в файлах нашего шаблона, в моем случае это стандартный дефолтный шаблон default-bootstrap.
Переходим в корневую директорию нашего сайта, themes, наш шаблон.


Нам нужен файл для редактирования order-opc-new-account.tpl
Вот более подробный адрес.
/home/public_html/themes/default-bootstrap/order-opc-new-account.tpl
Открываем этот файл в редакторе Notepade++
На 4 строке ставим в конце перед закрытием формы стиль display: none;
Вот эта строка

<form action="{$link->getPageLink('authentication', true, NULL, "back=order-opc")|escape:'html':'UTF-8'}" method="post" id="login_form" class="box" style="display:none;">

Сохраним изменения.
Дальше у нас усть блок с двумя кнопками "Новый покупатель" и "Регистрация".
Кнопки нам не нужны, регистрация тоже, нам нужно вывести форму заполнения заказа.
Что мы делаем?
Всё в том же файле нам надо закомментировать строки с 32-52 включительно.

<!-- <div id="opc_account_choice" class="row">
<div class="col-xs-12 col-md-6">
<p class="title_block">{l s='Instant Checkout'}</p>
<p class="opc-button">
<button type="submit" class="btn btn-default button button-medium exclusive" id="opc_guestCheckout"><span>{l s='Guest checkout'}</span></button>
</p>
</div>

<div class="col-xs-12 col-md-6">
<p class="title_block">{l s='Create your account today and enjoy:'}</p>
<ul class="bullet">
<li>- {l s='Personalized and secure access'}</li>
<li>- {l s='A fast and easy check out process'}</li>
<li>- {l s='Separate billing and shipping addresses'}</li>
</ul>
<p class="opc-button">
<button type="submit" class="btn btn-default button button-medium exclusive" id="opc_createAccount"><span><i class="icon-user left"></i>{l s='Create an account'}</span></button>
</p>
</div>
</div> -->
<!-- <div id="opc_account_form" class="unvisible"> -->

Как видите ничего сложного.
Теперь нам необходимо убрать кучу ненужных полей, на мой взгляд.
Убираем их таким же образом - комментируем.

Пример:

<!--<div class="required password is_customer_param form-group">
<label for="passwd">{l s='Password'} <sup>*</sup></label>
<input type="password" class="text form-control validate" name="passwd" id="passwd" data-validate="isPasswd" />
<span class="form_info">{l s='(five characters min.)'}</span>
</div> -->
<!-- <div class="required clearfix gender-line">
<label>{l s='Title'}</label>
{foreach from=$genders key=k item=gender}
<div class="radio-inline">
<label for="id_gender{$gender->id_gender}" class="top">
<input type="radio" name="id_gender" id="id_gender{$gender->id_gender}" value="{$gender->id_gender}" {if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id_gender}checked="checked"{/if} />
{$gender->name}</label></div>
{/foreach}
</div> -->
В примере закомментированы поля пароль, г-н(г-жа).
Так же я убрала дубли фамилии и имени, чекбоксы,дата рождения и объединила форму,закомментировав "Долнительный адрес"

<!-- <h3 class="page-subheading top-indent">{l s='Delivery address'}</h3> -->

Возможно, вы захотите убрать страну из обязательных полей.

Но будет ошибка, поэтому код

{elseif $field_name eq "country" || $field_name eq "Country:name"}
<div class="required select form-group">
<label for="id_country">{l s='Country'} <sup>*</sup></label>
<select name="id_country" id="id_country" class="form-control">
{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($guestInformations) && isset($guestInformations.id_country) && $guestInformations.id_country == $v.id_country) || (!isset($guestInformations) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
</div>

нужно заменить на

{elseif $field_name eq "country" || $field_name eq "Country:name"}
<input type="hidden" class="text" name="id_country" id="id_country" value="177" /><p class="required select">
<!--<label for="id_country">{l s='Country'} <sup>*</sup></label>
<select name="id_country" id="id_country" >
<option value="">-</option>
{foreach from=$countries item=v}
<option value="177" {if (isset($guestInformations) AND $guestInformations.id_country == $v.id_country) OR (!isset($guestInformations) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select> -->
</p>

Сохраняем наш файл и загружаем его в папку с сайтом.

Обновляем страницу и смотрим результат.

Но!!!

Мы видим ошибки при сохранении данных.

Есть 9 ошибка(и):
You must register at least one phone number.
Страна не может быть загружена с address->id_country
Неверный выбор страны
email необходим.
id_country необходим.
lastname необходим.
firstname необходим.
address1 необходим.
city необходим.

17

Первое, что нам нужно сделать, это зайти в админку сайта, пункт меню Локализация => Страны => Наша страна => Редактировать

Там нужно настроить адресные поля, которые включены, убрать не нужные поля, отключить ZIP-code. Сохранить.

Это ещё не всё.

Далее нам надо настроить классы, поля которых проверяет контроллер нашего движка и выдает эти ошибки.

Идём в папку /home/public_html/classes ищем файлы Customer.php и Address.php

Открываем их в нашем редакторе Notepade++

Ищем наши переменные которые проверяются контроллером.

Они находятся между строками 161-190

 

'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),


Ищем напротив нашей переменной функцию 'required' => true, она отвечает за обязательность проверки полей контроллером движка.

Вместо значения true мы ставим значение false.

Сохраняем на хостинг.

Проверяем.

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

 

18

 

Если возникнут вопросы вы можете написать в комментариях или на форуме.

Так же вы можете приобрести у нас на сайте модуль быстрого заказа подходящий для всех версий и не требующий ковыряться в коде!!!

КУПИТЬ!!!

Всем спасибо.

До новых встреч. 

Комментарии   

 
#12 Leva 14.11.2014 11:29
"Инструкция для версий до Prestashop 1.6 !!!" - для версий выше 1.6 процесс упрощения заказа чем-то отличается?
Цитировать
 
 
#11 Андрей!!! 09.11.2014 10:29
Анна, как ни стараюсь, не убирается —
«There is 2 Error(s):
Страна не может быть загружена с address->id_country
Неверный выбор страны»
Все уже перепробовал, помогите, пожалуйста!
Цитировать
 
 
#10 administrator 22.08.2014 10:30
Цитирую valzhi:
После всех манипуляций заработало НО:
1.В личном кабинете адресов нет
2.Когда добавляешь или изменяешь адрес он не сохраняется


Пробуйте ещё раз всё делать, всё должно отображаться и сохраняться.
Как вариант приобретите модуль быстрого заказа с нашего сайта.
Цитировать
 
 
#9 valzhi 22.08.2014 09:47
После всех манипуляций заработало НО:
1.В личном кабинете адресов нет
2.Когда добавляешь или изменяешь адрес он не сохраняется
Цитировать
 
 
#8 administrator 18.08.2014 09:53
Цитирую Игорь:
Доброго времени!

Подскажите пожалуйста нашли ли решение на версию 1.6+ Вот почти всю ночь просидел над этим вопросом, и 3 ошибки как висело так и висит. Версия престы 1.6.0.9. Спасибо


Добрый день!
По этому вопросу существует статья http://joomla-s.ru/interesnye-stati/vsjo-o-cms-prestashop/116-prestashop-pokupka-na-odnoj-stranitse
и модуль http://joomla-s.ru/moduli-i-rasshireniya/product/view/2/38
Как для версии 1.5, так и для 1.6
Удачи в настройке!)
Цитировать
 
 
#7 administrator 27.05.2014 15:32
Цитирую Алексей:
Здравствуйте!
Тоже делал по вашей инструкции (наверное), но выдает 3 ошибки все равно:
1. Вам необходимо указать по крайней мере один номер телефона
2. Страна не может быть загружена с address->id_country
3. Неверный выбор страны



В какой версии престы делаете?
На 1.6 самая первая которая вышла, не релиз этот вариант работает, на версии позже, да смотрю не работает.
На 1.5 тоже работает всё.
Выложу в модулях заказ в один шаг, он и для версии 1.5 и для версии 1.6 без исправления кода.
Цитировать
 
 
#6 Алексей 26.05.2014 08:26
Здравствуйте!
Тоже делал по вашей инструкции (наверное), но выдает 3 ошибки все равно:
1. Вам необходимо указать по крайней мере один номер телефона
2. Страна не может быть загружена с address->id_country
3. Неверный выбор страны
Цитировать
 
 
#5 administrator 12.05.2014 23:45
Цитирую Антон:
Здравствуйте, Анна. Не могли бы вы выложить файлы order-opc-new-account.tpl, Customer.php и Address.php для общего доступа, что бы люди могли их скачать. И что в благодарность вы хотите. А то я уже 2ю неделю танцую с оформлением заказа, то там проблема, то там... Заранее спасибо.

Здравствуйте! Это не возможно, так как в статье все разжевано,стать и обучающие. Если возникают трудности у нас на сайте есть обратная связь, с помощью которой вы можете обратиться ко мне и рассмотреть ситуацию изнутри.
Цитировать
 
 
#4 Антон 12.05.2014 19:23
Здравствуйте, Анна. Не могли бы вы выложить файлы order-opc-new-a ccount.tpl, Customer.php и Address.php для общего доступа, что бы люди могли их скачать. И что в благодарность вы хотите. А то я уже 2ю неделю танцую с оформлением заказа, то там проблема, то там... Заранее спасибо.
Цитировать
 
 
#3 АннаЗв 30.04.2014 10:34
Спасибо!
Если не разберусь, обращусь.
Насколько поняла, проблема в настройках страны. Поэкспериментир ую.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов
RuCaptcha - заработай на вводе каптч

Заработок в сети