Hướng Dẫn Toàn Diện: Quản Lý Chuỗi Cửa Hàng Thời Trang Với Google Sheets

Hướng Dẫn Toàn Diện: Quản Lý Chuỗi Cửa Hàng Thời Trang Với Google Sheets
Ngành thời trang Việt Nam đang phát triển với tốc độ vũ bão — theo báo cáo 2026, thị trường bán lẻ thời trang đạt hơn 4 tỷ USD, với hàng nghìn chuỗi cửa hàng vừa và nhỏ đang mở rộng. Tuy nhiên, quản lý chuỗi cửa hàng thời trang phức tạp hơn nhiều so với cửa hàng đơn lẻ: tồn kho theo size, màu sắc, mẫu mã, kiểm soát nhiều chi nhánh cùng lúc, phân tích doanh thu từng điểm bán...
Bài viết này sẽ hướng dẫn bạn xây dựng hệ thống quản lý chuỗi cửa hàng thời trang hoàn chỉnh bằng Google Sheets — đủ mạnh cho chuỗi 2-10 cửa hàng mà không tốn chi phí phần mềm đắt tiền.
1. Thách Thức Đặc Thù Ngành Thời Trang
Quản lý chuỗi cửa hàng thời trang khác với bán lẻ thông thường ở nhiều điểm:
Phức tạp SKU (Stock Keeping Unit)
Một sản phẩm áo phông đơn giản có thể tạo ra hàng chục SKU khác nhau:
- Màu sắc: Trắng, đen, xám, xanh navy, đỏ đô, hồng pastel → 6 màu
- Size: XS, S, M, L, XL, XXL → 6 size
- Tổng SKU: 6 × 6 = 36 biến thể chỉ cho 1 mẫu áo
Với 50 mẫu sản phẩm, bạn có thể có đến 1.800 SKU cần quản lý.
Vòng đời sản phẩm ngắn
Thời trang theo mùa vụ, xu hướng thay đổi nhanh:
- Bộ sưu tập xuân-hè, thu-đông ra mới mỗi 6 tháng
- Sản phẩm cũ cần markdown giá, thanh lý tồn kho
- Dự báo nhu cầu cho mùa tiếp theo dựa trên data lịch sử
Điều chuyển hàng giữa chi nhánh
Chi nhánh A thừa size M, chi nhánh B thiếu — cần hệ thống điều chuyển minh bạch, có chứng từ đầy đủ.
Khuyến mãi phức tạp
Mua 2 giảm 10%, Flash sale cuối tuần, giảm giá theo nhóm sản phẩm, coupon riêng từng chi nhánh...
2. Kiến Trúc Hệ Thống Google Sheets Cho Chuỗi
Cấu trúc khuyến nghị gồm 1 Master File + N Branch Files:
Master File (Trụ sở)
| Sheet Tab | Mô tả | Cập nhật |
|---|---|---|
| PRODUCTS | Danh mục sản phẩm + SKU master | Khi có SP mới |
| INVENTORY_MASTER | Tổng tồn kho toàn chuỗi | Tự động từ branches |
| SALES_CONSOLIDATED | Doanh thu tổng hợp tất cả CN | Hàng ngày |
| TRANSFER_LOG | Lịch sử điều chuyển hàng | Khi có transfer |
| PROMOTIONS | Chương trình khuyến mãi | Khi có KM |
| STAFF_KPI | KPI nhân viên toàn chuỗi | Cuối tuần/tháng |
| REPORTS | Dashboard báo cáo tổng hợp | Auto |
Branch File (Mỗi chi nhánh)
| Sheet Tab | Mô tả |
|---|---|
| SALES_DAILY | Doanh số bán hàng từng ngày |
| INVENTORY_LOCAL | Tồn kho tại chi nhánh |
| RETURNS | Hàng đổi trả |
| STAFF | Ca làm việc, doanh số theo nhân viên |
| CASH_REGISTER | Đối soát tiền mặt / chuyển khoản |
Sơ đồ luồng dữ liệu
Branch 1 File ──┐
Branch 2 File ──┤──→ Master File (IMPORTRANGE) ──→ Dashboard Báo Cáo
Branch 3 File ──┘
Dùng hàm IMPORTRANGE để kéo dữ liệu từ các branch file vào master tự động.
3. Quản Lý Tồn Kho Theo Size & Màu Sắc
Cấu trúc bảng PRODUCTS
Thiết kế bảng danh mục sản phẩm với đầy đủ thông tin SKU:
| Cột | Dữ liệu mẫu | Ghi chú |
|---|---|---|
| SKU | AT001-TRG-M | Mã duy nhất: [MaSP]-[Màu]-[Size] |
| Product_Code | AT001 | Mã sản phẩm gốc |
| Product_Name | Áo Thun Basic | Tên sản phẩm |
| Category | Áo | Danh mục |
| Color | Trắng | Màu sắc |
| Size | M | Kích cỡ |
| Cost_Price | 85000 | Giá nhập |
| Selling_Price | 199000 | Giá bán lẻ |
| Season | XH2026 | Bộ sưu tập |
| Status | Active | Active/Discontinued/Clearance |
Công thức tạo SKU tự động
=B2&"-"&LEFT(D2,3)&"-"&E2
'Kết quả: AT001-TRG-M (Áo Thun 001 - Trắng - M)
Ma trận tồn kho Size × Màu
Tạo pivot table động để xem tồn kho theo dạng ma trận trực quan:
'Sheet INVENTORY_MATRIX
'Hàng: Màu sắc | Cột: Size (XS, S, M, L, XL, XXL)
=COUNTIFS(INVENTORY!$C:$C, B$1, INVENTORY!$D:$D, $A2, INVENTORY!$E:$E, ">0")
'Hoặc dùng SUMIF để tính tổng số lượng:
=SUMIFS(INVENTORY!$F:$F, INVENTORY!$C:$C, B$1, INVENTORY!$D:$D, $A2)
Cảnh báo tồn kho thấp
'Conditional Formatting: Format cells where value is less than 3
'Rule: =F2<3 → màu đỏ (hết hàng nguy cơ)
'Rule: =F2<10 → màu vàng (cần đặt thêm)
'Công thức cột ALERT:
=IF(F2=0,"HẾT HÀNG",IF(F2<3,"NGUY HIỂM",IF(F2<10,"CẢNH BÁO","OK")))
4. Kiểm Soát Tồn Kho Nhiều Chi Nhánh
Bảng tổng hợp tồn kho toàn chuỗi
Tại Master File, tạo sheet INVENTORY_MASTER kéo dữ liệu từ tất cả chi nhánh:
'Kéo dữ liệu từ Branch 1:
=IMPORTRANGE("URL_BRANCH_1","INVENTORY_LOCAL!A2:G500")
'Kéo dữ liệu từ Branch 2 (vào dòng tiếp theo):
=IMPORTRANGE("URL_BRANCH_2","INVENTORY_LOCAL!A2:G500")
Tổng tồn kho theo SKU toàn chuỗi
'Sheet INVENTORY_CONSOLIDATED
'Cột A: SKU (unique)
'Cột B: CN1
'Cột C: CN2
'Cột D: CN3
'Cột E: Tổng toàn chuỗi
=SUMIF(INVENTORY_MASTER!$A:$A, A2, INVENTORY_MASTER!$F:$F) 'CN1
=SUMIF(INVENTORY_MASTER!$A:$A, A2, INVENTORY_MASTER!$G:$G) 'CN2
=SUM(B2:D2) 'Tổng
Quản lý điều chuyển hàng giữa chi nhánh
Mỗi phiếu điều chuyển cần ghi đầy đủ:
| Cột | Mô tả |
|---|---|
| Transfer_ID | Mã phiếu duy nhất (VD: TR-20261115-001) |
| Date | Ngày điều chuyển |
| From_Branch | Chi nhánh xuất |
| To_Branch | Chi nhánh nhận |
| SKU | Mã sản phẩm |
| Quantity | Số lượng |
| Status | Pending/Confirmed/Received |
| Approved_By | Người duyệt |
| Note | Ghi chú |
Kiểm kê định kỳ (Stocktake)
'Công thức tính chênh lệch tồn kho (Variance):
=Physical_Count - System_Stock
'Tỷ lệ chính xác tồn kho:
=COUNTIF(Variance_Column,"0")/COUNTA(SKU_Column)
'Target: >98% accuracy
5. Báo Cáo Doanh Thu Theo Cửa Hàng
Bảng ghi nhận doanh số ngày (Branch File)
| Date | Invoice_No | SKU | Product_Name | Qty | Unit_Price | Discount | Total | Staff | Payment |
|---|---|---|---|---|---|---|---|---|---|
| 2026-11-15 | INV-001 | AT001-TRG-M | Áo Thun Basic Trắng M | 2 | 199000 | 0 | 398000 | Nguyễn A | QR |
| 2026-11-15 | INV-001 | QJ002-DEN-L | Quần Jean Slim Đen L | 1 | 459000 | 20000 | 439000 | Nguyễn A | QR |
Dashboard doanh thu theo chi nhánh
'Doanh thu hôm nay (mỗi chi nhánh):
=SUMIF(SALES_DAILY!$A:$A,TODAY(),SALES_DAILY!$H:$H)
'So sánh với cùng kỳ tháng trước:
=SUMIFS(SALES_DAILY!$H:$H,SALES_DAILY!$A:$A,">="&DATE(YEAR(TODAY()),MONTH(TODAY())-1,1),SALES_DAILY!$A:$A,"<="&EOMONTH(TODAY(),-1))
'% tăng trưởng:
=(ThisMonth-LastMonth)/LastMonth*100
Phân tích Top sản phẩm bán chạy
'Dùng QUERY để lấy top 10 SKU bán chạy nhất:
=QUERY(SALES_DAILY!A:H,
"SELECT C, D, SUM(E), SUM(H)
WHERE A >= date '"&TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1),"yyyy-mm-dd")&"'
GROUP BY C, D
ORDER BY SUM(H) DESC
LIMIT 10
LABEL SUM(E) 'SL Bán', SUM(H) 'Doanh Thu'")
Phân tích theo danh mục sản phẩm
'Doanh thu theo category:
=QUERY({SALES_DAILY!C:H,PRODUCTS!B:B},
"SELECT Col6, SUM(Col6) GROUP BY Col6 ORDER BY SUM(Col6) DESC")
6. Quản Lý Hoạt Động Khuyến Mãi
Bảng quản lý chương trình KM
| Cột | Mô tả | Ví dụ |
|---|---|---|
| Promo_Code | Mã chương trình | SALE1121 |
| Promo_Name | Tên chương trình | Black Friday 11/11 |
| Start_Date | Ngày bắt đầu | 2026-11-11 |
| End_Date | Ngày kết thúc | 2026-11-13 |
| Type | Loại KM | Percentage/Fixed/Buy2Get1 |
| Value | Giá trị giảm | 30 (30% hoặc 30K) |
| Min_Order | Đơn hàng tối thiểu | 500000 |
| Apply_To | Áp dụng cho | ALL/Category/SKU |
| Branch | Chi nhánh áp dụng | ALL/CN1/CN2 |
| Budget | Ngân sách KM | 50000000 |
| Used_Amount | Đã dùng | Auto |
| Status | Trạng thái | Active/Expired/Paused |
Công thức tính giá sau khuyến mãi
'Tính giá sau KM (áp dụng KM đang active):
=IF(TODAY()>=PROMOTIONS!C2,IF(TODAY()<=PROMOTIONS!D2,
IF(PROMOTIONS!E2="Percentage", Price*(1-PROMOTIONS!F2/100),
IF(PROMOTIONS!E2="Fixed", Price-PROMOTIONS!F2, Price)),
Price), Price)
'Kiểm tra KM đang active:
=IF(AND(TODAY()>=C2,TODAY()<=D2,F2>0),"ACTIVE","INACTIVE")
Phân tích hiệu quả khuyến mãi
'Doanh thu trong kỳ KM vs. cùng kỳ không KM:
'Tính doanh thu trung bình ngày không có KM:
Avg_Daily_NoPromo = AVERAGEIFS(SALES!Revenue, SALES!Date, "<"&Promo_Start)
'Doanh thu trung bình ngày có KM:
Avg_Daily_WithPromo = (Total_Promo_Revenue / Promo_Days)
'Lift factor:
Lift = Avg_Daily_WithPromo / Avg_Daily_NoPromo
'ROI khuyến mãi:
ROI = (Incremental_Revenue - Promo_Cost) / Promo_Cost * 100
7. KPI Nhân Viên Bán Hàng
Khung KPI cho nhân viên thời trang
| KPI | Mô tả | Target | Trọng số |
|---|---|---|---|
| Doanh số cá nhân | Tổng doanh thu do NV tạo ra | 15M/tháng | 40% |
| Số đơn hàng | Số hóa đơn xử lý | 80 đơn/tháng | 15% |
| Giá trị trung bình/đơn | AOV - Average Order Value | 400K+ | 15% |
| Tỷ lệ upsell | % đơn hàng có thêm sản phẩm | >30% | 15% |
| Chuyên cần | Tỷ lệ đi làm đúng giờ | >95% | 10% |
| Customer satisfaction | Điểm đánh giá từ khách | >4.5/5 | 5% |
Bảng tracking KPI tự động
'Doanh số cá nhân trong tháng:
=SUMIFS(SALES_DAILY!$H:$H,
SALES_DAILY!$I:$I, Staff_Name,
SALES_DAILY!$A:$A, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),
SALES_DAILY!$A:$A, "<="&TODAY())
'Số đơn hàng:
=COUNTIFS(SALES_DAILY!$I:$I, Staff_Name,
SALES_DAILY!$A:$A, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1))
'AOV (Average Order Value):
=IFERROR(Doanh_So/So_Don, 0)
'KPI score tổng hợp (0-100):
=MIN(Doanh_So/Target_DS,1)*40 + MIN(So_Don/Target_Don,1)*15 +
MIN(AOV/Target_AOV,1)*15 + Upsell_Rate*15 + Chuyen_Can*10 + CSAT*5
Bảng xếp hạng nhân viên
'Xếp hạng trong chi nhánh:
=RANK(KPI_Score, KPI_Range, 0)
'Top performer badge:
=IF(RANK(KPI_Score,KPI_Range,0)=1,"🥇 Champion",
IF(RANK(KPI_Score,KPI_Range,0)=2,"🥈 Runner-up",
IF(RANK(KPI_Score,KPI_Range,0)=3,"🥉 3rd","")))
8. Báo Cáo Tuần & Tháng Tự Động
Dashboard báo cáo tuần
'Tuần hiện tại (Thứ 2 - Chủ nhật):
Week_Start = TODAY()-WEEKDAY(TODAY(),2)+1
Week_End = Week_Start + 6
'Doanh thu tuần này toàn chuỗi:
=SUMPRODUCT((SALES!Date>=Week_Start)*(SALES!Date<=Week_End)*SALES!Revenue)
'So với tuần trước:
Prev_Week_Start = Week_Start - 7
Prev_Week_End = Week_End - 7
=SUMPRODUCT((SALES!Date>=Prev_Week_Start)*(SALES!Date<=Prev_Week_End)*SALES!Revenue)
'% thay đổi:
=(This_Week - Prev_Week) / Prev_Week * 100
Báo cáo tháng tự động
Tạo sheet MONTHLY_REPORT với các section:
- Executive Summary: Tổng doanh thu, lợi nhuận gộp, so sánh tháng trước, % hoàn thành KPI
- Doanh thu theo chi nhánh: Bảng so sánh, biểu đồ cột
- Top sản phẩm: Top 10 bán chạy, top 10 doanh thu cao nhất
- Tồn kho: Hàng chậm luân chuyển, cảnh báo hết hàng, đề xuất nhập
- Nhân sự: Bảng xếp hạng KPI, doanh số theo nhân viên
- Khuyến mãi: Hiệu quả các chương trình KM trong tháng
Gửi báo cáo qua email tự động (Google Apps Script)
// Gửi báo cáo tóm tắt cuối ngày qua email:
function sendDailyReport() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const report = ss.getSheetByName('DAILY_REPORT');
const today = Utilities.formatDate(new Date(), 'Asia/Ho_Chi_Minh', 'dd/MM/yyyy');
const totalRevenue = report.getRange('B2').getValue();
const branchBreakdown = report.getRange('A5:C10').getValues();
let body = `Báo cáo ngày ${today}
Tổng doanh thu: ${formatCurrency(totalRevenue)}
Theo chi nhánh:
`;
branchBreakdown.forEach(row => {
body += `- ${row[0]}: ${formatCurrency(row[1])} (${row[2]}%)
`;
});
MailApp.sendEmail({
to: 'manager@company.com',
subject: `[SheetStore] Báo cáo ngày ${today}`,
body: body
});
}
// Trigger: Mỗi ngày lúc 23:00
// ScriptApp.newTrigger('sendDailyReport').timeBased().atHour(23).everyDays(1).create();
9. Công Thức Và Automation Key
Các công thức quan trọng nhất
| Công thức | Mục đích |
|---|---|
| IMPORTRANGE | Kéo dữ liệu từ branch files vào master |
| QUERY với GROUP BY | Tổng hợp doanh thu theo nhiều chiều |
| SUMPRODUCT | Tính toán có nhiều điều kiện phức tạp |
| ARRAYFORMULA | Áp dụng công thức cho toàn cột tự động |
| SPARKLINE | Mini chart xu hướng trong ô |
| CONDITIONAL FORMATTING | Cảnh báo tồn kho, KPI thấp |
Sparkline xu hướng doanh thu 7 ngày
=SPARKLINE(
QUERY(SALES!A:H,
"SELECT SUM(H) WHERE A >= date '"&TEXT(TODAY()-6,"yyyy-mm-dd")&"' GROUP BY A ORDER BY A"),
{"charttype","line";"color","#4CAF50";"linewidth",2}
)
Công thức dự báo tồn kho cần nhập
'Số ngày tồn kho còn lại (Days of Stock):
=Current_Stock / Avg_Daily_Sales
'Số lượng cần đặt nhập (nếu lead time = 7 ngày):
=MAX(0, (Avg_Daily_Sales * (Lead_Time + Safety_Days)) - Current_Stock)
'Ví dụ: Tồn 20, bán TB 5/ngày, lead time 7 ngày, safety 3 ngày:
=MAX(0, (5 * (7+3)) - 20) = MAX(0, 50-20) = 30 → Cần đặt 30 cái
10. Khi Nào Cần Nâng Cấp Lên Phần Mềm Chuyên Nghiệp?
Google Sheets hoạt động tốt cho chuỗi 2-5 cửa hàng với 100-200 giao dịch/ngày. Khi nào cần chuyển lên phần mềm chuyên nghiệp?
Dấu hiệu cần nâng cấp
- Sheets bị chậm, lag khi mở (>50.000 dòng dữ liệu)
- Hơn 10 chi nhánh, IMPORTRANGE bắt đầu không ổn định
- Cần tích hợp với máy POS, máy in hóa đơn
- Yêu cầu barcode scanning cho nhập/xuất kho
- Cần phân quyền chi tiết hơn (nhân viên chỉ xem CN của mình)
- Audit trail và compliance nghiêm ngặt
- Muốn app mobile native cho nhân viên
Giải pháp chuyên nghiệp cho chuỗi thời trang
| Phần mềm | Phù hợp cho | Chi phí/tháng |
|---|---|---|
| KiotViet | Chuỗi 5-50 cửa hàng | từ 500K |
| Sapo | Chuỗi + online (Shopee, TikTok) | từ 299K |
| Haravan | Fashion brand có ecommerce | từ 500K |
| MISA AMIS | Chuỗi lớn cần ERP đầy đủ | từ 1.5M |
Kết Luận
Google Sheets là công cụ mạnh mẽ và tiết kiệm chi phí để quản lý chuỗi cửa hàng thời trang giai đoạn đầu. Với hệ thống thiết kế đúng — Master File + Branch Files + IMPORTRANGE automation — bạn có thể kiểm soát tồn kho, doanh thu, KPI nhân viên và khuyến mãi của 5-7 cửa hàng mà không cần đầu tư phần mềm đắt tiền.
Hãy bắt đầu từ một chi nhánh, hoàn thiện quy trình, rồi nhân rộng ra toàn chuỗi. Khi dữ liệu bắt đầu chậm hoặc yêu cầu tính năng phức tạp hơn, đó là lúc chuyển sang phần mềm chuyên nghiệp tại SheetStore.
Tài Nguyên Bổ Sung
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.