Справочник мест: города, написания и зоны
6 мин чтения
Справочник мест — это список населённых пунктов, из которого оператор выбирает город, а система берёт зону доставки. Он решает две задачи разом: оператор перестаёт придумывать написания, а логист перестаёт находить в своей смене чужие заказы.
Зачем справочник, если есть зоны
Зона доставки узнаёт свой заказ по строгому совпадению города или региона. Это работает ровно до первого живого оператора: «Кара-Балта», «Карабалта» и «Кара Балта» — три разные строки, и две из них уедут в запасную зону. Перечислять все написания в списке зоны можно, но список зоны — это не место для шестидесяти пригородов с вариантами.
Вторая беда серьёзнее и списками зоны не лечится вовсе. Кой-Таш — это отдельное село в двадцати километрах от города, и ни по названию, ни по региону он не похож на Бишкек. А везёт его городская смена. Правила такого не выводят: это знание диспетчера, и записать его можно только рядом с самим названием.
ЛогистикаМестаЧто такое место
| Место | Другие написания | Область | Зона | |
|---|---|---|---|---|
| Бишкек | г. Бишкек, Бишкек шаары, Bishkek, Фрунзе | Чуйская область | Бишкек | |
| Кой-Таш | Кой Таш, Койташ | Чуйская область | Бишкек | |
| Лебединовка | с. Лебединовка | Чуйская область | Бишкек | |
| Кант | — | Чуйская область | Область | |
| Кара-Балта | Карабалта, Кара Балта | Чуйская область | Область | |
| Ошвыключено | г. Ош | Ошская область | Область |
| Поле | Что в нём |
|---|---|
| Название | Каноническое написание: то, что подставится в заказ и попадёт в отчёты. Одно на весь проект. |
| Другие написания | Как это же место набирают в жизни: «Кой Таш», «Койташ», «с. Кой-Таш». По одному в строке. Нужны и для поиска в подсказке, и для узнавания адреса из чужого источника. |
| Область | Подставится в заказ вместе с городом. Ради неё справочник и заводят: область, набранная руками, расходится с областью из соседнего заказа. |
| Зона доставки | Чья смена везёт заказы этого места. Пусто — зона подберётся обычным перебором по спискам зон. |
| Примечание | Для своих: «дальше 20 км, но возим городом», «только по вторникам». В заказ не попадает. |
Место живёт внутри проекта. Два проекта одного аккаунта возят по-разному, и общий справочник означал бы, что настройка одного клиента меняет раскладку смен другого.
Как место находит себя в заказе
Название и все написания сверяются без учёта регистра, лишних пробелов, знаков препинания и «ё»: «КОЙ ТАШ», «Кой-Таш» и «койташ » — одно и то же место. Слитное написание — «Койташ» — отдельное: система не убирает разделители вовсе, иначе склеились бы и названия, которые склеивать нельзя. Такие варианты добавляют написаниями.
Если целиком строка не опознана, проверяется её начало — до четырёх первых слов. «Бишкек, Ошский базар» и «Кой-Таш, ул. Ынтымак» опознаются городом, потому что название стоит в начале: человек пишет адрес от общего к частному. Из двух подходящих мест побеждает то, чьё название длиннее: «Кара-Суу» важнее «Кары», случись такое место в справочнике. Одна улица без города не опознаётся ничем — и это лучше, чем угаданный не тот город.
Сверяется сначала город заказа, потом регион. Порядок именно такой: в заказе из Оша в городе написано «Ош», а в регионе — «Ошская область», и оба слова есть в справочнике. Побеждает город, потому что он точнее.
Зона у места сильнее списков зоны
Когда подтверждённый заказ доходит до логистики, зона подбирается так:
- 1Сначала по справочнику. Если город или регион заказа опознан как место и у места указана зона — берётся она, и перебор на этом заканчивается.
- 2Если места нет или у него нет зоны — работает обычный перебор зон по их спискам городов и регионов, по возрастанию порядка.
- 3Если не подошла ни одна — запасная зона. Как и раньше.
Такой порядок делает справочник главным местом настройки, а списки зон — подстраховкой. Выключенная зона в этой цепочке пропускается: место, указывающее на выключенную зону, ведёт себя как место без зоны, и заказ уходит по спискам. Иначе выключение зоны тихо выбрасывало бы её заказы из смен вообще.
Выбор города в карточке заказа
Город
Область
Чуйская областьАдрес
ул. Ынтымак, 14Поедет городской сменой — зона «Бишкек»
Поле Город в карточке заказа и в окне прозвона подсказывает места по мере набора — по названию и по всем написаниям. Выбранная строка подставляет каноническое название и область, а под полем показывает зону, которая повезёт заказ.
Подсказка не запрет. Город можно оставить своим текстом: справочник заводят постепенно, и заказ из посёлка, которого в нём нет, должен приниматься как раньше. Такой заказ просто пойдёт по спискам зон.
Завести справочник списком
Кнопка Списком заводит места пачкой. Строка — одно место, части разделяются вертикальной чертой: название, написания через запятую, область. Написания и область необязательны — половина списков приходит голыми названиями.
- Кой-Таш | Кой Таш, Койташ | Чуйская область
- Лебединовка | | Чуйская область
- Маевка
Зона задаётся один раз на всю пачку — потому что так этот список и приносят: «вот всё, что возим городом». Пригороды загружают одной пачкой с зоной Бишкек, областные центры — второй с зоной Область, и области у них при этом разные, поэтому область стоит в строке, а не в диалоге.
За одну загрузку принимается 500 строк. Больше диалог не отправит и скажет об этом до отправки: отказ по пачке в шестьсот строк не говорит, какие из них успели завестись, — не завелась ни одна.
Повторная загрузка того же списка не ошибка и не удвоит справочник: место, которое нашлось по названию, обновится. Две строки одного места внутри одной вставки тоже не спорят — их написания складываются. Список правят в блокноте и вставляют целиком заново; это нормальный способ им пользоваться.
Кто ведёт справочник
Таблицу мест правит тот, у кого есть Настраивать зоны и тарифы доставки — это та же настройка раскладки смен, что и зоны. Подсказку в карточке заказа видит любой, кто видит заказы: оператору для выбора города не нужны права логиста.
Живой пример: город в двадцати километрах
Компания возит своими курьерами Бишкек и всё, что вокруг него в пределах двадцати километров, а остальное отдаёт областной смене. Это две зоны и один справочник.
- 1Зона Бишкек — свой курьер, городской склад. Зона Область — запасная, чтобы ничто не потерялось.
- 2Первой пачкой — города и сёла в двадцати километрах: Бишкек, Лебединовка, Новопавловка, Кой-Таш, Военно-Антоновка, Маевка. Область у всех «Чуйская область», зона — Бишкек.
- 3Второй пачкой — областные центры и райцентры: Ош, Жалал-Абад, Каракол, Токмок, Кант, Кара-Балта. Область у каждого своя, зона — Область.
- 4Кант и Сокулук попали во вторую пачку осознанно: они дальше двадцати километров. Решение записано в примечании места — чтобы через полгода никто не гадал, почему сосед Лебединовки едет областной сменой.
Выключить место
Выключенное место не предлагается в подсказках операторам, но продолжает участвовать в подборе зоны. Так себя ведёт название, которым больше не пользуются, но которое ещё приходит из чужого источника.
Место можно и удалить — в отличие от зоны. За зоной тянутся смены, деньги и расчёты с курьерами, а за местом не тянется ничего: заказ хранит город строкой, и удаление справочной записи его не трогает.
Чего пока нет
- Справочник заводится руками. Готового списка населённых пунктов страны в системе нет, и координат у места нет тоже — «двадцать километров» вы определяете сами, система расстояний не считает.
- Место — это город или село целиком. Улиц, районов внутри города и разных зон для разных концов одного города нет.
- Подсказка ищет по началу слова в названии и написаниях. Опечатку в середине слова она не прощает: «Кара-Бата» ничего не найдёт.
- Зона у заказа подбирается один раз. Исправленный после этого город справочник не пересчитает — строку переносят руками, смотрите Смену логиста.
Не нашли ответ
Напишите на hello@xe.kg — ответим и дополним статью. Так она и растёт.