🎯 Цель проекта
Создать полностью автоматическую систему, которая:
автоматически получает и обрабатывает остатки со складов (файлы Excel/CSV, приходящие на Gmail),
сохраняет их на Google Диск в структуре по датам,
объединяет данные с основной товарной выгрузкой (по коду товара),
формирует итоговую таблицу с количеством по каждому складу и общим остатком,
работает в автономном режиме с регулярной проверкой почты.
📦 Исходные данные и логика работы
Список складов:
Фабрика Новоград-Волынск
Киев — ⚠️ передаёт два отчёта:
Остатки Фабрики
Остатки Киевского склада
Днепр
Тернополь
Файлы могут приходить:
в разное время суток (не одновременно);
в разных форматах (.xls, .xlsx, .csv);
в отдельных письмах, одним или несколькими вложениями;
с разной структурой колонок (но везде есть: код товара, название, количество).
⚙️ Требования к автоматизации
1. Проверка почты
Склады могут отправлять файлы в любое удобное время,
когда у них есть доступ, интернет или время — система должна их обработать автоматически,
независимо от времени суток.
2. Отправка запросов
Скрипт (или бот) каждое утро в 07:00 отправляет письма-запросы на почты всех складов.
Для Киева — два отдельных письма: одно на “Фабрику”, одно на “Киевский склад”.
В теме письма должны быть маркеры для распознавания:
[STOCK][NOVOGRAD]
[STOCK][KYIV][FABRIKA]
[STOCK][KYIV][SKLAD]
[STOCK][DNIPRO]
[STOCK][TERNOPIL]
При получении ответных писем система должна по этим маркерам понимать, куда сохранять файл и в какую колонку свода его заносить.
3. Структура хранения на Google Диске
Каждый день создаётся новая папка с датой:
/Остатки/2025-10-21/
Внутри — подпапки по складам:
/Остатки/2025-10-21/Фабрика Новоград-Волынск/
/Остатки/2025-10-21/Киев/Фабрика/
/Остатки/2025-10-21/Киев/Киевский склад/
/Остатки/2025-10-21/Днепр/
/Остатки/2025-10-21/Тернополь/
Если приходит несколько файлов — сохраняются все с уникальным именем (дата + оригинальное название).
Хранить папки только за последние 5 дней, всё старше автоматически удалять.
4. Обработка и объединение данных
После сохранения файла система:
Считывает таблицу, находит колонки код, название, количество (по ключевым словам).
Формирует внутреннюю базу остатков по складам.
Сверяет коды товаров с основной выгрузкой (файл, который предоставит заказчик).
5. Формирование сводной таблицы
Результат объединения данных должен быть таблицей следующего формата:
| Код товара | Наименование | Новоград-Волынск | Киев (Фабрика) | Киев (Склад) | Днепр | Тернополь | Итого |
|---|
| 10125 | Шкаф-купе Бланко | 5 | 12 | 3 | 4 | 2 | 26 |
| 10488 | Комод Рондо | 0 | 3 | 0 | 2 | 1 | 6 |
Если какой-то товар отсутствует в отчёте склада — значение по нему = 0.
Если код найден в нескольких файлах одного склада — значения суммируются.
Колонка Итого = сумма всех складов.
Строки должны формироваться по выгрузке заказчика — то есть товары, которых нет ни в одном отчёте, всё равно присутствуют, но с нулевыми остатками.
6. Интеграция с выгрузкой заказчика
Заказчик предоставляет отдельный файл с товарами (например, catalog.xlsx),
в котором есть коды, наименования, категории и т.д.
Скрипт должен брать коды из этого файла как основу, а в колонки складов подставлять соответствующие количества.
Если в файлах складов есть коды, которых нет в выгрузке — можно:
либо добавлять их в конец списка,
либо игнорировать (на усмотрение заказчика, сделать опцию).
7. Итоговый файл (результат)
Сводная таблица сохраняется ежедневно в папке текущей даты:
/Остатки/2025-10-21/Остатки_2025-10-21.xlsx
Формируется также Google Sheet для просмотра онлайн.
В дальнейшем можно будет подключить Google Data Studio или Looker для визуализации.
8. Очистка архива
🧠 Дополнительные требования
Всё работает полностью автоматически.
Проверка новых писем каждые 20 минут.
Возможность ручного запуска при необходимости.
Возможность легко изменить:
Логирование всех действий (в Google Sheet или текстовый лог).
💻 Предпочтительная реализация
Google Apps Script — предпочтительный вариант (всё работает внутри Gmail/Drive/Sheets, без сервера).
Альтернатива: Python с Gmail API + Google Drive API + Google Sheets API (если требуется хостинг).
📋 Что должен передать исполнитель
Полностью рабочее решение (скрипт, триггеры, инструкции).
Инструкция:
Тестирование с реальными письмами (1–2 дня).
Гарантия корректной работы в течение 7 дней после запуска.
https://drive.google.com/drive/u/2/folders/11PcIgGkjVI7tnKD5N4vKfg7DZ