Перейти к содержимому


Быстрый заказ v2.0 by vsupport.club


  • Вы не можете ответить в тему
Сообщений в теме: 81

#1 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 29 January 2013 - 03:59 AM

Модуль "Быстрый заказ" v 2.0
Полностью изменена логика работы модуля.

Модуль позволяет покупателям сделать заказ в один клик.
По клику всплывает окошко с формой заказа.


1. Кнопку "Быстрый заказ" теперь можно добавлять в любой блок/шаблон где присутствует "product_id", т.е. в подробное описание товара, краткое описание товара, новинки, хиты, спец. предложения, рекомендуемые товары и т.д. и т.п.
2. Все заказы записываются в базу данных и отображаются в админке в Истории заказов и в Справочнике заказов вместе с заказами сделанными через корзину. Нумерация также общая.
3. Покупателю и администратору отправляются письма на email с тем же шаблоном что используется для заказов через корзину. Администратору отправляется на email, указанный в админке, а покупателю на email указанный при оформлении быстрого заказа.
4. Все дополнительные поля, добавленные в форму регистрации (через админку) отображаются в быстром заказе. При этом если при оформлении заказа, покупатель изменит какое-либо значение, например номер телефона, то после отправки заказа, этот номер изменится и в его Личном кабинете, т.е. при оформлении следующего заказа номер будет уже новый.
5. Если пользователь в аккаунте все поля заполняются автоматически, при этом он может изменить ФИО, email или другие данные о себе при отправке заказа.
6. Для медленных хостингов добавлен лоадер, т.е. индикатор отправки заказа. После успешной отправки заказа выводится сообщение "Ваш заказ принят, пожалуйста ожидайте звонка менеджера."
7. Учет валюты. При переключении валюты пользователем, заказ оформляется с выбранной им валютой.

Демонстрация:


Модуль не требует настройки. Для его использования достаточно залить файлы сохраняя структуру директорий. При этом замены файлов не происходит.

Установка:
1. Залить файлы.
2. В файл head.tpl.html добавить строки
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
- подключаем jquery если он еще не подключен.
<script type="text/javascript" src="data/{$smarty.const.TPL}/quick_order.js"></script>
- подключаем скрипт Быстрого заказа.
<link rel="stylesheet" type="text/css" href="data/{$smarty.const.TPL}/quick_order.css"/>
- подключаем стили.

3. В шаблонах в нужное место (обычно недалеко от корзины) добавить

<div class="quick_order" id="{$product_info.productID}">Быстрый заказ</div>
- в этом месте появится кнопка "Быстрый заказ".

Если нужно использовать кнопку в дополнительных блоках: Новинки, Хиты и т.д. вместо
{$product_info.productID}
используйте переменную "productID" для этих блоков.

Скачать модуль "Быстрый заказ v2.0" из нашего Архива.

Недоделал проверку на обязательность заполнения полей. Но уже сами кому нужно допиливайте ))))
  • 6

#2 gsm-group

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 101 сообщений
Репутация: 6
Начинающий

Отправлено 29 January 2013 - 03:23 PM

Бомба!!!
  • 0

#3 Степан

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 16 сообщений
Репутация: -1
Начинающий

Отправлено 29 January 2013 - 06:48 PM

не смог найти в описании, реализирован ли уже вариант, если пользователь не зарегистрирован на сайте, то его данные сразу вносятся в базу, ну и чтоб заказ оставался быстрым автоматически генерировать пароль для клиента и отсилать на почту? ;)
  • 0

#4 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 29 January 2013 - 09:23 PM

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


Нет я думал об этом, но не сделал. Если клиент не зарегистрирован заказ добавляется в админку как и при быстром заказе. (Кстати это нужно проверить :D :ph34r: я как-то не потестил) но пароль не высылается.
Может в какой-нибудь следующей версии доделаю. Там еще много чего можно добавить.
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 January 2013 - 11:33 PM

Там еще много чего можно добавить.

"Развесистый быстрый заказ" (с) :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 fastik

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 12 February 2013 - 03:18 PM

Подскажите по какой причине может не отображаться название товара, а цену писать 0 руб.
  • 0

#7 lagaz

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 15 сообщений
Репутация: 0
Начинающий

Отправлено 20 April 2013 - 10:16 AM

можно ли отключить второй пункт (2. Все заказы записываются в базу данных и отображаются в админке в Истории заказов и в Справочнике заказов вместе с заказами сделанными через корзину. Нумерация также общая.)?

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

или что произойдёт, если на складе стоит "0" и сделать заказ товара через данный модуль?

и помечается ли как-то в админке, что этот заказ сделан, через быстрый заказ?? или абсолютно идентично заказу из корзины? если инентично, то как сделать, чтобы была пометка, что заказ сделан через быстрый заказ?
  • 0

#8 ssergioss25

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 56 сообщений
Репутация: 24
Ассистент
  • ГородСПБ

