Однажды я решил свериться, сколько у меня реальных возвратов за месяц, и наивный подсчёт по финансовым транзакциям показал 12 возвратов при 16 заказах всего. Это выглядело как катастрофа. На деле реальных возвратов оказалось два. Разница — не в данных, а в том, как их считать.
Почему построчный подсчёт обманывает
Отчёты Ozon о транзакциях устроены не так, как кажется на первый взгляд: одна продажа — это не одна строка. Финансовые события по одному заказу могут прийти несколькими отдельными транзакциями, растянутыми на дни и даже недели. Если считать возвраты «в лоб» — по отдельным строкам транзакций — легко наступить сразу на три грабли.
1. Комиссии без номера доставки
Часть комиссий — в первую очередь эквайринг — Ozon иногда проводит отдельной транзакцией с «голым» номером отправления, без суффикса доставки (12345678-0001 вместо настоящего 12345678-0001-2). Такая строка не привязывается к обычной продаже автоматически, и если её не сопоставить с реальным отправлением, наивный подсчёт запишет её в отдельный «пустой» заказ с нулевой выручкой — то есть в возврат, которого не было.
2. Один возврат — несколько дней
Корректировки по одному отправлению часто приходят несколькими траншами в разные дни. Если группировать транзакции по дате операции (а не по отправлению целиком), один и тот же возврат посчитается несколько раз — по разу на каждый день, когда пришла очередная строка.
3. «В пути» — это не «отменён»
Заказ, который Ozon ещё не рассчитал полностью (статус вроде «в доставке»), на промежуточном этапе может иметь только частичную комиссию без основного начисления за продажу. Если судить по одному этому признаку, такой заказ выглядит точно так же, как настоящий возврат — хотя просто ещё не наступило время расчёта.
Как считать правильно
Правильный сигнал «это возврат» — сумма начислений за продажу (не отдельных строк, а по всему отправлению целиком) равна нулю, и отправление находится в финальном статусе — доставлено или отменено. Активные статусы вроде «в доставке» из подсчёта нужно исключать: у них просто ещё нет данных, а не отрицательный результат.
Кратко, порядок действий:
- Свести все транзакции к одному отправлению (включая «голые» корректировки без суффикса — их нужно сопоставить с полным номером).
- Просуммировать начисления за продажу по всему отправлению, а не по отдельным строкам или дням.
- Считать возвратом только те отправления, где эта сумма равна нулю и статус финальный.
Отдельный нюанс: статусу тоже нельзя доверять полностью. Ozon не всегда откатывает статус отправления на «отменён» при фактическом возврате — отправление может остаться «доставлено», хотя выручка по нему нулевая. Поэтому нулевая сумма начислений — более надёжный сигнал, чем статус сам по себе, и оба признака стоит проверять вместе.
Почему это важно
Ошибка в подсчёте возвратов напрямую искажает решения: если возвратов кажется в несколько раз больше, чем есть на самом деле, легко сделать неверный вывод о качестве товара, упаковки или поставщика — и потратить время на решение несуществующей проблемы. А если считать возвраты построчно и без учёта дублей, реальный уровень возвратов, наоборот, можно недооценить.
В mplens возвраты считаются именно так — по отправлению целиком, с учётом «голых» корректировок и финального статуса, а не по сырым строкам транзакций. Попробуйте бесплатно — без ограничения по времени и без привязки карты.