Оборот на OZON растёт, а денег нет. Как найти в 1С товары, которые съедают прибыль

10.09.26

Учетные задачи - Ценообразование, анализ цен

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

Кабинет продавца на OZON за три месяца провёл 655 624 744 рубля выручки. Маржа по итогам этих трёх месяцев составила 269 310 рублей. Ноль целых четыре сотых процента от оборота, то есть компания отработала квартал вхолостую и узнала об этом только тогда, когда свели площадку с себестоимостью из 1С.

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

Из чего собирается маржа на маркетплейсе

Формула короткая, а собрать её нечем:

выручка - комиссия за продажу - эквайринг - логистика до клиента - логистика возврата - хранение и прочие услуги - реклама - себестоимость = маржа

Слева от себестоимости стоит то, что знает только площадка. Справа - то, что знает только учётная система. Кабинет OZON не подозревает, почём вам достался товар, а 1С не знает, сколько площадка удержала именно с этой продажи. Прибыль по товару рождается ровно между двумя системами, и там до сих пор пусто.

Вот как это выглядит в цифрах на разбираемом кабинете, период 01.06 - 06.09.2026:

Показатель Сумма, руб
Выручка 655 624 744
Комиссия площадки -131 209 344
Услуги: логистика, хранение, эквайринг -12 893 822
Реклама -35 370 496
Себестоимость проданного -475 881 772
Маржа 269 310

Комиссия вышла 20,0 % выручки, но это среднее по конкретному ассортименту: ставка зависит от категории и гуляет в разы, так что своё число надо считать самому. Реклама - 5,4 % оборота, и её в расчёте прибыли чаще всего нет вовсе. Про неё отдельный раздел ниже, потому что именно она переворачивает картину по конкретным товарам.

Продажа это доставленное отправление

Первое, обо что спотыкается самодельный расчёт в Excel: что считать продажей.

Заказ продажей не является. Он может вернуться, и тогда себестоимость окажется списанной зря, а выручка - нарисованной. Продажа это доставленное отправление, отправление у площадки это одна посылка клиенту, товаров в ней может быть несколько. Возврат продажу сторнирует: минус штуки, минус выручка. На кабинете за период прошло 36 085 отправлений и 159 777 финансовых операций удержаний - вручную такое не сводят.

Второе: деньги за отгрузку приходят не в месяце отгрузки. Площадка проводит расчёт с задержкой, и товар, уехавший в августе, оплачивается в сентябре. Поэтому окно денег шире календарного периода: берутся отгрузки периода плюс платежи следующих 30 дней по этим же отгрузкам.

Насколько это важно, видно на прямом замере. Отдельный прогон, более узкий период 01.06 - 31.08, всё остальное одинаково, меняется только окно денег: убыток по кабинету уменьшился в два с половиной раза, и 21 товар переехал из убыточных в прибыльные. Разница не в методике расчёта и не в источнике себестоимости. Разница в том, что первый вариант смотрел на август без сентябрьских денег.

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

Отсюда правило, которое стоит забрать даже без всякого инструмента: грузите период на месяц дальше, чем собираетесь смотреть. Иначе последний месяц всегда будет выглядеть провальным, и решения по нему будут приниматься неверные.

Четыре причины убытка, и весят они по-разному

Из 1 523 посчитанных товаров зарабатывают 648, теряют 875. Прибыльные принесли 48 407 999 рублей, убыточные съели 48 138 689. Одно почти в точности гасит другое, и в этом главная неприятность: на верхнем уровне ровное ничего, внутри битва двух почти равных сумм.

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

Причина Товаров Потеряно, руб Доля
Продаём дешевле, чем купили 99 23 564 941 49 %
Комиссия и услуги съели наценку 260 16 101 425 33 %
Реклама дороже заработка с товара 350 6 320 069 13 %
Продаж нет, а расходы идут 166 2 152 253 4 %

Четыре причины убытка на маркетплейсе с суммами и долями

Половину всех потерь дают 99 товаров, которые продавались дешевле закупки. Это одиннадцать процентов убыточной номенклатуры и почти двадцать четыре миллиона рублей. Найти их без разбора нельзя: в отчётах площадки все четыре причины выглядят одинаково, как "у нас минус".