Отправлено 20 April 2013 - 10:59 AM

можно ли отключить второй пункт
и помечается ли как-то в админке, что этот заказ сделан, через быстрый заказ??


Ну так если заказ не будет в базу данных записываться, то как,собственно, вы админке увидите какую либо отметку о быстром заказе ?
А добавить отметку о быстром заказе можно,например,через комментарий :

В quick_order.php, после
if (isset($_GET['send_quick_order'])) {

добавить :

$customers_comment = "Быстрый заказ";

строку
db_query( "insert into ".ORDERS_TABLE." (customerID, order_time, customer_ip, statusID, customer_firstname, customer_email, shipping_address, billing_address, custlink, currency_code, currency_value, currency_round, order_discount, order_amount) values ( '".(int)$customerID."', '".xEscSQL($order_time)."', '".xToText($customer_ip)."', '".(int)$statusID."', '".iconv('UTF-8', 'windows-1251', $fio)."', '".$email."', '".iconv('UTF-8', 'windows-1251', $address)."', '".iconv('UTF-8', 'windows-1251', $address)."', '".$order_active_link."', '".$currency_code."', '".$currency_value."', '".$currency_round."', '".$_POST['discount']."', '".$order_amount."' )");

изменить на :
db_query( "insert into ".ORDERS_TABLE." (customerID, order_time, customer_ip, customers_comment, statusID, customer_firstname, customer_email, shipping_address, billing_address, custlink, currency_code, currency_value, currency_round, order_discount, order_amount) values ( '".(int)$customerID."', '".xEscSQL($order_time)."', '".xToText($customer_ip)."', '".xToText($customers_comment)."', '".(int)$statusID."', '".iconv('UTF-8', 'windows-1251', $fio)."', '".$email."', '".iconv('UTF-8', 'windows-1251', $address)."', '".iconv('UTF-8', 'windows-1251', $address)."', '".$order_active_link."', '".$currency_code."', '".$currency_value."', '".$currency_round."', '".$_POST['discount']."', '".$order_amount."' )");

  • 1

#9 lagaz

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 15 сообщений
Репутация: 0
Начинающий

Отправлено 20 April 2013 - 11:42 AM

ssergioss25, спасибо!

Ну так если заказ не будет в базу данных записываться, то как,собственно, вы админке увидите какую либо отметку о быстром заказе ?

это на случай, если в данном модуле заказ не будет проходить при отсутствии товара на складе. чтоб просто уведомление о заказе приходило на почту.
  • 0

#10 rostaman

    Новичок

  • Assistent vsupport.club
  • Pip
  • 4 сообщений
Репутация: 0
Начинающий

Отправлено 29 April 2013 - 10:02 AM

Вроде все по инструкции сделал, но сама кнопка "быстрый заказ" неактивна, не подскажете в чем может быть проблема?
  • 0

#11 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 03 May 2013 - 01:51 PM

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


логин клиента генерируется как user_123456 (случайное число), проверяясь на отсутствие такого же логина.
пароль - шестизначный случайный набор буквоцифр (b32vf1).

Заменяем


$customerID = 0;


на


while (true) if (!regIsRegister($login = 'user_'.generateRndCode(6,'1234567890'))) break;
$cust_password = generateRndCode(6);
$addr = iconv('UTF-8', 'windows-1251', $address);
list($first_name,$last_name) = explode(" ",trim(iconv('UTF-8', 'windows-1251', $fio)),2);
foreach ($_POST['fields'] as $val) $additional_field_values[(int)str_replace("additional_field_","",$val['name'])] = array('additional_field' => iconv('UTF-8', 'windows-1251', $val['value']));
regRegisterCustomer( $login, $cust_password, $email, $first_name, $last_name, 0, $additional_field_values, $affiliateLogin = '');
regSetDefaultAddressIDByLogin($login, regAddAddress($first_name, $last_name, CONF_DEFAULT_COUNTRY, 0, "", "", $addr, $login));
regEmailNotification($smarty_mail, $login, $cust_password, $email, $first_name, $last_name, 0, $additional_field_values, CONF_DEFAULT_COUNTRY, 0, "", "", $addr);
$customerID = regGetIdByLogin( $login );

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 03 May 2013 - 08:52 PM

Упс... При незалогиненном юзере новый юзер создается, но доп.поля не прописываются. Исправить легко - в самом низу модуля есть кусочек, где доп.поля текущего юзера сначала удаляются, затем создаются снова. Наиболее правильно этот кусочек переписать. Наиболее просто - обнести условием if (isset($_SESSION['log'])) :).

У меня смешной и дурацкий вопрос. В этом модуле у клиента не вводятся пробелы :). Т.е. исходник один и тот же (tpl.html я не правил), но у меня на тестовом сайте вводятся, а у клиента - нет. Как будто кнопка пробел сломана. При этом Alt-32 на цифровой клавиатуре вполне нормально вводит пробел. Даже не представляю, в какую сторону копать, но подозреваю, что это что-то простое и общеизвестное, просто мимо меня прошло.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 May 2013 - 12:29 AM

