Bitrix, только PHP, интернет-магазин: переделать форму заказа
Магазин Битрикс. Малый Бизнес.
Сайт prokoni - shop . ru
Верстка на нашей стороне, тесты на нашей стороне. Мне нужна только реализация описанной логики.
Логика работы:
Общее:
- создаем инфоблок-каталог с городами и способами доставки - cities (таблица есть, пришлю)
- создаем инфоблок-каталог с пунктами самовывоза - self_point
- таблицу служб доставки, способов оплаты - используем стандатные Битриксовые
- для пользователя создаем новые поля "Город" и "Область". Хотя, они вроде уже есть там
на сервере, формирование страницы "оформление заказа":
1) берем из БД все службы доставки (всего 11 записей) - оно ведь в в виде
массива?; используя встроенную логику проверяем наличие скидок на
доставку (которые применяются по стоимости заказа, кол-ву товаров и
т.п.) и проставляем в этом массиве цены уже со скидкой на доставку
2) берем из БД все платежные системы (всего 11 записей) - тут ведь тоже просто массив с инфой и комиссиями
3) формируем итоговую таблицу user_order_info, в которой такие поля (в ней будет не больше 11*11=121 записей):
bitrix delivery ID; bitrix pay ID; price; pay comission
как вы понимаете, мы сюда bitrix pay ID подгружаем не все подряд, а уже только те, которые подходят для способа доставки
4) берем профили покуателя (последние 5; только ИД, ФИО, адрес, емейл,
телефон, область, город; и если там это хранится, то ещё: ид зоны, ид
доставки, ид оплаты) (profiles)
5) берем состав заказа, корзину (cart)
6) берем из БД из инфоблока cities нашу таблицу соответствий города-способы доставки
7) отдаем на страницу данные из описанных выше пунктов, только из этих: 1, 3, 4, 5, 6
эти данные из пункта 7 вряд ли превысят пару килобайт.
Пишу для информации, что будет происходить на странице - ЭТО РЕАЛИЗОВАТЬ НЕ НАДО, это сделает fron-end разработчик:
1) в JS имеем 4 массива: user_order_info, profiles, cart, cities
2) выводим названия профилей в список из profiles, заполняем поля по данным последнего профиля
3) выводим список городов из cities в виде 2х выпадающих списков "область", "город". Если в профиле был город - выбираем город
4) выводим состав заказа, цены и т.п. (cart)
5) когда выбран город - выводим доступные способы доставки (из таблицы
user_order_info берем цену, а по id подставляем название службы и
описание из Битриксовых таблиц); показываем цену и общую сумму заказа
6) когда выбран способ доставки - показываем доступные способы оплаты (из
таблицы user_urder_info берем комиссию платежной системы, если есть, а
по id добавляем название/описание из Битриксовой таблицы со способами
оплаты); показываем общую сумму заказа. Не забываем, что если выбран "в
кредит" нужно показать кнопку оплаты в кредит (надо глянуть, какая там
логика)
7) когда нажимает "оформить заказ" - отдаем Битриксу все данные о заказе
с его стандартными id: состав, службы оплаты/доставки и
т.п.
и отдельный пункт (реализовать ТОЛЬКО СЕРВЕРНУЮ ЧАСТЬ): если выбран "самовывоз из пунктов выдачи" (я дам id этих служб доставки), мы в форме
заказа ещё дополнительно показываем кнопку "выбрать пункт выдачи" и вот
если её кликают - только в этом случае мы делаем 1 ajax-запрос и
подгружаем из таблицы self_point информацию о пунктах выдачи При
оформлении заказа эот "пункт выдачи" должен уйти в какое-нибудь
пользовательское поле, которое будет видно в Заказах всем.
На выходе нужен новый кастомный шаблон/компонент.
Моя оценка: 4-5 часов опытного разработчика (1000р./час). Если по факту уйдет меньше или больше времени - будем ориентироваться на фактическое затраченное. Задачи часто возникают, возможно продолжение сотрудничества.