И лечатся они по-разному. Первую лечат ценой или выводом из ассортимента, вторую - пересмотром схемы работы и габаритов, третью - выключением продвижения, четвёртую - вывозом остатков со склада площадки. Универсального "оптимизируйте расходы" здесь нет.

Реклама: 350 товаров, которые в отчётах выглядели прибыльными

Реклама OZON живёт в отдельном Performance API, со своими ключами и своей авторизацией. И отдаёт она расход в разрезе рекламных кампаний. Товар в этих цифрах не назван вовсе.

Это техническая деталь, но следствие у неё финансовое: до расчёта прибыли по товару реклама обычно не доезжает вообще. Кампания знает, что потратила 380 тысяч. Товар не знает, что 380 тысяч потратили на него.

Чтобы разложить расход на товары, нужно забрать состав каждой кампании и разнести деньги по её товарам. Хост у Performance API свой, api-performance.ozon.ru, и ключи тоже свои. Нужны три метода:

  • /api/client/token - авторизация, отдаёт короткоживущий токен;
  • /api/client/statistics/expense/json с датами периода - расход по кампаниям;
  • /api/client/campaign/<id>/v2/products - состав кампании, то есть список sku, за которые она платила. sku здесь и дальше это ключ товара на стороне площадки; наша номенклатура ему не родня и связывается отдельно.

Дальше арифметика. Расход дня складывается сразу из трёх кошельков - первое место, где легко недосчитаться:

Расход = ЧислоИзДенег(Строка.Получить("moneySpent"))
	+ ЧислоИзДенег(Строка.Получить("bonusSpent"))
	+ ЧислоИзДенег(Строка.Получить("prepaymentSpent"));

Товары = СоставКампаний.Получить(Кампания);
Если Товары = Неопределено Тогда
	Товары = ТоварыКампании(Токен, Кампания);   // /campaign/<id>/v2/products
	СоставКампаний.Вставить(Кампания, Товары);  // кэш: один запрос на кампанию
КонецЕсли;

Доля = Расход / Товары.Количество();

Для Каждого SKU Из Товары Цикл
	Строки.Добавить(Новый Структура("Дата, sku, Расход, Распределено",
		ДатаОперации, SKU, Доля, Товары.Количество() > 1));
КонецЦикла;

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

Отдельная засада - продвижение в поиске. Там расход к кампании не привязан вовсе, обычный отчёт статистики для него запрещён, и товарную разбивку приходится заказывать отчётом /api/client/statistic/products/generate/json, ждать его готовности и забирать по коду. Это отдельная ветка кода со своим ожиданием готовности.

После разноски выяснилось, что 350 товаров убыточны именно из-за продвижения: 6 320 069 рублей, 13 % всего убытка. Каждый из них в отчёте без рекламы выглядел прибыльным.

Крайние случаи видно сразу. Есть товар, у которого реклама съела 192 % выручки: продвижение обошлось вдвое дороже, чем товар вообще принёс денег. Есть строка, где при выручке 1 810 280 рублей реклама забрала 388 704 - это 21 % выручки, и продвижение обошлось дороже, чем сама площадка: комиссия по той же строке оказалась меньше рекламы.

Какую цену ставить и когда её бесполезно поднимать

Цена, при которой товар выходит в плюс, считается от себестоимости с учётом комиссии, услуг, целевой доли рекламы и целевой маржи. Важная деталь методики: реклама в этой формуле берётся по целевой доле рекламных расходов (ДРР), а не по фактической. Перерасход рекламы это проблема рекламы, а не цены, и вешать его на ценник значит лечить симптом.

По кабинету посчитано 1 331 рекомендация: у 1 154 товаров цену надо поднимать, у 175 опускать, у двух она уже стоит верно. Считается не по всем 1 523 товарам - там, где площадка ещё не закрыла расчёты, рекомендации нет, считать не из чего. Но самая полезная часть расчёта лежит в графе "что мешает".

