Переделка формы заказа для сайта интернет магазина (Opencart+PHP+Java)

25 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
10 августа 2017, 14:35 • 2 отклика • 53 просмотра
Переделка
формы заказа для сайта https://forma-odezhda.ru (Opencart+PHP+Java)

Задача: сделать удобную для пользователя форму заказа, чем
повысить ее конверсию.



Проблемы текущей версии:



1) Долго загружаются варианты доставки из Shiptor



2) «Глюки» на разных этапах работы формы



3) Невнесение списка товаров в некоторые заказы
(«глюки» авторизации)



4) «Одностраничник» не понимают клиенты

Что требуется сделать:

1 )Сверстать форму заказа по приложенным макетам



2) Изменить техническую логику работы формы заказа

Техническая логика работы формы заказа.



Помимо визуального изменения компоновки формы заказа с
вертикально-последовательной на горизонтально-параллельную, необходимо будет
внести корректировки в логику работы.

Вкладка «Корзина»:



На данной вкладке должны быть расположены мелкие картинки
товаров, их название, размер и рост (если есть), стоимость, количество и сумма.
Если товаров больше, чем позволяет показать разрешение экрана, кусок вкладки
с самими товарами «проматывается» отдельно от формы заказа.
Крестик –
удаляет товар из корзины. При изменении количества товаров, кнопками + и -, если способ доставки не выбран – не делаем
ничего, если выбран – доставку пересчитываем.



1. Появляется поле «промокод». Логика работы – ищет промокод в таблице coupon и
применяет скидку discount на
товары в корзине, согласно правил в coupon_product.



2. Появляется вес каждого товара – берем из weight таблицы product, форматируем в
килограммы.



3. Появляется поле скидка – если применен купон,
показываем скидку по купону.



4. Появляется баннер, предупреждающий об
ограничениях доставки заказов, если заказ меньше 300 рублей и больше 10000.



5. Кнопка «Далее» - переход на вкладку «Доставка»

Вкладка «Доставка»:



Логика работы данной вкладки следующая – пользователь вводит
первые буквы города, suggestions от dadata
дают ему 10 вариантов. Дальнейшие
действия происходят только после того, как подсказка выбрана. Отрабатывает 4
запроса – 2 к api.postcalc (calculateShipping



с наложенным платежом и без) и 2 к api.shiptor
(с наложенным платежом и без). Результаты показываем в соответствующих
полях.



К результатам расчета
прибавляем по 30 рублей на тару для почты, почты 1 класса, почты
EMS. К постаматам, ПВЗ и



К результатам расчета
времени доставки для всех пунктов, кроме курьерской доставки, прибавляем 2-6
дней на сбор.


В почтовых отправлениях с наложенным платежом также
показываем примерный размер наложенного платежа (из ответа api.postcalc).



Метод getDeliveryPoints
используем только при выборе способов доставки «Курьерская доставка» и
«Пункты выдачи заказов». В каждом из них должны быть раскрывающиеся списки. В
случае ПВЗ, каждый пункт списка содержит информацию в виде – «Служба доставки –
Адрес пункта выдачи (Сроки, Стоимость)». После выбора способа доставки, она не
сбрасывается при переходе на другие вкладки.



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



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



Код окошка по выбору географического положения ПВЗ меняем
только для момента выбора ПВЗ – не уменьшаем карту, а остаемся на том же
масштабе.

Вкладка «Контактная информация»

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



ФИО проверяется suggestions от dadata
– как и сейчас.



Номер телефона – с серым шаблоном +7(777)777-77-77



E-mail тоже
проверяем регуляркой.

Информация не сбрасывается при переходе не другую вкладку.



Если человек залогинен – ФИО, номер телефона и почта
подцепляются из его профиля.

Кнопка «Оформить заказ» становится доступна только после
того, как поставлена одна галочка (вторая опциональная).



После нажатия «Оформить заказ», если пользователь залогинен
– создаем заказ, если пользователь залогинен и не оставил почты – используем info@forma-odezhda.ru вместо
почты. Если почта клиента есть в таблице customer (поле email)
- предлагаем залогиниться. При
этом, не заменяем текущую корзину пользователя той корзиной, которая у него
сохранена в таблице customer.

Файлы