💰 Doanh số hôm nay
{{ fmt(kpi.doanhSo) }}
từ {{ kpi.soSan }} sàn
📦 Số đơn
{{ kpi.soDon }}
đơn hôm nay
📈 Lãi ròng
{{ fmt(kpi.laiRong) }}
sau phí & ads
🚫 Tỷ lệ hủy
{{ kpi.tyLeHuy }}%
đơn hủy
📊 Doanh số 30 ngày (TikTok vs Shopee)
💹 Lãi ròng 30 ngày
🏆 Top 10 sản phẩm
| # | Sản phẩm | SL | Doanh thu |
|---|---|---|---|
| {{ i+1 }} | {{ p.ten_sp || '—' }} | {{ p.sl }} | {{ fmt(p.dt) }} |
| Chưa có dữ liệu | |||
✅ Checklist hôm nay
{{ todayDone }}/{{ todayChecklist.length }} hoàn thành
{{ item.noi_dung }}
Chưa có checklist hôm nay
➕ Thêm đơn hàng mới
Doanh thu: {{ fmt(orderCalc.doanh_thu) }}
Phí sàn: {{ fmt(orderCalc.phi_san) }}
Giá vốn tổng: {{ fmt(orderCalc.gia_von_tong) }}
Lãi ròng: {{ fmt(orderCalc.lai_rong) }}
| Ngày | Sàn | Mã đơn | SP | SL | Doanh thu | Giá vốn | Phí sàn | Ads | Lãi ròng | Trạng thái | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ fmtDate(o.created_at) }} | {{ o.san }} | {{ o.ma_don }} | {{ o.ten_sp }} | {{ o.so_luong }} | {{ fmt(o.doanh_thu) }} | {{ fmt((o.gia_von||0) * (o.so_luong||1)) }} | {{ fmt(o.phi_san) }} | {{ fmt(o.chi_phi_ads) }} | {{ fmt(o.lai_rong) }} | {{ o.trang_thai }} | |
| Chưa có đơn hàng | |||||||||||
| Tổng cộng ({{ filteredOrders.length }} đơn) | {{ fmt(filteredOrders.reduce((s,o)=>s+(o.doanh_thu||0),0)) }} | {{ fmt(filteredOrders.reduce((s,o)=>s+(o.gia_von||0)*(o.so_luong||1),0)) }} | {{ fmt(filteredOrders.reduce((s,o)=>s+(o.phi_san||0),0)) }} | {{ fmt(filteredOrders.reduce((s,o)=>s+(o.chi_phi_ads||0),0)) }} | {{ fmt(filteredOrders.reduce((s,o)=>s+(o.lai_rong||0),0)) }} | ||||||
📊 Phân tích theo sản phẩm
| Sản phẩm | Số đơn | Doanh thu | Giá vốn | Lãi ròng | Margin |
|---|---|---|---|---|---|
| {{ p.ten_sp }} | {{ p.so_don }} | {{ fmt(p.doanh_thu) }} | {{ fmt(p.gia_von) }} | {{ fmt(p.lai_rong) }} | {{ p.margin.toFixed(1) }}% |
🛍️ Danh sách sản phẩm
| SKU | Tên SP | Loại | Giá bán | Giá vốn | Margin | |
|---|---|---|---|---|---|---|
| {{ p.sku }} | {{ p.ten_sp }} | {{ p.loai }} | {{ fmt(p.gia_ban) }} | {{ fmt(p.gia_von) }} | {{ p.gia_ban ? ((p.gia_ban-p.gia_von)/p.gia_ban*100).toFixed(1) : 0 }}% | |
| Chưa có sản phẩm | ||||||
👥 Tổng khách
{{ customers.length }}
🆕 Mới tháng này
{{ newThisMonth }}
⚠️ At-risk
{{ atRiskCount }}
👑 VIP
{{ vipCount }}
| Tên | SĐT | Đơn | Chi tiêu | Đơn đầu | Đơn cuối | Segment | |
|---|---|---|---|---|---|---|---|
| {{ c.ten_khach }} | {{ c.sdt }} | {{ c.tong_don }} | {{ fmt(c.tong_chi_tieu) }} | {{ fmtDate(c.don_dau) }} | {{ fmtDate(c.don_cuoi) }} | {{ c.segment || 'New' }} | |
| Chưa có khách hàng | |||||||
🥧 Phân bố segment
Tổng KOC
{{ kocList.length }}
Đang liên hệ
{{ kocList.filter(k=>k.trang_thai==='Đang liên hệ').length }}
Đã post
{{ kocList.filter(k=>k.trang_thai==='Đã post').length }}
Tổng DS (đã post)
{{ fmt(kocList.filter(k=>k.trang_thai==='Đã post').reduce((s,k)=>s+(k.doanh_so||0),0)) }}
| Tên KOC | TikTok ID | Người book | SP | Hoa hồng | Trạng thái | Videos | Views | Đơn | DS | |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ k.ten_koc }} | {{ k.tiktok_id }} | {{ k.nguoi_book }} | {{ k.san_pham }} | {{ k.hoa_hong }} | {{ k.trang_thai }} | {{ k.so_video }} | {{ fmtNum(k.views) }} | {{ k.so_don }} | {{ fmt(k.doanh_so) }} | |
| Chưa có KOC | ||||||||||
➕ Thêm phiên live
ROI: {{ liveROI.toFixed(2) }}x
(DS: {{ fmt(liveForm.doanh_so) }} / Ads: {{ fmt(liveForm.chi_phi_ads) }})
🏆 Ranking host
| # | Host | Tổng ca | Tổng DS | TB/ca | Tỷ lệ hủy |
|---|---|---|---|---|---|
| {{ i+1 }} | {{ h.host }} | {{ h.tong_ca }} | {{ fmt(h.tong_ds) }} | {{ fmt(h.tb_ca) }} | {{ h.ty_le_huy }}% |
| Chưa có dữ liệu | |||||
📋 Lịch sử live
| Ngày | Ca | Host | Giờ BĐ | Giờ KT | Doanh số | Đơn | Đơn hủy | Ads | ROI | |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ fmtDate(s.ngay) }} | {{ s.ca }} | {{ s.host }} | {{ s.gio_bat_dau }} | {{ s.gio_ket_thuc }} | {{ fmt(s.doanh_so) }} | {{ s.so_don }} | {{ s.don_huy }} | {{ fmt(s.chi_phi_ads) }} | {{ s.chi_phi_ads > 0 ? (s.doanh_so/s.chi_phi_ads).toFixed(2)+'x' : '—' }} | |
| Chưa có phiên live | ||||||||||
👤 Quản lý host
{{ h.ten_host }}
Chưa có host
Tiến độ ngày {{ checklistDate }}
{{ filteredChecklistDone }}/{{ filteredChecklist.length }}
{{ item.noi_dung }}
{{ item.phong_ban }}
👤 {{ item.nguoi_phu_trach }}
📝 {{ item.ghi_chu }}
📋
Chưa có checklist cho ngày này
📊 Nhập doanh thu hàng ngày
Doanh số: {{ fmt(revenueForm.doanh_so) }}
Tổng chi phí: {{ fmt((revenueForm.chi_phi_ads||0)+(revenueForm.phi_san||0)) }}
Lãi ròng ước tính: {{ fmt(revenueCalcLai) }}
| Ngày | Sàn | Doanh số | Đơn | Đơn hủy | Tỷ lệ hủy | Ads | Phí sàn | Lãi ròng | |
|---|---|---|---|---|---|---|---|---|---|
| {{ fmtDate(r.ngay) }} | {{ r.san }} | {{ fmt(r.doanh_so) }} | {{ r.so_don }} | {{ r.so_don_huy }} | {{ r.so_don > 0 ? (r.so_don_huy/r.so_don*100).toFixed(1) : 0 }}% | {{ fmt(r.chi_phi_ads) }} | {{ fmt(r.phi_san) }} | {{ fmt(r.lai_rong) }} | |
| Chưa có báo cáo | |||||||||
| Tổng ({{ filteredRevenue.length }} ngày) | {{ fmt(filteredRevenue.reduce((s,r)=>s+(r.doanh_so||0),0)) }} | {{ filteredRevenue.reduce((s,r)=>s+(r.so_don||0),0) }} | {{ filteredRevenue.reduce((s,r)=>s+(r.so_don_huy||0),0) }} | {{ fmt(filteredRevenue.reduce((s,r)=>s+(r.chi_phi_ads||0),0)) }} | {{ fmt(filteredRevenue.reduce((s,r)=>s+(r.phi_san||0),0)) }} | {{ fmt(filteredRevenue.reduce((s,r)=>s+(r.lai_rong||0),0)) }} | |||