fofa.app
Документация клиента
Объяснение бизнес-логики маркетплейса и ролевых кабинетов внутри системы.
1. Общая модель магазина
- Один товар может продаваться несколькими продавцами через отдельные offers.
- Покупатель выбирает конкретного продавца, и один заказ содержит только один выбранный offer.
- Сотрудник платформы видит весь магазин и финансовый контур целиком.
2. Продавец
- Продавец создаёт vendor profile, затем товары и offers на эти товары.
- В offer хранятся цена, скидка, остаток и валюта продажи.
- У продавца есть dashboard, ledger, payouts и payout accounts.
3. Покупатель
- Покупатель создаёт заказ по конкретному seller offer.
- К заказу можно применить coupon code, после чего пересчитываются discount и grand total.
- В customer cabinet доступны история покупок, рекомендации, блок адресов и блок платёжных карт.
4. Выплаты продавцам
- Сотрудник вручную задаёт payout schedule: день месяца, минимум выплаты и валюту.
- Сотрудник вручную заносит treasury snapshot — доступную сумму денег на выплаты.
- Система строит payout preview, показывает planned total и кассовый разрыв.
- После этого staff создаёт payout cycle и массово исполняет его одним действием.
5. Финансовые термины
- Ledger — журнал финансовых движений продавца.
- Payout — факт выплаты продавцу.
- Funding gap — кассовый разрыв, когда planned total больше available cash.
6. Services (bookable)
- В интерфейсе этот домен называется Services (bookable), а в коде использует сущности BookableLocation, BookableResource, BookableService, BookablePricingRule и Booking.
- BookableLocation — это объект с адресом, например здание. Если в одном здании 4 помещения, это одна Location и четыре Resource.
- BookableResource — конкретный бронируемый ресурс внутри объекта, например Room A.
- BookableService — отдельный лендинг услуги. Например Light, Medium и Hard могут быть тремя разными Services (bookable), привязанными к одному Resource.
- Если клиент забронировал Light на слот, Medium и Hard на этот же слот недоступны, потому что занятость считается по общему Resource.
- BookablePricingRule задаёт цену по интервалу starts_at/ends_at, дням недели, времени суток, количеству людей и длительности.