Каталог ячеек склада: мобильные списки отбора, которые экономят время
Создайте каталог ячеек склада и генерируйте мобильные листы подбора, отсортированные по аллеям и ячейкам, чтобы сократить ходьбу, уменьшить пропуски и ускорить выполнение заказов.

Почему подбор замедляется, когда местоположения хаотичны
Подбор остаётся быстрым, когда у каждого товара есть понятное «место», и все доверяют этому расположению. Всё тормозит, как только местоположения становятся расплывчатыми, устаревшими или разбросанными по трём источникам (таблица, блокнот и «устная договорённость»). Тогда каждый подбор превращается в небольшую поисковую операцию.
Потери времени видно на полу: сборщик доходит до нужной аллеи, но этикетка ячейки неясна, и он сканирует соседние стеллажи. Находит SKU в другом месте, делает пометку на бумаге и идёт дальше. Позже система всё ещё считает товар в старой ячейке, и другой сборщик возвращается туда снова.
Хаотичные местоположения обычно создают одни и те же проблемы:
- Возвраты назад, когда порядок в списке не совпадает с тем, как люди ходят.
- Пропуски строк, потому что сборщик не может подтвердить ячейку.
- Бумажные заметки вроде «перемещено в A3», которые никогда не попадают в систему.
- Дополнительные проверки (спросить лидера, смотреть историю), только чтобы подтвердить, где лежит запас.
Более быстрое выполнение — это не про спешку. Это про удаление лишних движений и предотвратимых ошибок: меньше шагов, меньше поисков, меньше частичных подборов и меньше переделок после ошибок при упаковке.
Решение простое: один источник правды для мест и листы подбора, отсортированные по планировке склада, а не по порядку, в котором приходит информация из системы продаж. Каталог мест на складе должен отвечать на один вопрос мгновенно: «Куда мне идти, чтобы сейчас забрать этот SKU?»
Представьте утреннюю волну: 18 строк по 6 заказам. Два SKU были перемещены из A-02 в C-14, и об этом знает только один человек. Каждый сборщик теряет время в поиске, и смена повторяет ту же ситуацию. Обновите каталог один раз, отсортируйте мобильный лист по аллеям и ячейкам, и работа станет предсказуемой.
Ячейки, аллеи и SKU: простая модель для старта
Подбор ускоряется, когда все пользуются одной «картой» помещения. В день запуска не нужна идеальная карта, но нужны понятные и общие определения.
Используйте простые термины, которые уже понятны вашей команде:
- Зона: большая область, например «Cold storage» или «Bulk».
- Аллея: дорожка, по которой ходят.
- Стойка (или секция/участок): вертикальный или нумерованный сегмент в аллее.
- Ячейка (бин): наименьшая местоимая позиция, где стоит товар.
Думайте о ячейке как об адресе, который вы хотите напечатать на этикетке и показать на телефоне. Если вы строите каталог ячеек, то именно ячейка — та единица, которая важна, потому что её сканирует и подтверждает сборщик.
На стороне товара SKU — это продаваемая единица, которую считают, подбирают и отправляют (например, «Чёрная футболка, M»). Один SKU в реальности может иметь несколько мест: основную ячейку для отбора, запас на стеллажах, место для комплектов или карантин.
Это нормальное поведение склада. Переполнение появляется после большого приёма, сезонные товары перемещают ближе к упаковке, возвраты попадают в зону проверки, быстрые хиты пересортировывают. Планируйте под эту реальность, не усложняя первую версию.
Простое правило на старт: давайте каждому SKU одну основную ячейку для отбора и разрешайте опциональные вторичные местоположения с ясным статусом, например «Overflow» или «Returns hold». Добавляйте правила только когда команда доверяет базовым процессам и данные остаются чистыми.
Проектирование данных: что хранить в каталоге ячеек и SKU
Каталог мест работает только если модель данных остаётся простой. Нужна достаточная структура, чтобы местоположения были точными, а списки подбора — предсказуемыми, но при этом обновления не превращались в проект.
Большинство команд могут начать с четырёх основных записей, которые отражают реальную работу на полу: Products (SKUs), Locations (ячейки), Inventory (сколько где) и Pick Tasks (что сейчас нужно взять).
Четыре записи, которые нужны
Сфокусируйтесь на полях, которые влияют на скорость подбора и уменьшают неразбериху.
Products (SKUs) должны включать идентификацию и базовую информацию по обращению: код SKU, название, штрихкод/UPC, единицу измерения, активный/неактивный статус и стандартное количество для отбора, если часто берут упаковками.
Locations (ячейки) должны отражать навигацию: зона, аллея, код ячейки, порядок отбора (число для сортировки) и статус, например active, blocked, empty или quarantine.
Inventory — это реальность: SKU, место, количество на руках, зарезервированное количество, дата последнего пересчёта и статус подсчёта (ok, needs recount).
Pick Tasks связывают работу с человеком и местом: ID заказа или волны, SKU, требуемое количество, назначенный сборщик, статус задачи (open, in progress, picked, exception) и выбранная ячейка для отбора.
Несколько ячеек на SKU (основная и вторичные)
Многие SKU находятся сразу в нескольких местах (фронтальная ячейка и запас). Решайте это одним правилом: держите одну основную ячейку на SKU и разрешайте вторичные с приоритетом.
Практичный подход — отдельная таблица соответствий SKU-Location с полями: priority (1, 2, 3), необязательные min/max уровни для фронтальной ячейки и флаг пополнения. Когда основная ячейка заканчивается, задача подбора может переключиться на следующую по приоритету.
Встройте аудит с самого начала. Фиксируйте, кто изменил местоположение SKU, что изменилось и когда. Одна неправильная правка может замедлять подбор днями, поэтому изменения должны быть отслеживаемыми и простыми для проверки.
Именование мест, которое остаётся последовательным (и легко сканируется)
Этикетка ячейки помогает только тогда, когда все читают её одинаково, а система хранит её в одном формате. Цель — имя, удобное на экране телефона, чисто печатающееся на этикетке и корректно сортирующееся.
Простой подход — фиксированный шаблон с фиксированными длинами, чтобы A2 и A10 не сортировались неправильно. Общая схема: Zone-Aisle-Bay-Level-Bin, где у каждой части своя задача:
- Zone:
Z01(область склада или температурная зона) - Aisle:
A03(аллея) - Bay:
B12(секция вдоль аллеи) - Level:
L02(вертикальный уровень) - Bin:
S05(слот или позиция)
Это даёт ID вроде Z01-A03-B12-L02-S05. Даже если сегодня не используете все части, оставлять слоты удобно для будущего расширения.
Запланируйте исключения заранее, но держите их в той же структуре, чтобы они были очевидны и сортировались: паллеты-оптом (Z01-BULK-P01), клетки (Z02-CAGE-07), возвраты (Z01-RTN-01) или удержание QA (Z01-QA-01).
Последовательность обычно ломается из-за дубликатов и опечаток. Добавьте валидацию, чтобы «плохие» местоположения нельзя было сохранить. Храните строгий ID и опциональное читаемое отображаемое имя отдельно.
Защитные правила, которые быстро окупаются:
- Требуйте верхнего регистра и единого разделителя (например, только дефисы).
- Принуждайте к формату частей (
Z\d\d,A\d\dи т.п.). - Блокируйте дубликаты (уникальный ID мест).
- Избегайте неоднозначных символов (O vs 0, I vs 1).
Когда имена мест предсказуемы, сканирование быстрее, обучение проще, а сортировка списков подбора — надёжной.
От заказов к спискам подбора: как должен работать поток
Лист подбора должен идти по простой цепочке: заказы превращаются в строки заказа, строки заказа — в задачи подбора. Когда эта цепочка стабильна, каталог мест перестаёт быть «данными для поддержки» и начинает экономить реальные шаги.
Рабочий поток, который годится для большинства складов:
- Импорт или создание заказа (из магазина, ERP или вручную).
- Развёртывание в строки заказа (SKU, количество, заметки: лот/серийник).
- Разрешение каждой строки к конкретной ячейке для отбора.
- Создание задач подбора (по одной задаче на пару SKU–ячейка с целевым количеством).
- Группировка задач в лист подбора (по правилам, удобным для сборщиков).
Правильный выбор ячейки по SKU — место, где команды часто теряют время. Практичные правила просты:
- Берите из основной ячейки, если там достаточно на руках.
- Если нет, разделяйте задачу по ячейкам.
- Если есть несколько подходящих ячеек, выбирайте ближайшую по вашим правилам макета (или просто по порядку аллей).
- Исключайте ячейки, которые не должны подбираться: quarantine, damaged, blocked или зарезервированные для пополнения.
Сортировка должна соответствовать тому, как люди ходят. Надёжный дефолт: зона, затем аллея, затем ячейка, а в качестве тай-брейкера — имя товара.
Батчинг — последнее решение. Подбор по одному заказу подходит для срочных заказов. Волновой подбор — для запланированных прогонов. Кластерный подбор полезен, когда один сборщик может взять позиции для нескольких мелких заказов за одну прогулку без путаницы.
Логика сортировки, которая сокращает ходьбу без усложнений
Цель не в идеальном маршруте. Цель — порядок отбора, понятный человеку и сокращающий главный простой: хождение туда-сюда.
Большой выигрыш многие склады получают от простого порядка: зона, затем аллея, затем ячейка. Если коды мест последовательны, простая текстовая сортировка часто работает хорошо.
Если нужна явная сортировка, держите её читаемой:
- Zone
- Aisle (по возрастанию)
- Bay/section
- Level/bin (по возрастанию)
Добавляйте особые правила только по мере необходимости. Классический случай — односторонние аллеи: нечётные аллеи сверху вниз, чётные — снизу вверх, чтобы сборщики не пересекались. Мезонины и холодные зоны тоже требуют особой обработки, потому что туда тратится время на вход или подготовку. Держите эти правила как простые переключатели, а не как сложный движок маршрутизации.
Разделённые подборы имеют значение: если заказ требует 12 ед., а в основной ячейке 8, лист должен показать две строки в правильном порядке: взять 8 из основной, затем 4 из следующей по приоритету ячейки.
Когда ячейка пуста, сборщик не должен решать, куда идти дальше. Используйте автоматический fallback и создавайте сигнал на пополнение, чтобы проблема не ударила по следующему прогону.
Дизайн мобильного листа подбора: что нужно сборщику на одном экране
Сборщик не должен искать информацию во время ходьбы. Лучшие мобильные экраны кажутся скучными: одно ясное следующее действие, крупный текст и ничего лишнего. Если каталог точен, задача приложения — провести сборщика до следующей ячейки и сделать подтверждение быстрым.
Экраны, которые стоит оставить (и упрощать)
Держите набор экранов небольшим и соответствующим происходящему на полу:
- Сегодняшние подборы: запуски или волны с понятной кнопкой старта.
- Детали подбора: единый вид «следующий подбор» с ячейкой, товаром и требуемым количеством.
- Подтверждение количества: быстрый шаг для подтверждения, по возможности без ввода текста.
- Исключения: быстрый способ сообщить о проблеме, не выходя из процесса.
На экране деталей поставьте код ячейки самым крупным элементом, затем количество, затем название SKU. Добавляйте маленькое изображение товара только когда оно помогает отличать похожие позиции. Заметки делайте короткими и конкретными (например: «верхняя полка, слева»).
Подтверждение: тап, скан или оба варианта
Если можно, поддержите и тап, и скан. Тапы быстрее, когда этикетки нет. Сканирование снижает ошибки, когда товары похожи внешне.
Кнопки исключений должны быть доступны в один тап и всегда видимы:
- Short pick
- Wrong bin
- Damaged item
- Missing label
- Skip and come back
Рассматривайте исключения как реальные данные, а не заметки. Так супервайзеры замечают паттерны и устраняют коренные причины, а не получают отчёты после смены.
Пошагово: как построить каталог ячеек и авто-отсортированные листы подбора
Начните с малого. Полезную систему можно построить с одной аллеи и одной группой товаров, а затем расширять, когда поток на полу ощущается естественным.
Порядок сборки, который избегает переработок:
-
Сначала настройте каталог мест. Создайте запись для каждой ячейки (склад, зона, аллея, стойка, уровень, позиция). Импортируйте то, что есть в таблице, даже если это не идеально. Позже можно почистить названия, но сейчас нужны стабильные ID.
-
Добавьте SKU и свяжите их с местами. Дайте каждому SKU основную ячейку для отбора, затем опциональные вторичные для переполнения. Это предотвратит ситуации, когда «пусто» останавливает прогон.
-
Преобразуйте заказы в задачи подбора. Держите приём заказов простым: заголовок заказа, строки заказа и сгенерированные задачи подбора по строкам.
-
Сортируйте для ходьбы, а не для идеальности. Начните с правила: сортировать по зоне, затем аллее, затем стойке, затем уровню. Если две строки ссылаются на одну ячейку, группируйте их.
-
Добавьте подтверждения и исключения. Требуйте быстрых подтверждений (тап или скан). Если ячейка пуста, позвольте сборщику сообщить проблему и продолжить; система сохраняет причину для дальнейшей обработки.
Пример: сборщик приходит в ячейку A-03-02, находит 1 из 3 единиц, подтверждает частичный подбор, переходит к вторичной ячейке, а система фиксирует исключение для последующего пополнения.
Простой пример: утренняя пробежка подбора с реальными нюансами
9:05 утра, три заказа упали одновременно, всего 12 строк. В каталоге каждый SKU связан с основной ячейкой и запасной ячейкой на случай разделения запаса.
Заказ A: 4x SKU-101, 1x SKU-205, 2x SKU-330.
Заказ B: 1x SKU-101, 3x SKU-118, 1x SKU-712, 1x SKU-330.
Заказ C: 2x SKU-205, 1x SKU-118, 1x SKU-990.
Правило: брать сначала из основной ячейки, затем переливаться в overflow при необходимости.
- SKU-101 primary: Aisle 01, Bin 01-04; overflow: Aisle 09, Bin 09-22
- SKU-330: Aisle 03, Bin 03-11
- SKU-205 primary: Aisle 06, Bin 06-02; overflow: Aisle 06, Bin 06-18
Мобильный список сортируется по аллеям и ячейкам, чтобы маршрут был предсказуем:
- Аллея 01: ячейка 01-04 (SKU-101)
- Аллея 03: ячейка 03-11 (SKU-330)
- Аллея 06: ячейка 06-02 (SKU-205)
- Аллея 06: ячейка 06-18 (overflow для SKU-205, если нужно)
- Аллея 09: ячейка 09-22 (overflow для SKU-101, если нужно)
В середине прогона сборщик добирается до ячейки 06-02 для SKU-205 и обнаруживает её пустой. На том же экране он нажимает «Short pick», вводит фактическое количество (0) и добавляет краткую заметку «ячейка пуста, проверить паллету в приемке». Приложение переносит оставшееся количество в overflow 06-18, если там есть запас.
После прогона супервайзер видит аккуратный свод: какие строки были короткие, какие ячейки вызвали проблему и сигнал на пополнение для 06-02.
Частые ошибки, из-за которых листы подбора становятся медленнее
Каталог мест помогает только если люди ему доверяют. Задержки обычно начинаются с мелочей: новое имя ячейки здесь, «временно» перемещено там, и вскоре сборщики перестают следовать списку.
Самые частые ошибки:
- Разрешение кому угодно создавать ячейки без правила именования, что порождает дубликаты типа «Aisle 3 Bin 4» vs «A3-B04».
- Не фиксируется история изменений мест, и никто не может ответить «кто и когда переместил?».
- Сортировка по SKU вместо мест — выглядит аккуратно на бумаге, но заставляет людей бегать по всему складу.
- Нет потока исключений, поэтому сборщики переходят на разговоры, память и бумагу.
- Игнорирование зон с плохим покрытием, из-за чего команда использует скриншоты или бумажные заметки.
Пример: сборщик видит в списке «SKU 1142», а ячейка пуста. Без кнопки исключения и истории он идёт к супервайзеру, затем возвращается к «возможно» запасной полке. Одна такая ситуация может сорвать весь прогон.
Несколько простых защит помогут системе оставаться быстрой:
- Принуждайте единый шаблон имен и проверяйте его.
- Логируйте каждое изменение ячейки и перемещение SKU с меткой времени и пользователем.
- Сортируйте списки по аллее и ячейке, а не по SKU.
- Делайте исключения простыми и структурированными: не найдено, короткий подбор, перемещено и краткая заметка.
Короткий чеклист перед запуском на полу
Прежде чем давать телефоны сборщикам, убедитесь, что базовое не подведёт. Каталог помогает только при совпадении данных с реальными полками.
Начните с покрытия и маркировки. Пройдите каждую аллею и выборочно проверьте: можно ли за секунды найти код ячейки, и совпадает ли он точно с записью в системе?
Проверки готовности к полу
- У каждого SKU, который должен отправляться, есть по крайней мере одно активное местоположение, и основная ячейка указана правильно.
- Коды ячеек уникальны, и печатные этикетки точно соответствуют формату в системе (нули, дефисы, регистр).
- Списки подбора сортируются предсказуемо (зона, аллея, ячейка) и читаемы на телефоне.
- Сборщики подтверждают каждую строку перед переходом (скан или тап).
- Опции short pick, wrong bin и could not find доступны, и каждая запись создаёт ясный лог.
После чеклиста проведите 15-минутный сухой прогон с двумя реальными заказами. Попросите сборщика точно следовать списку, пока лидер наблюдает за точками замешательства: непонятные коды, дубликаты, мелкие кнопки или отсутствие пути для исключений.
Что логировать в день запуска
Если что-то пойдёт не так, нужен простой след: кто собирал, в какую ячейку его отправили, что он подтвердил и почему строка не была завершена.
Следующие шаги: пилот, измерение и расширение
Выберите одну зону (например, аллеи 1–3) или одну категорию товаров, которая показывает обычный день, а не крайний случай. Узкий пилот выявит проблемы без срыва всей работы склада. Цель — доказать две вещи: данные мест остаются точными, и порядок в списке действительно сокращает ходьбу.
Определите «лучше» до первой пилотной смены. Отслеживайте несколько простых показателей для удобства сравнения:
- Время отбора на строку (среднее и худшее)
- Количество коротких подборов (товар не найден в заявленной ячейке)
- Повторные проходы (возвраты в уже пройденные аллеи)
- Строки, собранные в час на одного сборщика
- Изменения в списке подбора в ходе прогона
Держите управление лёгким, но реальным. Назначьте одного владельца изменений ячеек и установите цикл обновлений (ежедневно для быстрых товаров, еженедельно для медленных). Большинство замедлений начинается, когда все могут перемещать товар, но никто не обновляет местоположения.
Если вы хотите сделать это без тяжёлого кодирования, AppMaster (appmaster.io) — один из вариантов: смоделируйте данные о ячейках и SKU, добавьте логику подбора и исключений визуальными рабочими процессами и сгенерируйте и админку, и мобильное приложение из одной настройки.
Когда пилот будет стабилен, расширяйте зону за зоной. Добавляйте функции в этом порядке: подсказки на пополнение, когда фронтальный запас падает ниже порога; простые циклические пересчёты для «ошибкоопасных» ячеек; разграничение прав на редактирование ячеек/SKU/заказов; и более детализированные потоки исключений (повреждён, замена, разделённая ячейка).
Вопросы и ответы
Начните с единого источника правды для мест и требуйте, чтобы каждый подбор подтверждал ячейку. Самый быстрый выигрыш — это когда в системе указан тот же код ячейки, что и на полке, тогда сборщики перестают «искать вокруг» и меньше полагаются на память.
Используйте последовательный шаблон, который соответствует тому, как люди ходят по складу, и делайте части фиксированной длины, чтобы сортировка работала корректно. Хороший вариант по умолчанию — Zone-Aisle-Bay-Level-Bin; неиспользуемые части можно оставить как заполнители, чтобы позже расширять систему без массового переименования.
Дайте каждому SKU одну основную ячейку для отбора, а затем разрешите вторичные местоположения с понятной целью, например overflow или удержание для возвратов. Так ответ на вопрос «куда идти за этим SKU прямо сейчас?» остаётся простым, при этом покрывается реальность разделённого запаса.
Держите структуру простой: SKUs, Locations (ячейки), Inventory (сколько и где) и Pick Tasks (кто и что должен взять и из какого места). Этой модели достаточно, чтобы генерировать списки подбора, подтверждения и фиксировать исключения без громоздкой системы.
Решайте для каждой строки заказа конкретную ячейку по простому правилу: берём из основной ячейки, если там достаточно; если нет — разделяем задачу между следующими по приоритету ячейками. Исключайте ячейки, которые не следует использовать: карантин, заблокированные, поврежденные и т.п.
Сортируйте так, как ходят люди: сначала зона, затем аллея, затем секция/стеллаж, затем уровень/ячейка. Если есть особенности (односторонние аллеи, мезонин, холодное хранение), добавьте простое правило-исключение для таких участков вместо сложного движка маршрутизации.
Покажите одно следующее действие: код ячейки крупным, затем количество, затем название SKU. Подтверждение должно быть быстрым (тап или скан), а кнопки для исключений — всегда на виду, чтобы сборщик не выходил из потока при проблеме.
Обращайтесь с исключениями как с данными: когда чего-то не нашли, сборщик фиксирует, что произошло, подтверждает то, что он взял, а система предлагает следующую ячейку или ставит сигнал на пополнение, чтобы проблема не повторилась в следующем прогоне.
Валидируйте ID мест до сохранения, блокируйте дубликаты и логируйте каждое перемещение ячейки/SKU с указанием пользователя и времени. Также ограничьте, кто может создавать и редактировать ячейки — пара несконсистентных прав быстрo подрывают доверие к списку подбора.
Пилотируйте одну зону или одно семейство товаров, измеряйте время подбора на строку, частоту коротких подборов и случаи возврата в уже пройденные аллеи. Если не хочется много кодить, можно смоделировать данные и рабочие процессы в AppMaster (appmaster.io), сгенерировать админку и мобильное приложение, а затем дорабатывать по мере использования.


