Quay lại Blog
2026-07-019 phút đọcNexo

Giới hạn mua theo ngày, tuần hoặc tháng trên Shopify

Tìm hiểu cách đặt giới hạn mua theo cửa sổ trượt — ngày, tuần, tháng hoặc tùy chỉnh — trên Shopify để ngăn gom hàng, quản lý chu kỳ subscription, và giữ công bằng tồn kho giữa các nhóm khách.

Giới hạn mua theo ngày, tuần hoặc tháng trên Shopify

Chuyện một cửa hàng bán cùng một sản phẩm nhưng cần quy tắc số lượng khác nhau tùy theo khoảng thời gian là rất phổ biến. Khách bán buôn có thể đặt 50 sản phẩm một tháng. Khách lẻ trong đợt khuyến mãi có thể bị giới hạn 3 sản phẩm một tuần. Một đợt hàng phiên bản giới hạn có thể chỉ cho mỗi khách mua đúng 1 sản phẩm.

Shopify theo dõi tổng tồn kho, nhưng không theo dõi một khách cụ thể đã mua bao nhiêu trong 7 ngày qua, 30 ngày qua, hay một cửa sổ tùy chỉnh. Khoảng trống đó chính là nơi các quy tắc giới hạn mua theo thời gian phát huy tác dụng.

Vì sao giới hạn theo thời gian lại quan trọng

Một giới hạn đơn giản theo từng đơn ("tối đa 5 mỗi đơn") chặn được một giỏ hàng lớn. Nhưng nó không chặn được cùng một người đặt năm đơn riêng biệt, mỗi đơn 5 sản phẩm mỗi ngày. Nếu mục tiêu của bạn là trải hàng cho nhiều khách hơn, hoặc căn theo cách bạn nhập hàng lại, bạn cần một cửa sổ trượt (rolling window).

Các tình huống thường gặp:

  • Giới hạn theo ngày: Đợt hàng hot, hàng mẫu, hoặc sản phẩm có công suất xử lý đơn mỗi ngày bị giới hạn chặt
  • Giới hạn theo tuần: Subscription box, đơn bán buôn định kỳ, giữ công bằng cho khuyến mãi
  • Giới hạn theo tháng: Hợp đồng bán buôn, hạn mức nhà phân phối, các bậc khách hàng thân thiết
  • Cửa sổ tùy chỉnh: Chiến dịch đặt trước, sản phẩm theo mùa, giai đoạn ra mắt

Cửa sổ trượt thực sự hoạt động như thế nào

Hầu hết các app áp dụng cửa sổ trượt bằng cách kiểm tra lịch sử đơn hàng của khách. Khi giỏ hàng được kiểm tra, app truy vấn: "Khách này đã mua bao nhiêu sản phẩm này (hoặc từ collection này) trong N ngày gần đây?"

Nếu con số đó cộng với số lượng trong giỏ hiện tại vượt quá giới hạn, giỏ hàng sẽ bị chặn hoặc số lượng bị giảm xuống.

Những chi tiết triển khai khác nhau giữa các app:

Chi tiếtCần kiểm tra
Nhận diệnTài khoản khách, email, hoặc email khách vãng lai
Phạm viMột sản phẩm, tất cả variant, cả collection, hay tổng giỏ hàng
Cách resetRolling (cửa sổ trượt) hay Calendar (tuần/tháng cố định)
Chồng quy tắcNhiều quy tắc cộng dồn hay ghi đè lên nhau

Cửa sổ trượt dịch tới mỗi ngày. Cửa sổ theo lịch (calendar) reset theo mốc cố định (mỗi thứ Hai, hoặc ngày mùng 1 hàng tháng). Rolling công bằng hơn cho khách; calendar dễ giải thích hơn.

Thiết lập giới hạn theo thời gian mà không cần Shopify Plus

Cách 1: App có theo dõi lịch sử mua

