Товар исчез из состава заказа Маркета: зачем проверять initialItems
Как сопоставить items и initialItems в статистике заказов Яндекс Маркета, сохранить полностью удалённые позиции и не удвоить количество товаров.
Содержание статьи
Полностью удалённая позиция может отсутствовать в текущем составе статистического ответа и остаться только в initialItems. Чтобы объяснить изменение заказа, нужно хранить первоначальный набор отдельно, не добавляя его повторно к продажам.
Какие два набора нужно сохранить
В getOrdersStats items описывает товары и услуги после возможных изменений. initialItems содержит позиции с первоначальным количеством и возвращается, когда количество менялось. Документация отдельно отмечает: если удалены все единицы товара или полностью отменена услуга, такая позиция остаётся только в initialItems. Для разбора удаления предусмотрены details.
Поэтому выгрузка только текущего списка может потерять историю намерения покупателя. Поддержке затем трудно объяснить, почему в исходном подтверждении было больше позиций. Во внутренней модели выделите первоначальный и последующий состав. Это две проекции одного заказа; они не должны превращаться в два независимых начисления выручки или два складских расхода.
Как сравнить позиции без ложного совпадения
Связывайте строки с номером заказа и товарным идентификатором, учитывая наличие услуг. Название недостаточно: один и тот же текст может использоваться для разных вариантов, а доставка тоже отражается отдельным элементом. Первоначальное количество храните как исходное значение, не перезаписывая его при каждом обновлении текущего представления.
Отдельная детализация услуг DBS рассмотрена в обзоре статистики установки, сборки и утилизации. При сравнении состава не принимайте отменённую услугу за физически недостающий товар. Разным типам позиций соответствуют разные действия сотрудников, даже когда они находятся внутри одной покупки и видны в одной таблице.
Почему нельзя рассчитывать результат простой суммой
Поля count и initialCount имеют документированное назначение, а details объясняет отдельные изменения. Не создавайте собственную универсальную формулу «доставлено равно первоначальное минус все встреченные числа» без проверки типов и стадий. Некоторые сведения описывают историю, другие — состояние, и их механическое сложение способно повторно учесть одно событие.
Для контрольного примера возьмите заказ, где одну позицию убрали полностью, а другую сохранили. Проверьте, что первая остаётся доступна в истории, но не появляется как дополнительная текущая продажа. Затем проверьте изменение количества внутри одной позиции. Такая проверка полезнее сравнения общей суммы товаров по всем заказам, где ошибки способны взаимно скрываться.
Как закрыть расследование изменения
Составьте объяснение по конкретной строке: была в первоначальном наборе, изменилась или полностью удалена, какие сведения подтверждают это в статистике. Для отдельных состояний единиц существует другая детализация, описанная в материале об itemStatuses. Не подменяйте ею назначение первоначального списка и не считайте сходные поля взаимозаменяемыми.
Финансовые последствия сопоставляйте с платежами и документами соответствующего периода. Наличие позиции в initialItems не доказывает оплату или доставку. Документация проверена 22 октября 2026 года; предложенный порядок сохраняет историю состава, не устанавливая бухгалтерскую формулу. В результате сотрудник должен объяснить изменение покупателю и учётной команде без восстановления заказа по случайным старым скриншотам.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы