синхронно с Telegram · старше 3 дней уходят в архив автоматически (06:00 МСК)
Загружаю…
Акция — временная ручная цена. На её срок позиция уходит из-под компенсатора соинвеста и из кандидатов ценовых экспериментов, скидка, наценка эксперимента и корректировка соинвеста держатся строго на нуле, а витрина равна цене до скидки. Любая попытка записать цену этой площадки мимо акции отклоняется — включая раздел «Цены» и бота. Дата начала и дата окончания включительно: акция «до 25-го» 25-го ещё идёт. По окончании возвращается снимок, снятый на старте: база, скидка, корректировка и наценка целиком, а не пересчёт заново. Акция включается в 00:01 дня старта и заканчивается в 23:59 последнего включённого дня — этим занимается свой минутный таймер мозга. Если в эту минуту сервис лежал, просроченные старты и окончания доводит утренняя задача в 00:05 МСК; сроки прогоняются и при каждом открытии этого раздела.
Ежедневно 09:00 МСК. Применяются только отмеченные категории:
«Дорого, ставка на минимуме» автоматически не применяется никогда: менять там нечего —
ставка уже минимальная, это сигнал подумать о паузе кампании.
Пороги и шаги — Полки, CPC
%
%
%
%
дн.
дн.
₽
дн.
Цель — доля стоимости корзины от цены товара. Выше цели ставка снижается ПРОПОРЦИОНАЛЬНО
(×цель/доля), а не шагом: цена товара фиксирована, и доля возвращается к цели одним движением.
Шаг работает только на повышение. Выше порога «дорого» кампания с минимальной ставкой уходит
в ручное решение. Порог риска Полок — ставка за 1000 показов, выше которой товар рискует
попасть в показы на главной; к CPC не применяется.
Журнал применений
загружаю…
скрыто — нажмите, чтобы раскрыть
Автоприменение по категориям
Категории, которые биддер вправе применять сам:
«Активировать фразу» и «Первая ставка» автомату недоступны: они заводят расход
на фразе, которая до сих пор не крутилась. Такие строки применяются вручную.
Настройки поискового биддера
%
%
₽
мин
дн.
ч
У каждой пары «товар × фраза» есть коридор позиций и своя вилка ставки. Хуже
коридора — ставка растёт на шаг, лучше коридора — падает на шаг. Цель «1-е
место» — особый случай: держать нечего, поэтому ставка непрерывно щупает
минимум, который это место удерживает; щуп 0 означает половину шага.
Округление до …5 нужно, чтобы в сторонних сервисах было видно: ставку вёл
робот. Позицию старше указанной годности не считаем за правду.
Журнал ставок (в холостом режиме — статус «тень»)
загружаю…
Пары, цели и вилки живут в базе мозга и правятся прямо в таблице; позиции — живой
кэш поллера, ставки и статистика — advert-api напрямую. «Подтянуть данные» ходит
в сеть, «Прогнать ставки» — только считает по последнему снимку.
скрыто — нажмите, чтобы раскрыть
Пороги поискового контура
ⓘ наведите на подпись
Шкала доли корзины
—
%
%
п.п.
%
%
%
%
Диапазоны — окно позиций и вилка ставки
₽
₽
поз.
поз.
дн.
дн.
дн.
%
поз.
Экономический потолок
0/1
шт
шт
Состав фраз
₽
шт
дн
₽
% мин.
тов.
Диапазоны — применяются автоматически:
Фразы — применяются автоматически:
Журнал применённых диапазонов
загружаю…
Прогон в 07:45 МСК, применение — в 08:10 и только по включённым категориям.
Применение меняет коридор и вилку в рабочей таблице; ставку внутри новой вилки
подтянет получасовой цикл сам. Свой кулдаун — пара не трогается, пока
28-дневная метрика не успела отразить прошлое изменение.
Журнал по фразам
загружаю…
«Исключить» в WB технически означает «внести фразу в минус-лист кампании» —
отдельной ручки удаления ключа не существует, а восстановление это та же
операция с обратным содержимым списка. Исключение необратимо в пределах суток,
поэтому «Применить всё» здесь работает только по категориям с включённым
тумблером — заведению и активации. Пока рубильник записи закрыт, «Применить»
пишет только в журнал.
скрыто — нажмите, чтобы раскрыть
Автоприменение
Ежедневно 09:00 МСК. Применяются только отмеченные категории:
«Деактивировать» останавливает рекламу товара целиком, поэтому по умолчанию выключено
и включается отдельно. Действие обратимо — кампанию можно запустить снова в кабинете Ozon.
Пороги стоимости корзины и шаги
%
%
%
%
%
%
дн.
дн.
Цель — доля стоимости корзины от цены товара: выше неё корзина дорогая и биддер снижает ставку.
Порог исключения — выше него корзина критическая: если ставка уже на минимуме Ozon и бюджет
минимальный, кампания уходит в «Деактивировать».
Шаги вниз и вверх разные намеренно: расходы режем активно, поднимаем постепенно.
Период анализа — окно, за которое считаются расход и корзины; его же запрашивает
сборщик кампаний, поэтому смена периода пересобирает снимок и может занять минуту.
Загружаю…
Журнал применений — последние 60
Ставки расчёта прибыли
Как считается прибыль и рентабельность
Остатки FBS — отправка на свой склад по кабинетам
Загружаю…
Склады в остатках
Загружаю…
Честный знак — организации и контрагенты поставок
Загружаю…
Кабинеты для заказов сервиса сборки
Загружаю…
История правок
Здесь руками задаётся то, чего площадки не отдают: ваши ставки логистики (первый и дополнительный литр отдельно для FBW и FBS), ФОТ и упаковка на литр, эквайринг обеих площадок, НДС, коэффициент логистики, дни запаса и минимальный остаток. Пустая ставка логистики означает «берём тариф склада из своего сбора по API» — в разделе «Цены» он показан отдельной колонкой для сравнения. Раздел «Цены» пересчитывается сразу после сохранения.
Загружаю…
Раздел собирает всю автоматику мозга в одном месте: задачи планировщика (дневные, по часу МСК) и собственные таймеры доменов (всё, что чаще часа). Красным помечено то, что включено, но давно не отрабатывало: «отстал» — не было прогона за два своих периода, «нет отметки» — прогонов не было вовсе. Именно так 04.08 и 05.08 нашлись два молча не запущенных сбора: модуль есть, а таймер не поднят. Раздел только показывает — включать и выключать автоматику надо там, где она живёт.
реализовано с
Склады WB, учитываемые в остатках
Выберите площадку и нажмите «Сформировать лист».
Журнал прогонов
Лист инвентаризации отвечает на один вопрос: сколько товара числится за маркетплейсом по ЕГО собственным данным. Итог по товару = реализовано с 1 числа текущего месяца + едет к покупателям + лежит на складе площадки. Именно эти три величины ещё не списаны с виртуального склада МойСклада: финансовый отчёт закрывает только прошлый месяц. Возвраты покупателей считаем утерянным товаром — из реализации не вычитаем и возвращающееся к остатку не прибавляем. Остатки своего склада (FBS) в лист не входят: это не склад маркетплейса. Собранный, но не отгруженный заказ тоже не входит — он физически у нас. Файлов два на площадку, общий и микроцемент, в формате импорта МойСклада: штрихкод, количество, цена 1. В файл попадают ВСЕ товары каталога, включая нулевые, — иначе МойСклад не обнулит остаток товара, который площадка потеряла. Отсечка «реализовано с» у площадок разная и подставляется сама. У Озона и Яндекса отчёт календарный, месяц закрывается целиком — отсечка 1 число. У WB отчёты недельные (Пн–Вс) и границу месяца не соблюдают, а месяц сводится по последнему закрытому отчёту ВНУТРИ месяца — то есть по неделе, кончающейся последним воскресеньем. Поэтому отсечка WB это понедельник после него: для августа 2026 — 27 июля, потому что неделя 27.07–02.08 в июльский свод не вошла и продажи 27–31 июля ещё висят на виртуальном складе. Поле можно поправить руками, если конкретный свод сделан иначе. Галки «склады WB вне учёта» нужны для складов, где отчёт WB показывает остаток, которого фактически уже нет. Пока не выключен ни один склад, остаток берётся ИТОГОМ самой площадки — той же величиной, что в разделе «Цены» и в колонке MAIN. Как только склад выключен, остаток считается суммой оставшихся складов; если сумма складов и итог площадки разойдутся, это будет написано в примечаниях к прогону, а не пропадёт молча. Строка «не опознано» — то, что маркетплейс отдал под неизвестным ключом: эти штуки в файл не попали, их надо разобрать руками.
Загружаю…
Загружаю…
Загружаю…
Ключи и корзины — из семядра биддера (обновляется ночью), позиции — ср. за период. Данные кэшируются на час. Клик по товару — топ-ключи; 📈 у ключа — история позиций из БД биддера (срез каждые 6 часов) с популярностью запроса.
Загружаю…
Фразы кампаний OZON (показы/клики/CTR) из данных биддера. Данные кэшируются на час. История позиций для OZON пока не собирается.
Загружаю…
Источник — то, чьим товаром является позиция (ДЕССА, ПРОНТО и далее). До 11.08.2026 то же деление было зашито в код тремя разными правилами: себестоимость выбирала кабинет МойСклада по слову «микроцемент» в НАЗВАНИИ товара, а отчёты и инвентаризация — по точному значению «Наша категория». Сегодня правила совпадают, но совпадают случайно: достаточно назвать товар иначе, и себестоимость поедет из чужого кабинета, а отчёт останется прежним — цифры станут неверными молча. Теперь источник это свойство товара (колонка «Источник» в разделе «Товары»), а справочник держит то, что от источника зависит: имя переменной окружения с токеном кабинета МойСклада, понижающий коэффициент цены для финотчётов и признак основного источника. Сам токен в справочнике не хранится — он остаётся в .env и правится в разделе «API-ключи»: секретам не место в базе, откуда они уедут в бэкап и в выгрузку. Основной источник один: им считается товар, у которого колонка «Источник» пуста, и удалить его нельзя. Источник, за которым числятся товары, тоже не удаляется — иначе они разом станут ничьими. Имя переменной новому источнику подставляется само по названию (ПРОНТО → MS_TOKEN_PRONTO), а поле для самого токена появляется в разделе «API-ключи» сразу после сохранения справочника — вписывать переменную руками не нужно.
Загружаю…
Компенсатор скачков соинвеста OZON: сравнивает текущий соинвест с эталоном (соинвест товара в окно пиковых продаж OZON) и мягко правит столбец «Корректировка соинвеста OZON» — от 1 пп, кап ±25 пп, не быстрее 10 пп в день, мёртвая зона 2 пп. План делится на два пакета — «без правки базы» и «с правкой базы» (по суточному снимку базовой цены в 23:10 МСК); у каждого свой режим. Режим «карточки» присылает цифры в Telegram, а применяются они здесь: подтверждать деньги в двух местах сразу опаснее, чем в одном. Пола цены нет — у OZON нет сетки «сотня+1», по которой он нужен на WB. Соинвест 95 % и выше в расчёт не берётся: это не скидка, а неполученная цена витрины. По умолчанию компенсатор выключен.
Загружаю…
Компенсатор скачков соинвеста WB: сравнивает текущий соинвест с эталоном (пиковые продажи) и мягко правит столбец «Корректировка соинвеста» в MAIN (от 1 пп, кап ±10 пп, не быстрее 5 пп/день; товар не трогаем, если «Цена до скидки WB» уйдёт ниже пола). Автопрогон 07:00 МСК берёт срез 18:00; «Запросить план» здесь считает по живому соинвесту из MAIN. Только WB, OZON не трогаем.
Загружаю…
Раз в 6 часов сервер мозга берёт цену витрины выбранной площадки из единого каталога товаров (поля mpPrice — WB собирает сам каждые 15 минут, OZON приносит скилл), применяет наценку или скидку и переносит её в цену BASE на сайте dessa-decor.ru — в сам товар и во все его торговые предложения. Сопоставление по штрих-коду. Цена ≤ 0 и расхождение с текущей ценой больше чем в 5 раз отклоняются как вероятная опечатка в таблице; разница меньше 50 копеек изменением не считается. Пока переключатель выключен, таймер отрабатывает вхолостую и ничего не меняет.
Загружаю…
Значения хранятся в .env сервиса на сервере и показаны маской: чтобы увидеть ключ целиком, нажмите глаз у строки. Пустое поле означает «не менять» — стереть ключ случайной очисткой формы нельзя. Сохранённое значение применяется к работающему сервису сразу; модули, читающие переменную один раз при старте, подхватят её после ближайшего перезапуска.
Загружаю…
Управление доступно только администратору. Вход выполняется по логину и паролю (минимум 8 символов); на указанную почту приходит код подтверждения при каждом входе.
Код одноразовый. Выданный Data Matrix навсегда закреплён за отправлением:
повторная печать стикера отдаёт тот же код, а не берёт новый из пула. Освободить код
обратно нельзя — физически он мог быть уже наклеен, и мы этого не знаем.
Пул принадлежит ЮРЛИЦУ, а не паре юрлицо-площадка: коды заказывает организация,
а по каким площадкам их разложить — решаем мы. Кабинеты одного юрлица берут из одной
пачки, чужому юрлицу она не достаётся. Разбивка по FBS / FBW / FBO показывает
потребность, а не отдельные склады кодов.
Повторная загрузка того же файла отклоняется целиком — иначе две единицы товара
уехали бы с одинаковой маркой. Не хватает кодов — сервис склада не даст напечатать
стикер такого товара.
Периодов
Загружаю…
Что уехало на склады маркетплейсов — по дням и по неделям (Пн–Вс), в штуках и килограммах.
Числа считает наш сервис сборки FBS — раздел склада dessa-ai.ru/wh (вкладка «Перемещения»): OZON — по дате сборки из журнала сервиса, WB — по заданиям поставок, закрытым в этот день, Яндекс — по дате сборки заказа. Сутки самарские (UTC+4).
Мозг забирает окно раз в час и копит архив: у источника всего 14 дней, а недели нужны глубже — поэтому история накапливается с первого обмена, задним числом её не появится.
Килограммы считаются здесь: штуки × «Масса» из каталога товаров. В ячейке периода сверху штуки, снизу серым килограммы.
Штрихкод, которого нет в каталоге, не пропадает — он показывается отдельной строкой с пометкой.
План поставок FBW, FBO
Загружаю…
Поставка живёт в мозге: создали, поправили состав, отправили. По кнопке
«Создать перемещение» в МойСкладе появляется документ со своего склада на
склад площадки — тот же, что раньше делали руками после импорта файла.
После перемещения состав закрывается на замок: товар уже списан со склада,
и правка задним числом разошлась бы с тем, что физически уехало. Повторное нажатие
не создаёт второй документ, а показывает уже созданный.
Черновики видны в Платформе сборки рядом с заказами МойСклада — с пометкой,
откуда поставка.
Состав можно перенести из колонки «Кол-во» раздела «Поставки» — она
сохраняется в браузере, и кнопка переноса берёт её оттуда.
Окно ВБ, дн
Загружаю…
Раздел считает мозг сам, из API площадок — листы таблицы и расчёт GAS здесь больше не участвуют.
В листе только товары с галкой FBW (ВБ) или FBO (Озон) на листе «Цены»: поставка идёт на склад площадки, и товар, который возят только своим складом (FBS), сюда не попадает.
Спрос — заказы за окно (обе модели продаж, кабинет ИП, отменённые не в счёт); окно оно же горизонт: сколько продаётся за эти дни, столько и везём.
Остатки — свой сбор каждые 15 минут: FBW по складам, FBO по кластерам.
Потребность = спрос − остаток, считается ПО КАЖДОМУ округу (ВБ) или кластеру (OZON) и суммируется только положительными: излишек в Москве не закрывает дефицит во Владивостоке.
В ячейке региона три числа: остаток / спрос / потребность. Клик по названию — остатки по складам.
Кнопка «Склады» убирает склад и из вывода, и из расчёта. Колонка «Кол-во» — план поставки: она сохраняется в браузере и уходит в файл для импорта в МойСклад.
Подсветка красит строку по покрытию (остаток ÷ спрос за окно): ниже нижнего порога — «дефицит», выше — «внимание»; «норма» бывает только у товара без потребности с покрытием от верхнего порога. Пороги, цвета и фильтр по статусам — в кнопке «Подсветка», у каждого свои.
Приёмка временно скрыта: 15.08.2026 WB убрал из мастера поставки шаг «Рекомендации WB», и списка складов, готовых принять баркод, у продавца больше нет. Показывать старый снимок нельзя — он устаревает. Вернём, как только появится источник.
Окно наблюдения, дн
Срок до полки, дн
Загружаю…
Раздел отвечает на вопрос сколько и в каком порядке выпускать. Мощности, размер замесы и очерёдность внутри смены появятся здесь вместе с производственной базой.
Спрос — заказы по ВСЕМ кабинетам (WB ИП, ООО, ТОО · OZON ИП, ООО · Яндекс FBS), обе модели продаж, отменённые не в счёт. Цех один на все юрлица, поэтому спрос суммируется, а не берётся по одному кабинету, как в «Поставках».
Три приоритета плана.П1 · FBS — свой склад: берётся БОЛЬШЕЕ из двух чисел — долг (несобранные сборочные задания прямо сейчас) и прогноз FBS на горизонт. Не сумма: завтра сегодняшний долг станет частью этого же прогноза.
П2 · поставки — заказы покупателя в МойСкладе на выбранных контрагентов в выбранных статусах: это уже принятое решение отгрузить, а не прогноз. Контрагенты выбираются кнопкой «Плановые поставки»; склейка с каталогом идёт по штрихкоду, потому что имена в МойСкладе свои.
П3 · рынок сверх — рыночная потребность за вычетом первых двух: max(0, рынок − П1 − П2). Месяц поглощает первые два слоя, чтобы заказ, уже закрытый плановой поставкой, не посчитался дважды.
Рынок = среднедневной спрос × горизонт − остаток на складах маркетплейсов. Прогноз округляется вверх: недолитая банка — это невыполненный заказ. Остатки FBW и FBO выключаются тумблерами по отдельности; остаток FBS не вычитается никогда — на витрину своего склада уходит назначенное число, а не факт.
Строка — базовый продукт: «Краска матовая Белая» изготавливается один раз, а разливается в 2,5 / 5 / 10 кг. Цвет в базу не схлопывается — колеруют в бак, а не в банку. Килограммы считаются по фасовкам; позиция без фасовки планируется штуками.
Клик по названию — фасовки со своими числами, там же ✎ правит разбор «база + фасовка».
Остаток FBW собирается по кабинету ИП, FBO — по ИП и ООО, а спрос шире: на эту долю рыночная потребность завышена.
Диссольверы
Низкой вязкости
Смесители
Сухие смеси
Колеровка
Замес, ч
Смена, ч
Смен
Перерасход, %
Рабочие дни
Загружаю…
Справочник замесов и мощность цеха. Строка — базовый материал, тот же, что в «Плане производства»: изготавливают один раз, разливают по фасовкам.
Выход — сколько килограммов даёт один замес; время — сколько он занимает (по умолчанию 1,5 ч, у материала переопределяется). Оба значения правятся прямо в таблице и помечаются как ручные — переимпорт файла их не затирает.
Пост: смеситель по правилу берёт лаки в фасовке до 1 кг и грунтовки глубокого проникновения, всё остальное идёт на диссольверы; в строке тип поста меняется вручную.
Загрузка = сколько часов нужно под текущий план против того, сколько их есть: постов × часов в смене × смен × рабочих дней на горизонте. Рабочие дни считаются по графику недели и ПО КАЛЕНДАРЮ окна: в одном месяце их 20, в другом 22. Тот же график пропускает выходные в сменном задании — иначе два раздела расходились бы на треть плана.
Замесов = ⌈нужно кг ÷ выход⌉, округление поштучно: половину дежи не изготавливают.
Если в исходной таблице у фасовок одного материала выход записан по-разному, взят максимум: изготавливаем полную дежу, а разливаем как надо. Числа в этом справочнике проверяет и проставляет оператор, поэтому такие строки ничем не помечены.
Ограничения постов — какие категории товаров пост не может производить (владелец 14.08.2026). «Диссольвер низкой вязкости» делает ту же работу, что обычный, но не берёт исключённые категории: замес на него не встанет, а в сменном задании пост подписан «не делает N кат.». Ограничение живёт у ПОСТА, а не признаком у товара: причина в оборудовании, а категория приезжает из каталога сама.
Мин. партия, кг — порог маршрута у колеруемого материала (владелец 13.08.2026): партия меньше него пост базы не занимает и уходит колеровкой из готовой базы, а полные дежи изготавливают замесом сразу в цвете — база на них не расходуется. Порог у каждого материала свой: 45 кг фасадной — это три ведра, а 45 кг меловой — почти сто банок. Пусто — порога нет, маршрут прежний: весь объём на колеровку.
Материал без выхода в загрузку не идёт вовсе и считается отдельной строкой: молча пропустить его нельзя — цех выглядел бы свободнее, чем он есть.
Дней
Загружаю…
Задание цеху на ближайшие смены. Строится из «Плана производства» и справочника «Замесы и мощности» — своих чисел здесь нет.
Очередь — по приоритетам плана: сначала закрывается весь П1 (свой склад FBS), потом П2 (плановые поставки в МойСкладе), потом П3 (рынок). Внутри приоритета крупное идёт раньше: мелкое доберут остатками смены.
Выход — потолок, а не норма. Больше максимального замеса цех не сделает, а меньше может: последний замес режется по остатку потребности, и лишнего не изготавливается. Часы при этом не уменьшаются — неполная дежа занимает пост столько же, время держит перемешивание, а не объём.
Расфасовка считается по незакрытой потребности фасовок: килограммы замеса делятся пропорционально ей и переводятся в целые банки. Что не влезло в целую банку — «остаток», его видно.
Пост выбирается по типу материала (диссольвер или смеситель) и наименьшей занятости; день заполняется до «часов в смене × смен».
Что не влезло за показанные дни — в списке внизу: это не ошибка, план собран на месяц. Материалы без выхода замеса в задание не попадают вовсе и вынесены отдельно — их надо заполнить в «Замесах и мощностях».
Загружаю…
Настройки раздела
Журнал действий
Претензии покупателей к самому материалу — то, что важно лаборатории и цеху.
Отзыв 1-3 звезды — ещё не претензия к качеству: половина низких оценок про доставку, ПВЗ, баллы и пересорт. Разделяет их нейросеть, по одному разу на отзыв; результат хранится и второй раз не оплачивается.
Считаем долю, а не число. У товара с шестью сотнями отзывов пятьдесят жалоб — это 9%, а у товара с полусотней отзывов одиннадцать жалоб — 20%: по голому числу первый выглядит вчетверо хуже, по доле — вдвое лучше. Поэтому в порог входит и минимум жалоб, и минимум доли.
Свежесть важнее давности: вес жалобы падает вдвое за период полураспада, и перебранная месяц назад партия не держит товар в красной зоне вечно.
Работа идёт по товару, а не по отзыву: претензия к материалу повторяется отзыв за отзывом, а задача у неё одна. Закрытая задача всплывает снова, если после закрытия набегает новая порция жалоб — это «обострение».
Источник — своя таблица отзывов по всем трём кабинетам (ИП, ООО, ТОО); отзывы OZON появятся, когда откроется доступ к их API.
Загружаю…
Тестовый вид: раздел показывает, как лягут задания, но никому их не выдаёт и ничего не отмечает.
Строка — товар одного отправления. Волна 1 — то, что закрывается остатком склада отгрузки прямо сейчас; волна 2 ждёт розлива.
Кому считается по трём правилам подряд: площадка отгрузки товара (кладовщики за ней закреплены, чужую не обойти), затем фильтр фасовок сборщика, затем наименее загруженный ПО ВЕСУ — двадцать банок 0,25 кг и двадцать вёдер 15 кг это разная работа.
Отправление, части которого лежат на разных площадках, помечено «две площадки»: его собирают в два приёма, и это должно быть видно заранее, а не всплывать на упаковке.
Остаток резервируется по ходу разбора — две строки одного товара не могут обе считаться закрытыми одним ведром.
Склад отгрузки — свойство товара, а не материала: у одной базы фасовки разъезжаются по разным площадкам (Унилак 1 — Коммунальная, 2,5 — Основной).
Перемещение из цеха на склад отгрузки в расчёт не входит: позиция считается доступной по остатку склада отгрузки, а не по факту доезда.
Загружаю каталог…
Показаны все колонки каталога. Заголовок можно перетащить — порядок колонок сохраняется за вами и переживает перезагрузку и смену устройства; «Порядок колонок» возвращает исходный. Колонка «Себестоимость, ₽» приходит не из листа, а из каталога (её каждое утро приносит МойСклад), поэтому она только для чтения.
Загружаю…
Рабочая таблица биддера поиска WB: строка — пара «товар × ключ». Колонки «Позиция» и «Δ за период» считаются по истории срезов (поллер, ~4 раза в сутки), остальное — из последнего снимка получасового цикла. Лист AB_WB источником быть перестал 07.08.2026 вместе с переездом контура в мозг. Период сверху меняет окно истории. Клик по ключу — график позиции и ставки по дням плюс вся выдача по этому запросу. Порядок: категория → товар → ключи по убыванию корзин, то есть у каждого товара первым идёт самый конверсионный запрос.
Загружаю…
Все заказы WB за период (без текущего дня) из метода WB «Лента заказов»: данные в реальном времени, сбор догоняет ленту каждые 20 минут. Выкуп = (выкуплено + в пути) / заказано. Причины отмен приходят по ВСЕМ заказам — и со склада WB (FBW), и со своего (FBS): отказ при получении, отказ до получения, истёк срок получения. Возвраты делятся на брак и не-брак отдельными статусами. «В пути дольше 14 дн» — вероятные невыкупы. Скорость — дни от заказа до выкупа. Деньги — цена продавца со скидкой продавца, без скидки WB Клуба, поэтому суммы не сравниваются напрямую с прежними. Клик по строке товара — причины отмен, возвраты и география по нему; клик по заголовку столбца — сортировка; ⟳ — догнать ленту прямо сейчас.
Загружаю…
Отправления FBO+FBS кабинета ИП за период (без текущего дня); возвраты с причинами из списка возвратов (стоимость возврата — из возврата, при нулях — средняя цена SKU). Выкуп = (выкуплено + в пути) / заказано. «Брак и повреждения» — качество товара и упаковки. Данные собираются каждое утро в 07:00 МСК; ⟳ — пересобрать сейчас. Клик по заголовку столбца — сортировка.
Новый анализ
~1–2 минуты на товар; по названию берутся до 3 совпадений. Готовый Excel также придёт в Telegram.
Товар
Артикул
Дата анализа
Вердикт цены
₽/кг наша
₽/кг, медиана конкурентов
Действия
Загружаю…
Группировка по категориям (лист DATA), внутри — по алфавиту. Клик по строке — анализ на странице.
Формируется из личного кабинета WB, ~1–3 минуты. Свежий отчёт заменяет предыдущий.
Свод WB (МойСклад) — сумма к перечислению
Пусто = прошлый месяц. Диапазон дат — строго Пн→Вс (недельные отчёты WB). Некэшированные недели качаются ~1 мин/шт. Свод и файлы также придут в Telegram.
Свод OZON (МойСклад)
Пусто = прошлый месяц. Закрытые месяцы — только целиком, текущий — по дням (по вчера). Кабинеты ИП и ООО. Свод и файлы также придут в Telegram.
Свод Яндекс (МойСклад)
Пусто = прошлый месяц. Месяц календарный, с 1 по последнее число. Строка относится к месяцу по ДАТЕ ДОСТАВКИ покупателю — заказ, отгруженный 31-го и вручённый 3-го, уйдёт в следующий месяц. Цель свода — сумма к оплате: цена товаров минус все удержания Маркета (комиссия, доставка, магистраль, приём платежа), они раскладываются по строкам заказа пропорционально цене. Возвраты и невыкупы в свод не входят: по решению владельца это утерянный товар, из реализации он не вычитается — поэтому свод меньше, чем оборот в кабинете. Магазины сводятся по юрлицу: в МойСкладе это один кабинет. Файл один на кабинет: по Яндексу продажи НЕ делятся по источникам товара и коэффициент не применяется — второй файл с удержанием есть только у ВБ и Озона, где ПРОНТО ведётся отдельным аккаунтом МойСклада. Отчёт Маркет собирает сам, обычно меньше минуты; лимит — одна генерация в 2 минуты. Свод и файлы также придут в Telegram.
Импорт сводов в МойСклад — заказ покупателя
Загружаю…
Импортируется РОВНО тот файл, который лежит в своде выше и который раньше загружали руками: Штрихкоды | Количество | Цена. Кабинет МойСклада выбирает источник товара — ДЕССА и ПРОНТО это разные аккаунты, поэтому организация, контрагент и склад задаются отдельно для каждого файла (площадка × кабинет × источник) и подставляются списками из самого кабинета. Заказ создаётся ПРОВЕДЁННЫМ, дата и время — по умолчанию конец периода свода, 12:00; их можно изменить. Если часть штрихкодов файла не найдена в кабинете, заказ всё равно создаётся — но недогруз не пропадает: сколько позиций и на какую сумму не уехало, написано в строке файла и остаётся там после перезагрузки, плюс идёт в журнал. Отказ остаётся только на случай, когда не нашлось НИ ОДНОГО штрихкода: это не частичный импорт, а не тот файл или не тот кабинет. Повторный импорт того же файла требует подтверждения — иначе второй заказ на те же деньги заметили бы не сразу. После создания сумма документа сверяется с суммой ОТПРАВЛЕННЫХ позиций до копейки: сверять с суммой файла нельзя с тех пор, как разрешён частичный импорт — там разница это ненайденные штрихкоды, а не сбой записи.
Загружаю…
Медиана цены, которую заплатил покупатель, за последние 12 полных месяцев по кабинету ИП — отдельно по WB и OZON. Каждая проданная штука считается одним наблюдением, поэтому медиана показывает цену, по которой товар реально уходит, а не середину прайса. Источники: недельные отчёты реализации WB (берём retailAmount ÷ количество — цену ПОСЛЕ СПП) и месячные отчёты реализации OZON (цену реализации за штуку, без баллов Озона). Возвраты не учитываются: возврат не меняет того, по какой цене покупатель купил. Товары, у которых продаж за окно меньше порога, не переписываются — у них остаётся прежнее значение. Результат пишется в свойства товаров «Медианная цена WB» и «Медианная цена OZON» — те же колонки каталога, что были раньше с пометкой «2025» (год снят: значение скользящее). По ним раздел «Цены» и «Сводная аналитика» считают «Цену от медианы». У товара без продаж за окно в ячейке остаётся прежнее значение — прогон её не трогает. Тем же прогоном заполняется «ТОП Месячные заказы WB» и «ТОП Месячные заказы OZON» — лучший месяц артикула по ЗАКАЗАМ (воронка продаж WB и аналитика OZON, суммы в рублях). Это другая величина, чем медиана: заказы включают невыкупы и потому выше реализации примерно на треть. Значение пишется только вверх — исторический максимум не должен падать оттого, что рекордный месяц вышел за глубину хранения площадки. Обновление автоматическое 5-го числа (к этому дню Ozon закрывает месяц), кнопка — для внепланового пересчёта. Первый сбор WB идёт около полутора часов: лимит finance-api — один запрос в минуту, дальше докачиваются только новые недели.
Дата
Кабинет
Товар
Оценка
Отзыв
Ответ
Жалоба
Отзывы всех кабинетов WB (ИП, ООО, ТОО) из официального feedbacks-api. Живого запроса к WB здесь нет: у одного ИП около 228 тысяч отзывов, а метод отдаёт максимум 5 000 за раз — поэтому мозг держит свою таблицу и обновляет её каждые 15 минут, а раз в сутки в 03:20 МСК делает полный обход. Лёгкий сбор берёт только свежие страницы обоих списков и останавливается, как только страница не принесла ничего нового; полный идёт окнами по датам, потому что у постраничного обхода WB жёсткий потолок (skip=200001 отвечает 422). Пустой фильтр означает «все» — как и пустой список скрытых колонок в других таблицах. Столбец «Ответ» различает ЧЕТЫРЕ вещи, и это не придирка: на 19.08.2026 из 233 612 отзывов 159 257 — оценка без единого слова, WB закрывает такие сам и отвечать там нечего («оценка без текста»); 25 941 с нашим ответом; 46 728 ждут ответа и текст в них есть; 5 831 «упущен» — текст был, ответа нет, WB уже закрыл. Переключатель «Только с текстом» включён по умолчанию, иначе рабочая очередь тонет в оценках без слов; сколько скрыто, написано в строке состояния. «Ждут ответа» — это НЕ «без нашего ответа»: WB считает отзыв обработанным и когда на него ответили, и когда отвечать было нечему, а отвечать даёт только необработанным. Столбец «Жалоба» показывает, подавал ли наш сервис на 195.24.71.214 жалобу на этот отзыв; ключи у сервиса и у API разные, поэтому отзыв опознаётся по товару, минуте и началу текста, а при малейшей неоднозначности жалоба не проставляется вовсе — приписать жалобу не тому отзыву хуже, чем не показать её. Автоответы настраиваются отдельно на каждую оценку: свой режим (Выкл / Черновики / Авто), свой способ (шаблон с подстановками или нейросеть) и свой текст. Отвечать WB даёт только необработанным отзывам. Рабочий метод — POST /api/v1/feedbacks/answer с телом {id, text}: прежний PATCH /api/v1/feedbacks отключён и отдаёт 405. Код ответа WB ничего не подтверждает — на заведомо несуществующий отзыв ручка тоже отвечает 204, — поэтому отправленным считается только тот ответ, который нашёлся при перечитывании отзыва. Отправка необратима: кнопки «отправить всё» здесь нет, есть суточный потолок и окно по дате (накопленные 55 590 отзывов без ответа этим окном намеренно не задеваются).