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