Задача
Задача от заказчика поступила достаточно размыто и заключалась в обновлении сайта с новым функционалом. Заказчик хотел разработать сайт с возможностью отслеживания посылок клиентами, так как у них сейчас в Италии 2 пункта приема посылок в разных городах. Помимо доставки посылок, главной задачей являлось организовать сервис доставки товаров с интернет-магазинов в страны СНГ, организовать доставку "из дома", организовать доставку "из ПВЗ", которых может быть неограниченное количество.
Так же были тонкости, в виде связки посылок с сервисами доставки, нужна была интеграция с сервисом доставки по Европе GLS, и Почтой России, которая находиться в Германии. У всех пользователей должна быть возможность доставить посылки из любой страны Европы в любую страну СНГ.
Решение
1.5 года работы над проектом, за это время у меня родилась дочь :)
Первым делом я принялся к созданию структуры, чтобы все это связать, так как сервис получался большой, нужно было продумать все детали. Сразу понятно было что будет 3 части сайта: внешняя, личный кабинет клиента, личный кабинет администратора, и одной из первых сложностей, стали тарифы для разных стран Европы и СНГ.
Так как у нас доставка осуществляется в несколько этапов, я оттолкнулся от этого:
1. Доставка от дома до ПВЗ (если заказали таким видом),
2. Доставка от ПВЗ до хаба Почты России в Германии (если заказали из дома или принесли в ПВЗ),
3. Доставка до страны СНГ.
Стало понятно, что нужно разбивать страны отправления и страны получения, а к ним прописать свои тарифы, после соединять стоимость. Клиент выбирает страну отправления, страну получения, умножаем на вес и получаем стоимость доставки + таможенный налог на превышение стоимости (сейчас он понизился до 200 евро).
После чего я разбил сервис на 4 услуги, что бы отделить типы посылок:
1. Доставка из ПВЗ
2. Доставка из дома
3. ДОполнительные услуги.
Разница между первым и вторым сервисом в том, что при заказе доставки из дома, после подтверждения доставки, заявка по API формируется у службы GLS и та забирает посылку, доставляет до нашего ПВЗ, а далее уже мы обрабатываем, выставляем счет клиенту, после взвешивания, так как цена формируется только от веса и стран доставки/отправления. Плюсы есть в том, что по Европе нет границ, и мы можем забрать посылку из любой страны Европы.
Так же реализовал кабинет админа (нескольких, разбил на роли), каждый админ закреплен за своим ПВЗ и видит только свои посылки, или посылки, которые идут к нему.
После того, как админ на ПВЗ принимает посылку, создается заявка в GLS на доставку посылки в Почту России в Германии, а так же формируется файл обмена с Почтой, чтобы они знали что за посылка идет к ним.
Почта может заранее выдавать трек номера, я реализовал загрузку админом этих трек-номеров в базу, из которой вытягиваю и назначаю к посылке сразу свой трек для идентификации почтой.
Когда почта получает посылку, с помощью файла обмена, она уже знает всю информацию о посылке и отправляет ее получателю.
По новым правилам, все товары должны получить код ТН ВЭД, я использовал сервис Альта Софт, теперь когда пользователь или админ забивает товары в посылку, он выбирает категорию товара и по API назначается код к товару. Так же для почты нужно название на английском языке, использовали API переводчика и название товара сразу же переводится на английский.
Админ может делать пометки на удаление посылок, но не удалять, у главного админа есть функционал просмотра помеченных посылок, после чего он может подтвердить удаление посылки.
Так же у гл.админа есть возможность создавать новых админов, назначать их к ПВЗ, так как на ПВЗ может работать несколько операторов. У операторов есть возможность создавать посылки из своих кабинетов, если клиент пришел на ПВЗ и не знает о сайте. После того, как оператор заносит клиента в базу, клиенту на email приходит логин и пароль от его кабинета.
Так же оператор видит историю всех клиентов, историю адресов и получателей каждого клиента, что стало удобным, если клиент приходит повторно, что оказалось частым случаем.
Гл. админ может видеть историю действий операторов над посылками, кто изменил, когда изменил, что изменил.
Личный кабинет клиента простой, выбираешь сервис доставки из дома или из ПВЗ, заносишь все данные по получателю и отправителю, все данные по товарам, формируется стоимость доставки сразу, и нужно либо отдать курьеру, либо принести на ПВЗ, в зависимости от типа услуги.
Интеграция с службами доставки для отслеживания помогает отследить клиенту свою посылку. Так же у клиента есть история получателей и адресов доставки.
Я могу описывать данный функционал очень много, так как функций очень много сделано в сервисе. Это самая большая моя работа за все время, и самый длинный срок разработки.
Результат
После первого запуска сервиса, я выявил недостатки с заказчиком, и принялся сразу к доработкам сервиса, обсудив их с заказчиком. После финального запуска и колоссально большой проделанной работы, мы увидели результаты в виде снижения нагрузки на операторов, что позволило убрать очереди на ПВЗ, снизить нагрузку и возможность ошибки оператора из-за потока клиентов.
Данным сервисом отправляется от 50 до 150 посылок ежедневно из одного ПВЗ. Ранее оператор одного ПВЗ мог обработать 30-40 посылок в день, из-за очереди. Сервис доставки посылок из дома пока не самый популярный, и людям нужно будет еще привыкнуть к нему, но сервис доставки из ПВЗ стал активно развиваться. Сократилось время приема и обработки посылок на 80%, так как теперь не нужно вручную заказывать GLS для доставки посылки в Германию на Почту России.
После того, как оператор завершает рабочий день по приему посылок, он формирует в личном кабинете отправление, добавляет туда все собранные за день посылки, и сохраняет, автоматически формируется заявка в GLS на забор этих посылок и доставку в Германию, а так же автоматически формируется файл обмена с уже назначенными трек кодами с Почтой России и отправляется им на почту. На следующий день GLS уже забирает посылки, Почта России принимает, обрабатывает и доставляет их. Ранее это все делалось вручную для каждой посылки отдельно оператором, что позволяло допускать ошибки, путаницы в посылках или товарах.
После результатов, заказчик уже объявил о планах открытия еще двух ПВЗ в Европе, так как наш сервис позволяет ему это сделать легко.
Единственный временный момент, которого еще нет на сайте, это онлайн-оплата, так как заказчики из России не могут оплатить посылку своей картой, для этого временно работает перевод с карты на карту, но я уже работаю над внедрением сервиса оплаты криптовалютой, интеграцией эквайринга с возможностью выводить средства в криптовалюте, на текущий момент идут переговоры с данным сервисом.