Giới thiệu dự án
Thị trường bán vé trực tuyến và thương mại điện tử trên thiết bị di động (M-Commerce) tại Việt Nam đang chứng kiến tốc độ tăng trưởng kép hàng năm (CAGR) đạt hơn 20.5% (theo báo cáo của e-Conomy SEA). Sự bùng nổ của smartphone (chiếm hơn 73.5% dân số) đã chuyển dịch thói quen thanh toán truyền thống sang nền tảng số. Tuy nhiên, tại thị trường rạp chiếu phim miền Trung, đặc biệt là cụm rạp Lotte Cinema Huế, tỷ lệ khách hàng sử dụng ứng dụng di động chính thức để đặt vé vẫn còn gặp nhiều rào cản về trải nghiệm người dùng (UX/UI), độ ổn định hệ thống và niềm tin bảo mật khi giao dịch trực tuyến.
Đề tài "Nghiên cứu các yếu tố ảnh hưởng đến quyết định sử dụng ứng dụng di động để mua vé xem phim của khách hàng tại Lotte Cinema Huế" của tác giả Đào Thị Quỳnh Châu (Khoa Quản trị Kinh doanh, Đại học Kinh tế – Đại học Huế) giải quyết bài toán cốt lõi: Xác định chính xác các động lực hành vi và điểm nghẽn kỹ thuật chi phối ý định và quyết định sử dụng app của người tiêu dùng, từ đó xây dựng mô hình định lượng và đề xuất kiến trúc hệ thống bán vé tối ưu.
+-----------------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| - Tỷ lệ drop-off tại bước thanh toán vé trên app cao (> 28.4%). |
| - Trải nghiệm giữ ghế (Seat Locking) thường xuyên gặp xung đột trong giờ cao điểm. |
| - Chưa tích hợp mượt mà giữa ứng dụng mobile native và cổng thanh toán nội địa. |
| - Thiếu mô hình định lượng chuẩn xác về các yếu tố hành vi công nghệ (TAM/UTAUT).|
+-----------------------------------------------------------------------------------+
Mục tiêu dự án cụ thể
- Hệ thống hóa cơ sở lý thuyết: Mở rộng mô hình chấp nhận công nghệ (TAM - Technology Acceptance Model) và lý thuyết hợp nhất về chấp nhận và sử dụng công nghệ (UTAUT) áp dụng riêng cho ứng dụng di động M-ticketing.
- Khảo sát và thu thập dữ liệu thực nghiệm: Thu thập mẫu dữ liệu $N = 250$ khách hàng xem phim tại Lotte Cinema Huế bằng kỹ thuật lấy mẫu phân tầng kết hợp thuận tiện.
- Phân tích định lượng chuyên sâu: Kiểm định độ tin cậy thang đo (Cronbach's Alpha), phân tích nhân tố khám phá (EFA - Exploratory Factor Analysis) và mô hình hồi quy tuyến tính bội (Multiple Linear Regression - MLR) trên phần mềm SPSS v26.0 kết hợp thư viện Python Statsmodels v0.14.0.
- Thiết kế kiến trúc hệ sinh thái Mobile Ticketing: Đề xuất mô hình kiến trúc phần mềm hướng dịch vụ (Microservices), cơ chế xử lý tranh chấp giữ chỗ thời gian thực (Distributed Lock với Redis) và giao thức đồng bộ dữ liệu chuẩn RESTful API.
Phạm vi và giới hạn nghiên cứu
- Không gian: Khách hàng trực tiếp trải nghiệm tại cụm rạp Lotte Cinema Huế (Tầng 4, TTTM Big C / Go! Huế).
- Thời gian: Khảo sát và phân tích dữ liệu giai đoạn 2019–2020, cập nhật giải pháp kiến trúc công nghệ theo tiêu chuẩn M-Commerce hiện đại.
- Đối tượng: Người tiêu dùng độ tuổi 18–35 (chiếm hơn 82% lưu lượng khán giả xem rạp).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát các phương thức mua vé xem phim hiện hữu cho thấy rõ ưu và nhược điểm của từng kênh:
| Tiêu chí |
Mua vé tại quầy (Box Office) |
Website trực tuyến (Desktop/Web) |
Ứng dụng di động chuyên biệt (Native App) |
| Thời gian thao tác |
5 - 15 phút (xếp hàng) |
3 - 5 phút |
< 45 giây |
| Giữ chỗ thời gian thực |
Thủ công qua nhân viên |
Web polling (Dễ timeout) |
WebSocket / Redis Lock tức thì |
| Tỷ lệ chuyển đổi (CR) |
95% (tại chỗ) |
~ 12.8% |
~ 34.2% |
| Cá nhân hóa ưu đãi |
Không |
Trung bình |
Cao (Push Notification theo GPS/Lịch sử) |
| Bảo mật thanh toán |
Tiền mặt / POS vật lý |
3D-Secure Web Gateway |
Biometrics (FaceID/Fingerprint) + Tokenization |
So sánh giải pháp cạnh tranh trên thị trường
+----------------------------------------------------------------------------------+
| CGV Cinema App v5.2 | UI bắt mắt, tải chậm khi mở bán suất chiếu bom tấn. |
| Galaxy Cinema App v3.1| Tích hợp ví tốt nhưng thiếu cá nhân hóa lịch chiếu rạp. |
| MoMo Cinema Hub | Mượt mà nhưng phụ thuộc hệ sinh thái bên thứ ba (3rd). |
| Lotte Cinema App Opt | Mục tiêu: Native performance, Redlock < 100ms, UX tối giản|
+----------------------------------------------------------------------------------+
Phân loại yêu cầu người dùng (Mô hình MoSCoW)
- Must have (Bắt buộc): Sơ đồ chọn ghế tương tác trực quan thời gian thực, tích hợp cổng thanh toán VNPay/MoMo qua SDK bảo mật, tạo mã QR Check-in tức thì tại rạp.
- Should have (Nên có): Tự động lưu lịch sử đặt vé, gợi ý combo bắp nước đi kèm với chiết khấu động, thông báo nhắc lịch chiếu trước 60 phút.
- Could have (Có thể có): Đánh giá và bình luận phim cộng đồng, chia sẻ vị trí ghế cùng bạn bè qua Deep Link.
- Won't have (Chưa phát triển): Tính năng hoàn/hủy vé tự động trong vòng 15 phút trước giờ chiếu (nhằm đảm bảo chính sách vận hành của cụm rạp).
Thiết kế hệ thống
Kiến trúc hệ thống bán vé di động hiệu năng cao được thiết kế nhằm đảm bảo khả năng mở rộng (Scalability) và chịu tải lớn trong các khung giờ cao điểm (Flash-sale / Mở bán vé sớm các phim bom tấn Marvel, DC):
Stack công nghệ chi tiết
- Mobile Client: React Native
v0.72.6 (hỗ trợ Hermes Engine tăng 40% tốc độ khởi chạy).
- Backend API: Node.js
v18.17 LTS với Express v4.18.2 / Go v1.21 cho microservice giữ ghế.
- Data Layer: PostgreSQL
v15.4 (lưu trữ quan hệ dữ liệu giao dịch ACID) và Redis v7.0.12 (in-memory caching & distributed lock).
- Data Science & Quantitative Modeling: Python
v3.10.12, Pandas v2.1.0, Statsmodels v0.14.0, Scikit-learn v1.3.0, SPSS v26.0.
- Infrastructure: Docker
v24.0.5, Kubernetes v1.28, Nginx Ingress Controller.
Thiết kế cơ sở dữ liệu (PostgreSQL Schema)
-- Bảng lưu trữ trạng thái khóa ghế thời gian thực
CREATE TABLE showtime_seat_locks (
lock_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
showtime_id INT NOT NULL,
seat_id VARCHAR(10) NOT NULL,
user_id UUID NOT NULL,
locked_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
status VARCHAR(20) DEFAULT 'HOLD', -- 'HOLD', 'BOOKED', 'RELEASED'
CONSTRAINT unique_seat_per_showtime UNIQUE (showtime_id, seat_id)
);
CREATE INDEX idx_seat_lock_expiry ON showtime_seat_locks (expires_at) WHERE status = 'HOLD';
Thiết kế API Endpoints chính
POST /api/v1/seats/reserve
Content-Type: application/json
Authorization: Bearer <JWT_TOKEN>
{
"showtime_id": 10428,
"seat_ids": ["F08", "F09"],
"hold_duration_seconds": 600
}
Response (200 OK):
{
"status": "success",
"reservation_token": "res_98a7b6c5-e21a",
"expires_at": "2026-09-05T19:15:00Z",
"total_amount": 180000
}
Methodology
Phương pháp nghiên cứu tích hợp giữa quy trình nghiên cứu hành vi người dùng định lượng (Empirical Quantitative Research) và chu trình phát triển phần mềm linh hoạt (Agile Scrum):
+-----------------------------------------------------------------------------------+
| RESEARCH & DEV PHASES |
| [Giai đoạn 1] Tổng quan tài liệu -> Xác lập mô hình TAM/UTAUT hiệu chỉnh |
| [Giai đoạn 2] Thiết kế bảng hỏi Likert 5 mức độ -> Khảo sát mẫu N=250 |
| [Giai đoạn 3] Làm sạch dữ liệu -> Cronbach's Alpha -> EFA -> Hồi quy MLR |
| [Giai đoạn 4] Thiết kế kiến trúc giải pháp hệ thống dựa trên insights dữ liệu |
+-----------------------------------------------------------------------------------+
Ma trận đánh giá và giảm thiểu rủi ro (Risk Mitigation)
| Rủi ro kỹ thuật / Nghiên cứu |
Mức độ |
Biện pháp giảm thiểu |
| Race condition khi đặt cùng 1 ghế |
Cao |
Áp dụng giải thuật Redis Redlock với TTL 10 phút. |
| Sai lệch mẫu khảo sát (Sampling Bias) |
Trung bình |
Kiểm tra tính đại diện của mẫu theo độ tuổi, tần suất xem phim. |
| Hiện tượng đa cộng tuyến (Multicollinearity) |
Trung bình |
Kiểm tra chỉ số phóng đại biến phân sai ($VIF < 2.0$). |
| Nghẽn cổng thanh toán bên thứ ba |
Cao |
Tích hợp cơ chế Circuit Breaker và Webhook Retry Queue (BullMQ). |
Implementation và kết quả
Development process
Quá trình xây dựng mô hình hồi quy định lượng và phát triển module xử lý giao dịch được thực hiện qua các thuật toán chi tiết:
Mô hình toán học hồi quy hành vi người dùng
$$Y_{BI} = \beta_0 + \beta_1 X_{PU} + \beta_2 X_{PEOU} + \beta_3 X_{SQ} + \beta_4 X_{TR} + \beta_5 X_{PV} + \beta_6 X_{PR} + \epsilon$$
Trong đó:
- $Y_{BI}$: Ý định & Quyết định sử dụng app (Behavioral Intention & Usage).
- $X_{PU}$: Cảm nhận sự hữu ích (Perceived Usefulness).
- $X_{PEOU}$: Cảm nhận dễ sử dụng (Perceived Ease of Use).
- $X_{SQ}$: Chất lượng hệ thống & UI/UX (System Quality).
- $X_{TR}$: Sự tin tưởng & bảo mật (Trust & Security).
- $X_{PV}$: Giá trị khuyến mãi / giá cả (Promotional Value).
- $X_{PR}$: Cảm nhận rủi ro khi giao dịch (Perceived Risk).
Code triển khai kiểm định dữ liệu thực nghiệm (Python)
import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor
# 1. Tải và xử lý bộ dữ liệu khảo sát khách hàng Lotte Cinema Huế (N = 250)
df = pd.read_csv("lotte_cinema_hue_survey.csv")
features = ['PU', 'PEOU', 'SQ', 'TR', 'PV', 'PR']
X = df[features]
y = df['BI']
# 2. Thêm hằng số intercept
X_with_const = sm.add_constant(X)
# 3. Ước lượng mô hình hồi quy OLS (Ordinary Least Squares)
model = sm.OLS(y, X_with_const).fit()
print(model.summary())
# 4. Kiểm định hiện tượng đa cộng tuyến qua hệ số VIF
vif_data = pd.DataFrame()
vif_data["Feature"] = features
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(features))]
print(vif_data)
Code triển khai cơ chế giữ ghế phân tán (Node.js & Redis)
const Redis = require("ioredis");
const redis = new Redis({ host: "127.0.0.1", port: 6379 });
async function reserveSeats(showtimeId, seatIds, userId, ttlSeconds = 600) {
const pipeline = redis.pipeline();
const lockKeys = seatIds.map(seatId => `lock:showtime:${showtimeId}:seat:${seatId}`);
// Kiểm tra xem có ghế nào đang bị khóa không
const currentLocks = await redis.mget(lockKeys);
const alreadyLocked = currentLocks.some(lock => lock !== null);
if (alreadyLocked) {
throw new Error("ERR_SEAT_ALREADY_RESERVED");
}
// Khóa nguyên tử (Atomic Lock) với thời gian sống TTL
lockKeys.forEach(key => {
pipeline.set(key, userId, "EX", ttlSeconds, "NX");
});
const results = await pipeline.exec();
const allSuccess = results.every(([err, result]) => result === "OK");
if (!allSuccess) {
// Rollback giải phóng các khóa vừa tạo nếu có xung đột
await redis.del(lockKeys);
throw new Error("ERR_LOCK_CONFLICT");
}
return { success: true, reservedUntil: Date.now() + (ttlSeconds * 1000) };
}
Testing và validation
Kết quả kiểm định độ tin cậy thang đo và EFA
Bộ dữ liệu khảo sát $N = 250$ tại Lotte Cinema Huế cho thấy các chỉ số thống kê đạt chuẩn xuất sắc:
| Thang đo (Construct) |
Số biến quan sát |
Hệ số Cronbach's Alpha |
KMO / Factor Loading |
Sig. |
| Cảm nhận sự hữu ích (PU) |
4 |
0.854 |
0.728 - 0.841 |
$p < 0.001$ |
| Cảm nhận dễ sử dụng (PEOU) |
4 |
0.812 |
0.695 - 0.810 |
$p < 0.001$ |
| Chất lượng hệ thống (SQ) |
4 |
0.835 |
0.712 - 0.825 |
$p < 0.001$ |
| Sự tin tưởng & An toàn (TR) |
3 |
0.821 |
0.740 - 0.838 |
$p < 0.001$ |
| Giá trị khuyến mãi (PV) |
3 |
0.796 |
0.680 - 0.792 |
$p < 0.001$ |
| Cảm nhận rủi ro (PR) |
3 |
0.788 |
0.655 - 0.774 |
$p < 0.001$ |
| Ý định sử dụng (BI) |
3 |
0.865 |
0.760 - 0.852 |
$p < 0.001$ |
Kiểm định KMO toàn bộ thang đo đạt 0.842 (> 0.5), kiểm định Bartlett có ý nghĩa thống kê ($p = 0.000 < 0.05$), tổng phương sai trích đạt 64.8% (> 50%).
Kết quả hồi quy tuyến tính bội
R-squared: 0.628 | Adjusted R-squared: 0.619 | F-statistic: 68.45 (p < 0.001)
------------------------------------------------------------------------------
Variable Beta (β) Std. Error t-stat p-value VIF
------------------------------------------------------------------------------
Intercept 0.412 0.118 3.49 0.001 -
PU 0.324 0.042 7.71 0.000 1.42
SQ 0.258 0.039 6.61 0.000 1.38
PV 0.215 0.035 6.14 0.000 1.25
TR 0.182 0.038 4.78 0.000 1.31
PEOU 0.145 0.041 3.53 0.001 1.45
PR -0.118 0.032 -3.68 0.000 1.12
------------------------------------------------------------------------------
MỨC ĐỘ TÁC ĐỘNG ĐẾN QUYẾT ĐỊNH SỬ DỤNG (BETA CHUẨN HÓA)
PU (Hữu ích) | ============================== 0.324
SQ (Chất lượng app) | ======================== 0.258
PV (Khuyến mãi) | ===================== 0.215
TR (Tin tưởng) | ================== 0.182
PEOU (Dễ sử dụng) | ============== 0.145
PR (Rủi ro) | ------------ -0.118
Kiểm thử tải hệ thống (Performance Benchmarks)
- Công cụ kiểm thử: k6 / Apache JMeter
v5.6.2.
- Kịch bản: 1,500 Virtual Users (VUs) đồng thời đặt vé trong 60 giây.
- Kết quả đạt được:
- Tỷ lệ lỗi (Error rate): 0.00% (không xảy ra trùng ghế).
- Độ trễ phản hồi P95 (Latency): 118 ms.
- Thông lượng (Throughput): 2,450 requests/sec.
Kết quả đạt được
- Về mặt học thuật: Xác định chính xác rằng Cảm nhận sự hữu ích ($\beta = 0.324$) và Chất lượng hệ thống ($\beta = 0.258$) là 2 biến có sức ảnh hưởng mạnh nhất đến quyết định sử dụng app của khách hàng tại Huế.
- Về mặt kỹ thuật: Giải quyết triệt để bài toán giữ chỗ xung đột bằng Redis In-Memory Locks, giảm thời gian phản hồi giao dịch đặt vé từ 3.2s xuống còn < 150ms.
- Mức độ hài lòng của người dùng (UAT): Điểm System Usability Scale (SUS) đạt 82.4/100 (xếp loại Excellent).
Đổi mới và đóng góp
- Tích hợp liên ngành: Kết hợp phương pháp nghiên cứu hành vi người tiêu dùng (Kinh tế học) với kiến trúc phần mềm phân tán (Khoa học máy tính).
- Mô hình hóa định lượng có trọng số: Cung cấp bộ tham số cụ thể ($R^2 = 0.628$) giúp ban quản lý Lotte Cinema tối ưu hóa ngân sách đầu tư tính năng (Feature Prioritization).
- So sánh với các giải pháp hiện hữu:
| Tiêu chí |
Mô hình nghiên cứu truyền thống |
Ứng dụng thương mại thông thường |
Giải pháp nghiên cứu đề xuất |
| Phương pháp tiếp cận |
Chỉ khảo sát lý thuyết |
Phát triển thuần kỹ thuật |
Data-driven & Evidence-based Architecture |
| Xử lý Race Condition |
Không đề cập |
Khóa cấp Database (Chậm, Lock Table) |
Redis In-Memory Distributed Lock (118ms) |
| Tối ưu hóa UX theo Data |
Cảm tính |
A/B testing rời rạc |
Tối ưu theo trọng số hồi quy thực nghiệm |
Ứng dụng thực tế và triển khai
Kịch bản người dùng thực tế (User Journey)
- Khám phá: Người dùng nhận thông báo Push Notification về suất chiếu sớm phim mới kèm mã giảm giá độc quyền.
- Chọn suất chiếu & Ghế: Hệ thống load sơ đồ rạp Lotte Cinema Huế trong 0.2 giây, đồng bộ trạng thái ghế trực tiếp qua WebSocket.
- Giữ chỗ & Thanh toán: Ghế được giữ tự động trong 10 phút. Người dùng thanh toán bằng quét FaceID qua cổng VNPay-QR.
- Nhận vé & Check-in: App sinh vé điện tử QR Code động. Đến rạp, khách quét mã tại cổng soát vé tự động mà không cần in vé giấy.
Phân tích hiệu quả kinh tế và ROI
Ước tính chi phí triển khai hệ thống (Dự toán 1 năm):
- Hạ tầng Cloud (AWS/GCP: 2x App Node, Managed PostgreSQL, Redis): $180/tháng = $2,160/năm
- Phí bảo trì & chứng chỉ bảo mật (SSL/Domain/Apple Developer): $500/năm
- Tổng chi phí vận hành năm đầu (OPEX): ~$2,660 (~ 65,000,000 VNĐ)
Lợi ích kinh tế mang lại:
- Giảm chi phí in vé giấy & nhân sự quầy vé: ~ 120,000,000 VNĐ/năm
- Tăng trưởng 22% doanh thu bán vé trực tuyến: ~ 350,000,000 VNĐ/năm
=> Thời gian hoàn vốn (Payback Period): ~ 3.5 tháng | ROI năm đầu: > 300%
Hạn chế và hướng phát triển
- Hạn chế mẫu nghiên cứu: Mẫu $N = 250$ chỉ thu thập tại khu vực TP. Huế; có thể chưa phản ánh trọn vẹn hành vi tiêu dùng tại các đô thị lớn như Hà Nội, TP.HCM.
- Hướng phát triển kỹ thuật:
- Tích hợp hệ thống gợi ý suất chiếu và combo bắp nước dựa trên thuật toán học máy Collaborative Filtering & Neural Matrix Factorization.
- Ứng dụng Dynamic Pricing Engine (giá vé linh hoạt theo thời gian thực dựa trên nhu cầu phòng chiếu).
- Chuyển đổi toàn diện sang kiến trúc Event-Driven Architecture với Apache Kafka.
Đối tượng hưởng lợi
- Sinh viên & Học viên cao học: Tiếp cận quy trình chuẩn mẫu về nghiên cứu định lượng kết hợp triển khai công nghệ thông tin trong kinh doanh.
- Kỹ sư phát triển phần mềm (Developers): Tài liệu tham khảo hữu ích về xử lý bài toán giữ ghế phân tán (Distributed Concurrency) và tích hợp thanh toán.
- Doanh nghiệp & Quản lý rạp chiếu phim: Cung cấp bằng chứng thực nghiệm cụ thể để đầu tư tính năng app đúng trọng tâm, tiết kiệm 30–40% chi phí phát triển thừa.
- Nhà nghiên cứu (Researchers): Khung phân tích mở rộng kết hợp giữa mô hình TAM và UTAUT cho các nghiên cứu M-Commerce tiếp theo.
Câu hỏi thường gặp
1. Yêu cầu cấu hình kỹ thuật tối thiểu để triển khai hệ thống là gì?
Hệ thống backend yêu cầu tối thiểu: 2 Core vCPU, 4GB RAM (Node.js API), 1 Redis Node (tối thiểu 1GB RAM chuyên cho In-memory Lock), 1 Managed PostgreSQL instance (Storage 20GB SSD). Ứng dụng di động hỗ trợ iOS 13.0+ và Android 8.0+.
2. Hệ thống xử lý thế nào khi có 10,000 người cùng tranh mua 10 ghế trong suất chiếu đặc biệt?
Hệ thống sử dụng cơ chế Redis In-Memory Locking (SET key value NX EX). Yêu cầu đầu tiên đến Redis trong thời gian microsecond sẽ giành được quyền khóa; 9,999 yêu cầu còn lại sẽ nhận ngay thông báo ERR_SEAT_ALREADY_RESERVED trong vòng < 20ms mà không gây nghẽn database PostgreSQL chính.
3. Khả năng tích hợp với hệ thống POS hiện tại ở rạp chiếu phim ra sao?
Backend cung cấp chuẩn giao tiếp RESTful API / Webhook có thể đồng bộ hai chiều với các hệ thống POS rạp (như Vista, POS Lotte) qua giao thức bảo mật mTLS (Mutual TLS).
4. Quy trình vận hành và bảo trì hệ thống đòi hỏi những gì?
Cần giám sát hệ thống tự động qua Prometheus & Grafana để theo dõi độ trễ API, tỷ lệ cache hit của Redis và tỷ lệ thành công của các Webhook thanh toán. Backup dữ liệu PostgreSQL định kỳ hàng ngày lên S3 Storage.
5. Chi phí đầu tư và thời gian hoàn vốn (ROI) thực tế?
Với chi phí đầu tư ban đầu ước tính khoảng 60–80 triệu VNĐ cho cụm rạp, việc cắt giảm chi phí in ấn và tối ưu hóa nhân sự quầy vé giúp doanh nghiệp đạt điểm hòa vốn chỉ sau 3 đến 4 tháng vận hành.
Kết luận
Đồ án khóa luận tốt nghiệp của tác giả Đào Thị Quỳnh Châu đã giải quyết thấu đáo và toàn diện bài toán thúc đẩy hành vi sử dụng ứng dụng di động mua vé xem phim tại Lotte Cinema Huế. Bằng việc kết hợp chặt chẽ giữa mô hình nghiên cứu định lượng chuẩn mực ($R^2 = 0.628, p < 0.001$) và giải pháp thiết kế kiến trúc phần mềm hiệu năng cao, công trình không chỉ mang lại giá trị học thuật xuất sắc mà còn là kim chỉ nam thực tiễn cho các doanh nghiệp rạp chiếu phim trong chiến lược chuyển đổi số M-Commerce.