Tối ưu tốc độ WooCommerce: 7 việc nên làm trước khi nâng cấp hosting
Phần lớn cửa hàng WooCommerce chậm không phải vì hosting yếu, mà vì plugin thừa, truy vấn nặng và ảnh chưa tối ưu. Đây là thứ tự tôi kiểm tra mỗi lần nhận một dự án.
Webhook có thể đến trễ, đến hai lần hoặc không đến. Ba nguyên tắc giúp tích hợp giữa website, cổng thanh toán và CRM chạy đúng kể cả khi có sự cố.
Tích hợp qua webhook trông đơn giản: hệ thống A gửi request, hệ thống B xử lý. Nhưng trong thực tế, mạng chập chờn, máy chủ khởi động lại và nhà cung cấp gửi lại cùng một sự kiện nhiều lần.
Endpoint webhook chỉ nên xác thực chữ ký, lưu sự kiện vào hàng đợi rồi trả về 200 ngay. Việc xử lý nặng để worker làm.
app.post('/webhooks/payment', async (req, res) => {
verifySignature(req);
await queue.add('payment', req.body);
res.sendStatus(200);
});
Mỗi sự kiện có một ID duy nhất. Trước khi xử lý, kiểm tra ID đó đã được ghi nhận chưa. Nếu rồi, bỏ qua.
Hãy giả định mọi webhook sẽ đến ít nhất hai lần.
Khi CRM không phản hồi, worker thử lại với thời gian chờ tăng dần: 1 phút, 5 phút, 30 phút, 2 giờ. Sau số lần giới hạn, chuyển sự kiện sang hàng đợi lỗi để xem xét thủ công.
Không ai đọc email lỗi số 200 trong ngày. Chỉ cảnh báo khi hàng đợi lỗi có sự kiện mới hoặc tỉ lệ thất bại vượt ngưỡng, và gửi đến kênh mà đội vận hành thực sự theo dõi.
Ba nguyên tắc này giúp một trung tâm đào tạo đồng bộ 100% đăng ký vào CRM trong vòng một phút, không còn nhập liệu thủ công.