Т.е. исходник один и тот же (tpl.html я не правил), но у меня на тестовом сайте вводятся, а у клиента - нет.

Спрошу по другому - а как это вообще можно сделать? Обычные поля <textarea....> и <input...> одинаково не воспринимют пробел в ФайрФоксе. В IE вопринимают на ура. Тот же АБСОЛЮТНО исходник прекрасно работает на моем тестовом сайте. КАК?!

Умозрительно предполагаю только какие-то наследуемые CSS-свойства от родительского тэга, т.к. у меня дефолтовый шаблон, а у клиента свой, но какие? Там родительскими тэгами td, tr и table, нафиг в них какое-то CSS-свойство "не воспринимать пробел в текстовом вводе"? Да и не помню таких CSS-свойств, хотя знаю CSS плохо.

А, да, чуть не забыл. Там и в остальных полях (навскидку - логин, пароль, поиск) тоже пробел не вводится. Никакой JS-обработки нет. Но при регистрации при вводе адреса пробел вполне воспринимается. Я пока даже при доступе к коду не могу понять, как это сделано. Просто не знаю, куда смотреть.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#14 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 04 May 2013 - 09:19 AM

Первый раз слышу о таком свойстве .... чтобы пробелы не вводились.
Уточню пробел не вводится или не приходит/ не записывается???
  • 0

#15 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 May 2013 - 12:10 PM

Уточню пробел не вводится или не приходит/ не записывается???

Не вводится. Т.е. нажимаешь на пробел, а он как будто сломан, ничего не появляется. Но если набрать пробел альт-кодом на цифровой клаве (т.е. alt-32), то пробел появляется. Этого я вообще не понимаю, т.к. альт-коды отрабатываются на уровне ОС, задолго до браузера. И возникает такая петрушка при появлении окна быстрого заказа. Т.е. ДО быстрого заказа в логине-пароле-поиске вводятся пробелы, но стоит вызвать быстрый заказ (где пробелы не вводятся) и в логине-пароле-поиске они тоже перестают вводиться. В общем, какой-то бред :). Буду бороться шаманскими методами - бубен, замена версий и последовательности загрузки библиотек :).

Ееееее!!!! Нашел!
Это плагин Galleriffic перехватывал пробел и стрелки. Везде, где использовался. "Быстрый заказ" вообще ни при чем. Стрелки-то хрен с ними, а вот пробел использовался для перескока с фотки на фотку. Т.е. даже если фокус не на фотках, а на любом поле ввода, то при нажатии пробела происходит смена "активной" фотки, а в поле ввода пробел не появляется. Надо этому плагину при инициализации сменить дефолтовое "enableKeyboardNavigation: true" на false.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 May 2013 - 10:54 AM

Чуть дополнил модуль.
1. При заказе незарегистрированным клиентом создается логин вида user_12345 со случайным паролем вида a1b2c3 и отправляется клиенту на введенный email.
2. В созданном "быстром" заказе при нажатии на название товара(в админке) переходим на страницу товара как и в обычном созданном заказе.
3. селектор "Метод доставки" (без расчета стоимости, только выбор метода)
4. поле "Комментарий"

Прикрепленные файлы


  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#17 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 23 May 2013 - 10:33 AM

Модуль хороший, я при способил его также для вызова страниц сайта в этом же модальном окне, чтобы не грузить лишнее

Но есть вопрос. Пробовал ли кто-его в IE8? У меня не хочет в этом браузере нормально открываться. Может у меня конфликтует с другими скриптами. имеются плагин просмотра изображений, табы и селектор все на jquery.

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

#18 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 23 May 2013 - 11:18 AM

Пробовал ли кто-его в IE8?

Пробовал во всех браузерах. Работает нормально.

http://www.dent-shop.ru - вот тут только установил посмотри в ИЕ8.
  • 1

#19 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 23 May 2013 - 01:41 PM

Пробовал ли кто-его в IE8?

Пробовал во всех браузерах. Работает нормально.

http://www.dent-shop.ru - вот тут только установил посмотри в ИЕ8.


Да посмотрел, работает. Видимо у меня где-то наложение стилей. Даже ссылки Быстрый заказ при начале загрузки страницы показываются сначала нормально, а при полной загрузке страницы, меняют вид и при вызове окна показывает и форму и картинку лоадера, короче весь шаблон формы быстрого заказа сразу, словно свойство display: none не работает....

Буду искать причину дальше
  • 0

#20 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 23 May 2013 - 02:41 PM

Нашел причину.

Причиной оказался комментарий /* описание свойства.... */ в файле CSS . Обычно так не пишу, а тут затесалось.
Как убрал все встало на свои места. Посмотрел модальное окно открывается и в IE7, IE8 и даже IE6 c незначительными нюансами размера затемнения, которые при желании можно убрать
  • 0