Потому что цену карточки и фактическую цену продажи разделяют скидки и акции. Живая строка: в карточке около 4 360, а уходит товар по 1 133, то есть на 74 % ниже. Расчёт говорит, что для выхода в плюс надо 3 040. Поднимать карточную цену тут бесполезно, продают всё равно не по ней, и рядом с рекомендацией стоит пометка "продают на 74 % ниже карточки: скидки и акции". В выборке кабинета таких строк с разрывом больше половины.

Это тот случай, когда числовая рекомендация без пояснения вредна. Продавец поднимет карточную цену, ничего не изменится, и он решит, что расчёту верить нельзя.

Слепое пятно: что в расчёт не попало и почему об этом надо знать

Любой такой расчёт имеет край, за которым данных нет. Разница между честным инструментом и нечестным в том, показывает он этот край или молча подставляет ноль.

Сразу про множества, иначе числа ниже не сойдутся с 1 523 из таблицы: всё, что перечислено дальше, в эти 1 523 не входит. Товар либо посчитан, либо назван непосчитанным с причиной, третьего состояния нет.

На разбираемом кабинете край выглядит так:

  • 22 товара без себестоимости (1,4 % от всех). Продажи есть, себестоимости нет ни в одном источнике учётной системы. В расчёт маржи они не входят вообще. Ноль вместо себестоимости не подставляется намеренно: с нулевой закупкой товар выглядел бы прибыльным, и это была бы не оценка, а враньё.
  • 69 товаров с незакрытыми расчётами. Площадка ещё не провела часть денег по их отгрузкам, поэтому они выглядят убыточнее, чем есть. Выводы по ним делать рано, и об этом лучше сказать прямо, чем считать их проблемными.
  • Расходы вне маркетплейса сюда не входят: зарплата, аренда, налоги. Маржа считается до них.

И отдельная история, которая вылезла при проверке. Список несопоставленных товаров изначально строился от карточек площадки: показывались только те sku, у которых карточка загружена, а связь с номенклатурой не установлена. Товар, продавшийся под sku, которого в загруженном каталоге нет вообще, не попадал никуда - ни в расчёт, ни в список проблем.

Таких нашлось 66 sku на 25,8 миллиона рублей продаж: они просто отсутствовали в картине мира, и ничто об этом не сообщало. Лечится сменой точки отсчёта: список строится не от карточек, а от денег. Основа - sku, по которым за период были продажи или удержания, а карточка подтягивается к ним. Нет карточки - строка всё равно видна с пометкой "ищите по sku".

Мораль шире одного продукта: если сводка строится от справочника, она покажет только то, что в справочнике есть. Деньги, пришедшие мимо справочника, из такой сводки исчезают бесследно, и заметить это можно только сверкой итога с кабинетом.

Чего этот расчёт не говорит

Три границы, которые стоит держать в голове, прежде чем принимать по таким числам решения.

Себестоимость средняя, а не по конкретной продаже. Она берётся из учётной системы на конец периода. Для маржи по товару этого достаточно, но при резких скачках закупочных цен внутри периода картина будет усреднённой.

Маржа по товару это не прибыль компании. Здесь нет ни зарплаты, ни аренды, ни налогов, ни стоимости денег. Товар с плюсовой маржой может быть убыточным для компании целиком.

Один кабинет это не рынок. Доли причин на другом ассортименте будут другими: у продавца мелкогабаритного товара доля логистики и хранения выше, у продавца с длинным чеком выше вес комиссии. Механика та же, веса свои.

Что из этого можно проверить у себя сегодня

Даже без отдельного инструмента четыре вещи проверяются руками и обычно что-нибудь находят.

  1. Сравните сумму отгрузок за месяц с суммой денег, которые площадка провела по этим отгрузкам. Если считаете только по календарному месяцу, последний месяц у вас систематически хуже, чем он есть.
  2. Возьмите десять товаров с самой большой выручкой и посчитайте по ним полную цепочку руками. Комиссия, эквайринг, логистика туда и обратно, хранение, реклама, себестоимость. Если хотя бы один из десяти окажется в минусе, разбирать надо весь ассортимент.
  3. Выгрузите расход Performance API по кампаниям и посмотрите, какие товары в этих кампаниях. Это единственный способ увидеть рекламу на уровне товара. Дальше делите расход кампании на её товары и смотрите, кто из них после этого остаётся в плюсе.
  4. Сверьте число товаров, по которым были продажи, с числом товаров в вашей сводке. Разница это и есть слепое пятно. У нас оно было 66 позиций и 3,8 % оборота, и обнаружилось только прямой сверкой.

