Загрузчик фото с Яндекс.Диска для bungly.ru
Веб-приложение для массовой загрузки фотографий товаров из Яндекс.Диска в карточки InSales. Автоматическое сопоставление по артикулу и сжатие изображений.
Проблема
Магазин хранит фотографии товаров на Яндекс.Диске. Структура выстроена: каждый товар в своей папке, название папки — артикул товара.
Редакторам нужно регулярно загружать эти фото в карточки товаров на InSales. Но штатными средствами платформы нельзя подключиться к Яндекс.Диску и загрузить фото партиями.
Приходилось вручную: скачивать фото с Диска, заходить в админку InSales, открывать карточку товара, загружать файлы. На сотни товаров это занимает часы.
Структура хранилища
Фото организованы на Яндекс.Диске так:
/photos/
├── 12345/
│ ├── 11.jpg
│ ├── 12.jpg
│ └── 13.jpg
├── 67890/
│ ├── 11.jpg
│ ├── 21.jpg
│ └── 22.jpg
└── ...
Название папки = артикул товара в InSales. Внутри папки — все фото этого товара.
Решение
Сделали внешнее веб-приложение. Оно подключается к Яндекс.Диску, показывает структуру папок и загружает выбранные фото в InSales через API.
Как это работает
- Редактор открывает веб-приложение
- Авторизуется через Яндекс (OAuth)
- Видит структуру папок с Диска
- Выбирает одну или несколько папок
- Нажимает "Загрузить"
- Приложение находит товары в InSales по артикулу
- Загружает фото в карточки товаров
Функционал
Что можно делать:
- Просматривать папки и файлы на Яндекс.Диске
- Выбирать отдельные файлы
- Выбирать целую папку
- Выбирать несколько папок сразу
- Загружать выбранное в InSales
- Автоматически сжимать изображения (через InSales)
Особенности работы
Сопоставление по артикулу
Приложение берет название папки (например, "12345"), ищет товар с таким артикулом в InSales и загружает фото в его карточку.
Добавление, не замена
Фото добавляются в конец галереи товара. Текущие фото не удаляются и не заменяются.
Сжатие изображений
InSales автоматически сжимает загруженные фото. Исходные файлы могут быть большими, но в карточках они оптимизируются для веба.
Простой интерфейс
Интерфейс минималистичный. Нет логирования, нет добавления описаний к фото, нет меток. Только выбор папок и кнопка загрузки.
Ограничения
- Нельзя удалить текущие фото товара
- Нельзя изменить порядок фото
- Нельзя добавить описания к фото
- Только добавочная загрузка в конец галереи
Технический стек
Приложение построено на:
- Node.js + Express — backend-сервис
- OAuth Яндекс — авторизация пользователя
- Яндекс.Диск API — работа с файлами
- InSales API — загрузка изображений в карточки
- Vue.js — интерфейс (Single Page Application)
- Облачный хостинг — с защищенным доступом
Результат
Редакторы экономят часы работы. Вместо ручной загрузки сотен фото они выбирают папки и загружают всё одним кликом.
Не нужно скачивать фото с Диска на компьютер. Приложение работает напрямую между Яндекс.Диском и InSales.
Ошибки сопоставления исключены. Если артикул в названии папки совпадает с артикулом товара — фото загрузятся в правильную карточку.
Расширили возможности InSales без изменения самой платформы. Внешнее приложение интегрируется через API и не требует доработок темы.