Các app giới hạn đơn có theo dõi lịch sử mua sẽ cung cấp quy tắc cửa sổ trượt. Hãy tìm những tính năng:

  • Cửa sổ theo ngày, tuần, tháng, và số ngày tùy chỉnh
  • Phạm vi theo sản phẩm, theo collection, hoặc theo cả giỏ hàng
  • Điều kiện theo customer tag (khách bán buôn được giới hạn tháng cao hơn)
  • Thông báo rõ ràng cho khách, hiển thị mức còn được mua

Cách 2: Customer tag + quy tắc theo lịch

Gắn tag cho khách theo bậc ("wholesale-monthly-100", "vip-weekly-10"). Tạo một quy tắc cho mỗi tag với cửa sổ và giới hạn riêng. Cập nhật tag khi hợp đồng thay đổi. Cách này dùng được nhưng nhanh chóng trở nên thủ công nếu bạn có nhiều bậc.

Cách 3: Shopify Flow + logic tùy chỉnh

Flow có thể gắn tag cho khách dựa trên số lượng đơn, nhưng không thể chặn một giỏ hàng theo thời gian thực. Bạn vẫn cần một lớp kiểm tra ở checkout (Functions) hoặc ở cart (app).

Thiết lập bằng một app giới hạn đơn

Với một app giới hạn đơn có theo dõi lịch sử mua, việc thiết lập thường khá đơn giản:

  1. Tạo một quy tắc cho sản phẩm hoặc collection
  2. Chọn "Maximum quantity per customer"
  3. Chọn cửa sổ thời gian: Daily, Weekly, Monthly, hoặc Custom (ví dụ 14 ngày)
  4. Đặt con số giới hạn
  5. Thêm điều kiện customer tag nếu giới hạn khác nhau theo từng nhóm
  6. Viết thông báo: "Bạn đã đạt giới hạn 3 sản phẩm mỗi tuần cho sản phẩm này. Giới hạn sẽ reset vào thứ Hai."
  7. Test bằng một tài khoản test, đặt các đơn vắt qua mốc cửa sổ

Hầu hết các app nhận diện khách bằng tài khoản hoặc email khách vãng lai. Cùng một email dùng qua nhiều lần checkout vãng lai sẽ được tính chung vào một giới hạn.

Những điều cần lưu ý

Khách vãng lai dùng email khác nhau: Nếu ai đó checkout với tư cách khách vãng lai bằng email A vào thứ Hai và email B vào thứ Ba, họ sẽ hiện ra như hai khách khác nhau. Các app chỉ theo dõi bằng email sẽ bỏ sót trường hợp này. Một số app bổ sung fingerprint thiết bị/IP (có tuân thủ về quyền riêng tư) để giảm thiểu điều này.

Nhầm lẫn giữa calendar và rolling: Một khách mua 3 sản phẩm vào Chủ nhật (giới hạn tuần là 3) rồi thử mua tiếp vào thứ Hai có thể tưởng giới hạn đã reset. Nếu app của bạn dùng cửa sổ trượt 7 ngày, họ vẫn bị chặn cho đến khi đơn cũ nhất trượt ra khỏi cửa sổ. Hãy làm thông báo thật rõ: "Giới hạn reset sau 4 ngày" hoặc "Giới hạn trượt 7 ngày."

Tương tác với subscription: Giới hạn 12 sản phẩm mỗi tháng cộng với một subscription 3 sản phẩm mỗi tuần nghĩa là khách sẽ chạm trần tháng ngay ở tuần thứ 3. Hãy tính giới hạn quanh chu kỳ subscription, hoặc loại đơn subscription ra khỏi giới hạn nếu app của bạn hỗ trợ.

Draft order và POS: Nếu nhân viên của bạn tạo draft order cho các tài khoản bán buôn, những đơn đó cũng nên được tính vào giới hạn. Tương tự với các đơn bán qua POS. Hãy xác nhận app của bạn bao quát được các kênh này.