Всё перечисленное собирается в 1С один раз и дальше считается кнопкой. Мы это сделали расширением для 1С:Управление торговлей 11.5: оно тянет удержания из Seller API, рекламу из Performance API по кампаниям, берёт себестоимость из базы и выдаёт отчёт по схеме вопрос - диагноз - решение, тот самый, из которого взяты числа выше. Карточка продукта - Полная юнит-экономика OZON в 1С:УТ 11.5.

Но главное здесь не инструмент. Главное - что вопрос "сколько мы реально заработали на маркетплейсе" имеет числовой ответ, и этот ответ почти всегда отличается от того, что кажется по обороту. На разобранном кабинете разница между ощущением и расчётом составила ровно квартал работы.

И вопрос, который мне правда интересен. Реклама на маркетплейсе живёт в отдельном API и до расчёта прибыли по товару почти никогда не доезжает. Кто-нибудь из вас разносит её по товарам, и если да, то чем: своим кодом, выгрузкой в Excel или на глаз по кампаниям? Мне важно понять, это у всех так или мы наткнулись на частный случай одного кабинета.

Другие наши инструменты:

  • Сводная таблица в Excel из 1С без COM - если отчёт всё же собирается руками, эта библиотека хотя бы избавляет от COM-объекта и делает файл, который открывается на любой машине.
  • Карта объёмов базы 1С - когда база с историей маркетплейса разрослась и непонятно, что именно её раздуло. Регистры обменов и загруженные движения обычно в тройке лидеров.
  • Чек-ап СУБД под 1С - вторая половина вопроса "почему всё медленно". Загрузка за три месяца упирается в настройки сервера чаще, чем в код.
  • Анонимизатор базы данных PRO - если копию базы с оборотами и контрагентами надо отдать наружу: подрядчику, аудитору или на стенд для скриншотов.

Вступайте в нашу телеграмм-группу Инфостарт

OZON маркетплейс юнит-экономика маржа Performance API себестоимость комиссии реклама 1С:Управление торговлей

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Маркетплейсы 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Подключите маркетплейсы Ozon, WB, АлиЭкспресс и ЯндексМаркет к 1С. Удобное управление заказами, остатками и синхронизация данных из одного окна 1С для УНФ, УТ, КА, ERP. Единый интерфейс работы для всех площадок. Отправка остатков по сопоставленным товарам по расписанию, гибкая настройка отправки. Парсинг цен СПП для Озон и Вайлбериз доступен в версии модуля 3.0.5.10

32930 руб.

23.01.2023    80049    739    212    

271

Маркетплейсы Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Интеграция маркетплейсов с 1С:УТ 10.3, КА 1.1, УПП 1.3. Автоматизация по FBS/FBO, управление заказами и синхронизация остатков для старых конфигураций. Поддержка RICH-контента OZON

28800 руб.

12.05.2021    121928    1047    274    

402

Маркетплейсы Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)

Полноценный обмен со всеми маркетплейсами: МегаМаркет, Wildberries, Яндекс.Маркет, OZON, VK, ALI, Авито, МагнитМаркет, Детский мир. Так же подключили сервис Dostavista, автоматическая отправка заказов на доставку. Данный модуль позволяет полностью интегрировать 1С:УТ11.4/11.5, 1С:КА 2.4/2.5, 1С:ERP 2.4/2.5, 1С: УНФ 3.1, 1С: Розница 2.3/2.4 по API с Wldberries, Яндекс.Маркет, OZON, ALI, VK, МегаМаркет и МагнитМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет и Wildberries, что говорит о гарантиях использования решения.

70000 руб.

09.10.2020    67390    416    84    

139

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, ЛаМода, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), Летуаль, Твой дом, Золотое Яблоко, Каспи, Авито, Аптеки+, М.Видео,Тинькоф в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP.

5490 руб.

12.08.2021    47643    624    71    

225
Для отправки сообщения требуется регистрация/авторизация