Исходная ситуация: несколько магазинов, расходящиеся данные
С 2021 года карточки товаров на маркетплейсах создавались вручную на каждой площадке отдельно. Со временем данные начали расходиться: на Ozon порядка 2 000 карточек, на Яндекс.Маркете 2 700, в WooCommerce 9 500 товаров из которых на маркетплейсах должны присутствовать 3 600. Актуальность цен и фотографий на разных площадках не совпадала.
Первым шагом стало определение WooCommerce как эталонного источника данных. Все сведения о товарах на маркетплейсах должны соответствовать тому что хранится в WordPress. Это дало точку отсчёта для систематизации.
Для технической реализации был разработан плагин-ядро для WordPress. Он регистрирует страницу настроек в административной панели, где хранятся API-ключи для каждого маркетплейса. Остальные плагины обращаются к нему через хуки и получают готовые авторизованные клиенты. Дублировать логику подключения в каждом модуле не требуется.
Поверх ядра были реализованы специализированные модули:
- Конвертация изображений под требования площадок: соотношение сторон 3 на 4, размеры, обрезка
- Синхронизация цен по каждой интеграции
- Обновление складских остатков
- Передача новых товаров на маркетплейсы
Эта архитектура работает и сейчас: сайт обслуживает три интеграции одного магазина. Однако при росте числа ИП и торговых аккаунтов такой подход не масштабируется. Потребовалась отдельная платформа с полноценным интерфейсом управления.
Готовые решения: результаты тестирования
Перед разработкой собственной системы были протестированы основные продукты на рынке.
SelSup. Перегруженный интерфейс без очевидной логики навигации. При попытке подключить интеграцию с Ozon система завершала работу с ошибкой без каких-либо пояснений. Диагностировать причину не представлялось возможным.
Точка Банк Маркетплейсы. Загрузка каталогов заняла почти сутки. После завершения обнаружилась принципиальная проблема: система работает с каждым маркетплейсом независимо. Вместо 3 500 уникальных товарных позиций предлагалось управлять 11 000 размещений по отдельности. Концепция единой карточки в архитектуре продукта отсутствует.
Т-Банк. Поддерживает только Ozon и Wildberries. Интеграция с Яндекс.Маркетом и WooCommerce не предусмотрена.
МойСклад. Система ориентирована на складской учёт: приёмки, перемещения, инвентаризации. Модули для маркетплейсов добавлены как надстройка и не имеют единой логики между собой. Инструмент решает другую задачу.
1С. Это бухгалтерия, а не управление маркетплейсами.
РешениеРезультат тестированияSelSupОшибка при подключении Ozon, причина не определенаТочка МаркетплейсыЗагрузка сутки, 11 000 позиций вместо 3 500Т-БанкТолько Ozon и WBМойСкладСкладской учёт, маркетплейсы не связаны1СНе для этой задачи
Ни один из продуктов не закрывал основную потребность: управление полным циклом продаж на маркетплейсах из единого кабинета. Каждый решал смежную задачу: складской учёт, банковские услуги, генерацию контента. Управление и контроль за процессом продажи оставались за рамками.
Разработка: стек и первые решения

Основой платформы стали Django и PostgreSQL. Выбор обусловлен требованиями к масштабируемости: поддержка нескольких пользователей, большие объёмы данных, сложные связи между сущностями.
Первым реализованным модулем стала авторизация. От связки логин плюс пароль отказались в пользу двух альтернативных способов входа.
Первый: одноразовый код на email. Пользователь вводит адрес почты, получает шестизначный код и входит в систему. Пароли и процедура восстановления доступа исключены полностью.
Второй: OAuth через Яндекс. При регистрации через Яндекс та же почта автоматически привязывается для входа по коду. Один аккаунт, два способа аутентификации.
Модуль интеграций

Платформа поддерживает неограниченное количество подключений. Несколько аккаунтов Ozon, Яндекс.Маркет, Wildberries и WooCommerce — все работают параллельно в едином кабинете.
Это закрывает несколько сценариев:
- Несколько ИП с магазинами на одних и тех же площадках
- Менеджер, управляющий магазинами клиентов
- Фулфилмент-оператор, работающий с продавцами по схеме FBS
Каждая интеграция подключается через API-ключи и существует независимо. Все интеграции участвуют в синхронизации на равных условиях.
Мастер-карточка товара

