Проекты
2026

Dashtreme

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

Год
2026
Направление
Бэкенд

Обзор

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

Остаток принадлежит варианту, а не товару, потому что продаётся именно вариант. Доступный остаток это на складе минус зарезервировано, и оба значения двигаются вместе с состоянием заказа: подтверждение резервирует, отмена освобождает, завершение превращает резерв в реальное списание. Правило живёт в одном месте, поэтому «доступно» не может разойтись с тем, что лежит на складе.

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

Закупки замыкают цикл и не оставляют пополнение склада в таблице. Варианты, достигшие порога дозаказа, становятся кандидатами, кандидаты превращаются в черновые заказы поставщику, а заказ проходит через статусы «выставлен», «принят частично» и «принят», и каждое связанное поступление обновляет остаток и себестоимость одним шагом.

Правила доступа встроены, а не приделаны сверху: три роли (support, manager, super_admin) и защита, которая не даёт последнему активному super_admin понизить или отключить самого себя и остаться заблокированным. Каждое изменение, будь то правка цены, корректировка остатка или смена роли, попадает в журнал аудита. Экспорт в CSV для заказов, каталога, заказов поставщикам и рентабельности тоже учитывает роль.

Ключевые моменты

Склад, который не врёт

Остаток на уровне варианта; резерв, освобождение и списание привязаны к состоянию заказа, поэтому доступно это всегда на складе минус зарезервировано.

Маржа, которая остаётся честной

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

Цикл закупок

Пороги дозаказа формируют черновые заказы поставщику, которые превращаются в поступления, обновляющие остаток и себестоимость вместе.

Возвраты и refund

Частичные количества и суммы, с опциональным возвратом на склад и сверкой себестоимости по признанной цене проданной единицы.

RBAC с предохранителем

Роли support, manager и super_admin; последний активный super_admin не может заблокировать сам себя.

С аудитом и экспортом

Каждое административное изменение попадает в журнал аудита; заказы, каталог, закупки и рентабельность выгружаются в CSV с учётом роли.

Стек

FastAPIPostgreSQLSQLAlchemyRedisDocker