Cấp variant hay cấp sản phẩm: Một khách mua 2 cái màu đỏ và 2 cái màu xanh của cùng một sản phẩm (giới hạn 3 mỗi tuần). Nếu quy tắc tính theo variant, họ có thể mua 3 đỏ + 3 xanh. Nếu tính theo sản phẩm, tổng cộng qua các variant bị giới hạn ở 3. Hãy chọn dựa trên thực tế tồn kho của bạn.

Ví dụ thực tế: hạn mức tháng cho khách bán buôn

Bạn bán cà phê hạt cho các quán. Mỗi quán có hạn mức 50 kg một tháng (50 túi loại 1 kg).

Thiết lập:

  • Gắn tag "wholesale-monthly-50" cho các quán cà phê
  • Tạo quy tắc: Sản phẩm = Cà phê hạt 1kg, Phạm vi = Sản phẩm, Cửa sổ = Monthly (calendar), Giới hạn = 50, Điều kiện = Tag "wholesale-monthly-50"
  • Thông báo: "Hạn mức 50 sản phẩm trong tháng của bạn đã hết. Hạn mức mới bắt đầu vào ngày mùng 1."

Kết quả: Quán có thể đặt nhiều đơn trong suốt tháng, nhưng tổng không thể vượt 50. Đến ngày mùng 1, bộ đếm reset.

FAQ

Shopify có thể giới hạn mua theo thời gian một cách mặc định không?

Không. Thiết lập tồn kho mặc định của Shopify kiểm soát tổng số hàng, chứ không phải lịch sử mua của từng khách theo thời gian. Bạn cần một app, hoặc logic kiểm tra cart và checkout tùy chỉnh (ví dụ Shopify Functions) có thể đọc được các đơn trước đó.

Cửa sổ rolling và calendar khác nhau như thế nào?

Rolling: cửa sổ 7 ngày trượt tới mỗi ngày. Calendar: reset mỗi thứ Hai (theo tuần) hoặc ngày mùng 1 (theo tháng). Rolling công bằng hơn; calendar dễ truyền đạt hơn.

Giới hạn theo thời gian có hoạt động với Shopify Markets và đa tiền tệ không?

Có. Giới hạn kiểm tra số lượng ở cart/checkout trước khi quy đổi tiền tệ. Cùng một giới hạn áp dụng cho mọi market.

Tôi có thể loại một số nhóm khách khỏi giới hạn theo thời gian không?

Có, nếu app của bạn hỗ trợ điều kiện theo customer tag. Tạo một quy tắc áp dụng cho tất cả, rồi tạo một quy tắc riêng với giới hạn cao hơn (hoặc không giới hạn) cho những khách VIP/bán buôn đã được gắn tag.

Điều gì xảy ra khi khách chạm giới hạn giữa lúc đang mua?

Họ thấy một thông báo kiểu "Bạn còn 2 sản phẩm cho tuần này" và không thể tăng số lượng hoặc tiến tới checkout cho đến khi bỏ bớt hàng hoặc chờ cửa sổ reset.

Tôi có thể đặt cửa sổ khác nhau cho các sản phẩm khác nhau không?

Có. Mỗi quy tắc có thể có cửa sổ riêng. Cà phê hạt có thể để theo tháng; những chiếc cốc phiên bản giới hạn có thể để trọn đời (1 sản phẩm mãi mãi).

Một app giới hạn đơn có theo dõi lịch sử mua, chẳng hạn như Nexo Order Limits, có thể đặt cửa sổ theo ngày, tuần, tháng và tùy chỉnh cho từng sản phẩm, collection, hoặc customer tag, kèm thông báo rõ ràng cho khách và áp dụng ở cart hoặc checkout. Quy tắc vẫn phải khớp với cách bạn thực sự nhập hàng lại và xử lý đơn, nên hãy quyết định cửa sổ và con số trước, rồi mới thiết lập.