Для покупателя доставка выглядит просто: выбрать продукты, указать адрес и нажать «Заказать». Но за этой кнопкой магазин должен проверить остатки, передать заказ на сборку, назначить курьера, рассчитать стоимость доставки и показать человеку понятный статус.
Если приложение, 1С и работа сотрудников не связаны между собой, вместо нового канала продаж получается ещё один список заказов, который приходится вести вручную.
Разберём, как собрать систему доставки без таких разрывов. В качестве примера возьмём Bakaev Market — проект 13FOX с каталогом более 10 000 товаров, мобильным приложением покупателя, админ-панелью, облачной 1С и отдельным приложением курьера.
До дизайна главной страницы полезно нарисовать путь обычного заказа:
покупатель выбирает товар → магазин подтверждает наличие → заказ собирают → курьер получает адрес → покупатель видит доставку → заказ закрывается.
В этой цепочке у каждого участника свой интерфейс, но заказ должен оставаться одним и тем же. Если сотрудник меняет статус в одном месте, покупатель и курьер должны увидеть это изменение без звонков и переписки.
Одна из самых неприятных ситуаций для магазина — покупатель заказал товар, которого уже нет. Часто это происходит потому, что остатки меняют и в 1С, и в админ-панели, а системы не успевают договориться между собой.
Заранее определите, где хранится актуальная версия каждого типа данных:
товары, цены и остатки;
фотографии и описания;
корзина покупателя;
заказ и его статус;
зоны и стоимость доставки;
положение курьера во время активного заказа.
В Bakaev Market каталог, цены, остатки и изображения приходят из 1С через OData. Изменения, сделанные в админ-панели, также передаются в учётную систему. Если обмен не удался, сотрудник видит ошибку, а не две незаметно разошедшиеся версии товара.
Такой подход иногда требует лишнего клика сегодня, зато избавляет от ручной сверки завтра.
Между телефоном и учётной системой нужен сервер. Он проверяет права доступа, приводит данные к удобному формату, создаёт заказы, повторяет неудавшийся обмен и ведёт журнал ошибок.
Это даёт бизнесу сразу несколько преимуществ:
реквизиты 1С не попадают в мобильное приложение;
изменение учётной системы не заставляет срочно выпускать новую версию приложения;
одну и ту же логику могут использовать приложение, сайт и админ-панель;
временная недоступность 1С не превращается в непонятную ошибку на телефоне покупателя.
Для большого каталога данные лучше обновлять порциями в фоне. Отдельная синхронизация изображений не должна задерживать изменение цены или остатка.
Покупатель может собрать корзину утром, а заказать вечером. За это время акция закончится, цена изменится или последний товар купят в самом магазине.
Поэтому приложение хранит удобный черновик корзины, но окончательное решение принимает сервер:
Перед оформлением он уточняет цены, акции и доступное количество.
При создании заказа проверяет их ещё раз и защищает остатки от одновременного изменения.
Если товара стало меньше, лучше честно показать это человеку и предложить изменить корзину. Незаметная замена без согласия быстро разрушает доверие.
В Bakaev Market корзина сохраняется на устройстве и синхронизируется с сервером для авторизованного пользователя. Перед заказом покупатель видит проверенный состав, стоимость товаров, доставку и итоговую сумму.
Один и тот же адрес можно написать по-разному. Кроме того, соседние дома могут относиться к разным зонам и иметь разную стоимость доставки.
Надёжный сценарий выглядит так:
Покупатель вводит адрес или выбирает точку на карте.
Система получает координаты и нормализованный адрес.
Сервер проверяет, входит ли точка в активную зону.
Покупатель сразу видит стоимость и примерное время доставки.
В Bakaev Market администратор рисует зоны на карте и задаёт для них тарифы. Если адрес не удалось распознать автоматически, покупателю предлагают поставить точку вручную, а не разбираться в техническом сообщении об ошибке.
Когда статус можно менять как угодно, появляются странные ситуации: заказ уже «доставлен», хотя курьер ещё не назначен, или снова «собирается» после завершения.
Для первой версии достаточно простой последовательности:
принят → собирается → назначен курьер → в доставке → доставлен.
Отмену стоит продумать отдельно: до какого момента её делает покупатель, кто подтверждает отмену после начала сборки, как возвращаются остатки и что происходит с оплатой.
Каждое изменение лучше хранить вместе со временем и автором. Тогда поддержка сможет быстро понять, где задержался заказ и что произошло в спорной ситуации.
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
13752 тендера
проведено за восемь лет работы нашего сайта.
Админ-панель — это не красивый дашборд, а рабочее место. На старте важнее не десять графиков, а возможность провести заказ без таблиц и мессенджеров.
Обычно магазину нужны:
новые и активные заказы;
поиск по номеру, клиенту и адресу;
состав заказа и комментарий покупателя;
смена статуса по понятным правилам;
назначение курьера;
контроль каталога и обмена с 1С;
зоны и тарифы доставки;
список курьеров и журнал ошибок.
Хорошая проверка админ-панели — можно ли провести через неё обычную рабочую смену без участия разработчика.
Курьеру не нужна уменьшенная копия админ-панели. Его путь должен быть коротким: увидеть назначенный заказ, построить маршрут, начать доставку и завершить её.
Минимальный набор включает:
вход сотрудника;
список назначенных заказов;
адрес, состав и контакт покупателя;
маршрут на карте;
действия «начать доставку» и «завершить»;
понятную работу при плохом интернете;
уведомление о новом назначении.
В Bakaev Market геопозиция передаётся только во время активной доставки. Диспетчер видит курьеров на общей карте, а покупатель — движение по своему заказу. На Android фоновая передача сопровождается системным уведомлением.
Уведомление может не прийти: телефон был без сети, пользователь отключил разрешения или сервис временно недоступен. Поэтому актуальный статус всегда хранится на сервере и появляется в приложении после открытия.
Push только сообщает об изменении и ведёт на нужный экран. Его отсутствие не должно останавливать работу магазина или курьера.
Чтобы запустить полноценную доставку, обычно достаточно следующего контура.
Для покупателя: каталог, поиск, карточка товара, корзина, адрес, проверка зоны, оформление и статус заказа.
Для магазина: получение и обработка заказа, статусы, назначение курьера, каталог и контроль обмена с 1С.
Для курьера: назначенные доставки, маршрут, смена статуса и передача позиции во время заказа.
На сервере: пользователи, товары, корзина, заказы, зоны, права доступа, интеграция с 1С, журнал ошибок и сервисные уведомления.
Сложную программу лояльности, персональные рекомендации, автоматическое распределение нескольких заказов и большую BI-аналитику можно добавить позже — если именно они не являются главным преимуществом бизнеса.
Обычного теста «товар добавился в корзину» мало. Проведите несколько реальных сценариев:
Цена или остаток меняются в 1С и обновляются в приложении.
Товар заканчивается, пока он лежит в корзине.
Два покупателя заказывают последний экземпляр одновременно.
1С недоступна во время создания заказа.
Адрес находится за пределами зоны или на границе двух зон.
Заказ отменяют до сборки и после назначения курьера.
Курьер теряет сеть и продолжает доставку после восстановления.
Push не приходит, но новый статус виден во всех интерфейсах.
Заказ проходит весь путь, а остатки и история совпадают во всех системах.
Отдельно проверяйте релизные сборки на реальных устройствах: карты, push и фоновая геолокация могут вести себя иначе, чем в тестовой среде.
Срок и стоимость зависят не столько от количества экранов, сколько от ответов на практические вопросы:
где сейчас находятся товары, цены, остатки и изображения;
какая версия 1С используется и какой обмен она поддерживает;
как быстро изменения должны появляться у покупателя;
что делать с заказом, если 1С временно недоступна;
когда резервируется и списывается товар;
кто собирает заказ и где он работает;
как назначаются курьеры;
какие зоны, тарифы и способы оплаты нужны.
Два приложения с одинаковым каталогом могут заметно отличаться по объёму работ. Одно получает остатки файлом раз в сутки, другому нужен двусторонний обмен, резервирование товара и согласованное проведение каждого заказа.
Хорошая доставка не заставляет человека думать о 1С, интеграциях и статусах. Он выбирает продукты, получает понятную стоимость и видит, где находится заказ. В это же время магазин работает с актуальными остатками, сотрудники понимают следующий шаг, а курьер получает всю нужную информацию в одном месте.
В Bakaev Market команда 13FOX связала приложение покупателя, админ-панель, облачную 1С и работу курьеров в единую систему.
Если вашему магазину нужен собственный канал онлайн-продаж, пригласите 13FOX в тендер на Workspace или напишите нам в сообщениях площадки. Разберём текущие процессы, определим состав первой версии и предложим поэтапный план запуска.