Flash sale và khuyến mãi trên trang
Hai kiểu flash sale — giá sốc theo sản phẩm kiểu Shopee (giá sale, số suất, thanh đã bán) và mã giảm giá đưa ra trang bằng danh sách mã, đồng hồ đếm ngược, nhãn khuyến mãi.
Có hai kiểu flash sale, và chúng giải hai bài toán khác nhau:
- Flash sale theo sản phẩm (kiểu Shopee, Lazada) — trong một khung giờ, vài sản phẩm bán giá sốc, có số suất giới hạn, khách thấy giá gạch, "−X%" và thanh "Đã bán". Khách không phải gõ mã gì cả: giá sale được tính thẳng vào đơn. Xem phần ngay dưới đây.
- Flash sale bằng mã giảm giá — bạn tạo một mã, rồi đưa nó ra trang để khách thấy và bấm dùng. Xem nửa sau của trang này.
Flash sale theo sản phẩm
Tạo ở Quản lý → Flash sale (en: Manage → Flash sale), nằm cạnh Khuyến mãi. Mỗi chương trình có tên, giờ Bắt đầu và Kết thúc, công tắc Kích hoạt, và danh sách Sản phẩm áp dụng. Với từng sản phẩm (hoặc từng phiên bản — để Tất cả phiên bản nếu giá sale như nhau cho mọi phiên bản) bạn điền:
- Giá sale — phải thấp hơn giá gốc. Màn hình hiện giá gốc và phần trăm giảm ngay bên cạnh để bạn đối chiếu. Một "flash sale" đắt hơn giá thường là lỗi nhập liệu, nên máy chủ từ chối lưu.
- Số suất — tổng số sản phẩm bán với giá sale trong cả chương trình. Để
0là không giới hạn. - Giới hạn mỗi đơn — một đơn được mua tối đa bao nhiêu cái với giá sale. Để
0là không giới hạn.
Trạng thái tự tính theo giờ: Sắp diễn ra, Đang diễn ra, Đã kết thúc, hoặc Tắt khi chưa kích hoạt. Hết giờ hay hết suất thì sản phẩm tự về giá gốc — bạn không phải gỡ tay.
Mua quá giới hạn thì sao
Khách không bị chặn. Phần trong giới hạn tính giá sale, phần vượt tính giá gốc, và đơn ghi thành hai dòng để bạn thấy rõ. Ví dụ giới hạn mỗi đơn là 2, khách mua 3: 2 cái giá sale, 1 cái giá gốc. Số suất còn lại cũng chia như vậy — còn 1 suất mà khách mua 2 thì 1 cái giá sale, 1 cái giá gốc.
Số suất chỉ bị trừ khi đơn được ghi, không phải khi khách bỏ vào giỏ. Hai khách tranh suất cuối cùng thì chỉ một người được; người kia được báo giá vừa thay đổi và xem lại tổng tiền trước khi đặt lại — trang không bao giờ lặng lẽ tính đắt hơn con số khách vừa thấy. Đơn bị huỷ thì suất của nó được trả lại cho chương trình.
Có dùng thêm mã giảm giá được không
Tuỳ bạn, theo từng chương trình:
Cho phép dùng thêm mã giảm giá — Cho phép khách hàng dùng thêm mã giảm giá cùng với giá sale.
Mặc định tắt: giá sale đã là mức giảm, cộng thêm mã thì bạn có thể bán lỗ. Khi tắt, mã giảm giá vẫn dùng được cho các sản phẩm khác trong đơn — chỉ những cái đang tính giá sale là không được giảm thêm. Điều kiện đơn tối thiểu của mã vẫn tính trên cả đơn.
Một sản phẩm (hoặc phiên bản) không thể nằm trong hai chương trình đang kích hoạt có thời gian trùng nhau — màn hình báo tên chương trình kia để bạn sửa.
Hiện flash sale lên trang
Hai phần tử trong nhóm Sản phẩm của bảng phần tử, đặt vào thẻ sản phẩm hoặc trang sản phẩm:
| Phần tử | en | Làm gì |
|---|---|---|
| Giá flash sale | Flash sale price | Hiện giá thường; khi sản phẩm đang flash sale thì đổi sang giá sale, gạch giá gốc và hiện −X% |
| Tiến độ flash sale | Flash sale progress | Ẩn cho tới khi sản phẩm vào flash sale; khi đó hiện thanh đã bán / số suất, một câu báo, và đồng hồ đếm ngược nhỏ |
Dùng Giá flash sale thay cho Hiển thị giá trên thẻ sản phẩm. Nó hiện giá thường khi không có sale, nên bạn không phải đổi trang khi chương trình kết thúc.
Câu báo của thanh tiến độ có ba mức, sửa được ở phần cài đặt: "Đã bán" kèm số lượng, "Sắp cháy hàng" khi đã bán từ 80% số suất, và "Đã hết suất". Sản phẩm không giới hạn suất thì không có thanh, chỉ có số đã bán.
Cả hai phần tử lấy số liệu khi khách mở trang và đổi đúng lúc hết giờ theo giờ máy chủ, nên số "Đã bán" luôn là số mới — bạn không cần xuất bản lại trang khi sửa chương trình.
Khối "Flash sale đang diễn ra"
Cách nhanh nhất: kéo hàng Giá flash sale ra và chọn thẻ thứ hai — cả một khối gồm tiêu đề, đồng hồ đếm ngược và lưới sản phẩm, mỗi thẻ đã có giá flash sale, thanh tiến độ và nút thêm vào giỏ.
Nếu muốn tự dựng, hai chỗ cần biết:
- Danh sách sản phẩm có nguồn Flash sale đang diễn ra — lưới tự hiện đúng những sản phẩm đang được sale. Không có chương trình nào chạy thì danh sách hiện trạng thái trống của nó.
- Đồng hồ đếm ngược có nguồn Flash sale — đếm tới giờ kết thúc của chương trình đang chạy, và tự theo khi bạn lùi hay kéo dài giờ kết thúc.
Điều dễ vấp
Trong ngăn kéo giỏ hàng, dòng sản phẩm nằm trọn trong suất sale hiện giá sale. Nhưng một dòng vừa có phần giá sale vừa có phần giá gốc — khách mua quá giới hạn mỗi đơn, hoặc suất chỉ còn đủ cho một phần — hiện đơn giá gốc, vì một đơn giá duy nhất không nói đúng được dòng đó. Tạm tính và số tiền khách thật sự trả vẫn tính đúng từng phần, nên con số cuối cùng luôn thấp hơn hoặc bằng những gì dòng đó gợi ý, không bao giờ cao hơn.
Flash sale bằng mã giảm giá
Một flash sale trên trang thường gồm bốn thứ: khách thấy mã, thấy thời gian còn lại, bấm để dùng mã, và thấy giá giảm trước khi đặt. Mỗi thứ là một phần tử riêng trên bảng phần tử:
| Phần tử | en | Nhóm |
|---|---|---|
| Danh sách mã giảm giá | Voucher list | Gian hàng (Storefront) |
| Đếm ngược | Countdown | Gian hàng (Storefront) |
| Nhãn khuyến mãi | Sale badge | Sản phẩm (Product) |
| Ô mã giảm giá | Discount code box | Trình dựng form → Cơ bản |
Bản thân mã giảm giá vẫn tạo ở Quản lý → Khuyến mãi — xem Mã khuyến mãi. Các phần tử ở đây chỉ hiển thị mã; việc mã có được trừ vào đơn hay không vẫn do trang đó quyết định.
Bước đầu tiên: cho mã hiện công khai
Danh sách mã và đồng hồ đếm ngược không tự thấy mã nào cả. Mở mã trong Quản lý → Khuyến mãi và bật:
Hiển thị công khai — Mã sẽ xuất hiện trong danh sách khuyến mãi công khai trên cửa hàng — ai mở cửa hàng cũng thấy được mã này.
Mặc định công tắc này tắt, và đó là chủ ý: một mã gửi riêng qua email hay cho một KOL mà tự dưng hiện lên trang chủ thì không còn là mã riêng nữa. Chỉ mã nào bạn bật tay mới ra ngoài.
Có hai loại mã không bật được, và giao diện sẽ nói lý do:
- Mã dùng một lần — người đầu tiên nhìn thấy sẽ dùng mất trước khi người khác kịp dùng.
- Mã giới hạn cho thành viên cụ thể — tắt giới hạn đó trước nếu muốn hiển thị công khai.
Mã hiện trên trang khi nó đang chạy: công tắc Đang chạy bật, đã tới ngày Bắt đầu và chưa qua ngày Kết thúc. Mã Đã lên lịch chưa hiện, mã Hết hạn tự biến mất — bạn không phải gỡ tay khi sale kết thúc.
Danh sách mã giảm giá
Mỗi mã công khai là một thẻ: mã, tên nội bộ, mức giảm ("Giảm 20%"), điều kiện đơn tối thiểu nếu có, và nút Áp dụng. Danh sách được tải khi khách mở trang, nên một mã bạn vừa bật hiện ngay ở lần tải sau — không cần xuất bản lại trang.
Khi khách bấm Áp dụng trên thẻ, điều xảy ra tùy vào trang:
- Trang có Ô mã giảm giá (ở bất kỳ đâu trên trang, không cần nằm cạnh danh sách): mã được điền vào ô đó và giá tính lại ngay, như thể khách tự gõ.
- Trang không có ô đó: mã được sao chép vào bộ nhớ tạm, và thẻ báo đã sao chép. Khách dán nó ở trang thanh toán sau.
Vì vậy cách dựng hay nhất cho một landing page flash sale là đặt danh sách mã cùng trang với biểu mẫu đặt hàng — khách bấm một lần là xong.
Không có mã công khai nào thì danh sách hiện dòng trống bạn đặt trong nhóm Thông báo — viết nó như "hiện chưa có mã", không phải như một lỗi.
Đồng hồ đếm ngược
Bốn ô Ngày / Giờ / Phút / Giây, nhảy từng giây. Với flash sale theo sản phẩm, bật nguồn Flash sale (xem phần trên). Với mã giảm giá, có hai cách cho nó biết đếm tới đâu, ở nhóm Nội dung:
Kết thúc — mốc kết thúc của bộ đếm. Mã liên kết — nếu trỏ tới một mã đang công khai có ngày kết thúc, mốc đó sẽ được dùng thay.
Nên dùng Mã liên kết cho flash sale. Khi bạn lùi hay kéo dài ngày kết thúc của mã trong Quản lý → Khuyến mãi, đồng hồ tự đổi theo; không có nó, bạn phải nhớ sửa cả trang lẫn mã, và một ngày nào đó sẽ quên — đồng hồ nói "còn 2 giờ" trong khi mã đã hết hạn.
Mốc Kết thúc vẫn nên điền, vì nó là lưới an toàn: nếu mã liên kết gõ sai, chưa bật Hiển thị công khai, hoặc không có ngày kết thúc, đồng hồ đếm về mốc này thay vì hiện sai.
Đồng hồ chạy theo giờ máy chủ, không theo đồng hồ trên máy khách. Khách chỉnh
giờ điện thoại cũng không làm sale "còn lâu hơn". Trong tích tắc trước khi trang
tải xong, các ô để trống chứ không hiện 00 — hiện 00:00:00 sẽ đọc như "đã hết"
trước khi có gì chạy.
Về 0 thì đồng hồ dừng và hiện dòng trong nhóm Thông báo (mặc định "Chương trình đã kết thúc").
Điều đồng hồ không làm: nó không tắt khuyến mãi. Việc mã hết hiệu lực là do ngày Kết thúc của chính mã — máy chủ từ chối mã quá hạn lúc đặt hàng, dù trang có hiện gì. Đồng hồ cũng không ẩn section hay đổi giá sản phẩm khi về 0.
Kích thước số, khoảng cách, bo góc và hai màu của các ô nằm ở nhóm Ô số, và chỉnh riêng được cho từng kích thước màn hình.
Nhãn khuyến mãi
Viên nhỏ "−20%" hoặc "Sale" đặt trên thẻ sản phẩm hoặc trang sản phẩm. Phần trăm được tính từ giá bán và giá so sánh của sản phẩm, không phải bạn gõ.
Sản phẩm không có giá so sánh, hoặc giá so sánh không cao hơn giá bán, thì nhãn không hiện gì — nó không bịa ra một mức giảm. Nếu nhãn không hiện, việc đầu tiên là kiểm tra giá so sánh của sản phẩm đó.
Nhãn này đi theo giá sản phẩm, không theo mã giảm giá: một mã FLASH20 không
làm nhãn hiện "−20%".
Ô mã giảm giá và giá tính lại
Ô mã giảm giá phải nằm trong biểu mẫu đặt hàng — xem Biểu mẫu. Khi khách bấm Áp dụng cạnh ô, hoặc bấm một thẻ trong danh sách mã, dòng dưới ô báo một trong bốn câu bạn viết: đã áp dụng, mã không tồn tại, mã chưa dùng được cho đơn này, hoặc chưa kiểm tra được (lỗi mạng — câu này không được đổ lỗi cho mã của khách).
Điều dễ vấp: giá chỉ tính lại trước khi gửi khi biểu mẫu đặt nguyên giỏ hàng và giỏ đang có hàng. Với biểu mẫu đặt một sản phẩm cố định (kiểu landing page), bấm Áp dụng hiện chưa báo gì — mã vẫn được kiểm tra thật khi khách bấm Gửi, và mã sai thì đơn không được ghi, nhưng khách không thấy giá giảm trước.
Cập nhật 25/9/2026