Центральный элемент системы: мастер-карточка. Она создаётся один раз и служит единым источником данных для всех площадок.
Если товар уже размещён на маркетплейсах, карточка находит его по артикулу во всех подключённых интеграциях и подтягивает актуальные данные. Каждая вкладка показывает информацию именно с той площадки: текущие цены, остатки, статус модерации, фотографии и описание в том виде, в котором они хранятся на маркетплейсе.
Если товара ещё нет, его можно создать на всех нужных площадках одновременно непосредственно из мастер-карточки.
Два способа наполнения каталога
Ручное создание: все поля заполняются вручную с указанием нужных параметров.

Импорт из интеграций: товары скачиваются со всех подключённых платформ и объединяются по артикулу продавца. Из 20 000-30 000 товаров, поступающих с маркетплейсов, система формирует около 4 000 уникальных карточек. Они попадают в отдельный каталог импорта, откуда их можно добавлять в систему по одной, выборочно или все сразу.

При массовом импорте выбирается маркетплейс-эталон, данные с которого будут использованы как основные. При единичном добавлении параметры можно скорректировать в момент создания: например изменить цену с 3 000 рублей на 1 700 до сохранения карточки.
Инлайн редактирование

Каждое поле мастер-карточки редактируется непосредственно на странице без перехода в отдельный режим. Артикул, название, цена, остатки, индивидуальные характеристики каждого маркетплейса: клик на поле, изменение, сохранение.
Управление продажами и остатками

Для каждой интеграции реализован полный цикл обработки заказа с сокращённым количеством шагов по сравнению с кабинетами маркетплейсов.
Механизм работы с остатками:
Поступил заказ: товар находится по артикулу и резервируется. При наличии 5 единиц резервируется 1, в продаже остаётся 4. Обновлённый остаток немедленно передаётся на все маркетплейсы где числится этот товар.
Товар отгружен и выкуплен: резерв снимается, финальный остаток передаётся на все площадки.
Заказ отменён: резерв возвращается в доступный остаток и синхронизируется со всеми интеграциями.
Это устраняет ситуацию когда товар приобретён на одной площадке, а на остальных он продолжает отображаться как доступный. Каждая такая ситуация потенциально оборачивается штрафом до 5 000 рублей за отмену по вине продавца. Обновление остатков происходит автоматически в момент резервирования.
Каталог: массовые операции и Excel

Страница каталога позволяет редактировать товары без открытия карточки: изменения вносятся прямо в списке. Для групповых операций доступны два способа: через интерфейс платформы или через Excel. Файл позволяет загрузить остатки, обновить цены или создать карточки по всему каталогу одновременно.
Ценообразование

У каждого маркетплейса собственная структура комиссий в зависимости от категории товара. Единая цена на всех площадках приводит к расхождению в марже. Для управления этим реализованы три модели ценообразования.
Цена без изменений. Значение из мастер-карточки передаётся на все маркетплейсы как есть.
Наценка процентом. Задаётся базовая цена и процент наценки для каждой интеграции отдельно. При цене 1 000 рублей и наценке 78% на площадку уйдёт 1 780 рублей.
Расчёт от желаемой выплаты. Указывается целевая сумма к получению. Задаются параметры площадки: комиссия, доставка, эквайринг. Система рассчитывает цену для витрины, при которой после всех удержаний останется указанная сумма.
Аналитика
Дашборд показывает только те данные которые нужны для ежедневного контроля продаж.

Общая вкладка: суммарная выручка по всем магазинам, количество заказов, разбивка по каждому каналу. Сводный график по месяцам с отображением каждого магазина отдельным цветом позволяет отслеживать динамику и сезонность. Период переключается мгновенно.
Вкладки по магазинам: детализация по конкретному каналу. При выборе месяца график строится по дням, при выборе года по месяцам. Таблица топ-товаров содержит количество продаж, выручку и сумму к фактической выплате после удержаний маркетплейса.
Данные кешируются. Переключение между периодами и магазинами происходит без задержек.
Итог
Платформа обеспечивает управление полным циклом продаж: создание и редактирование карточек, контроль ценообразования, обработка заказов, учёт остатков. Десятки магазинов и тысячи товаров управляются из единого кабинета через единую карточку товара.
Большинство продавцов ограничиваются одним магазином не из-за отсутствия возможностей, а из-за сложности контроля над несколькими каналами одновременно. Каждая новая площадка означает отдельный кабинет, отдельные карточки, отдельное управление ценами и остатками. При ручном подходе это быстро становится неуправляемым.
Централизованная система управления снимает это ограничение: количество подключённых магазинов растёт, объём операционной работы остаётся прежним.
Это и есть OneFill.ru.
Войти через Яндекс