Tốt nhất là bạn nên có stock
trong Product
của bạn mô hình để giữ số lượng có sẵn cho sản phẩm đó.
Khi ai đó đặt hàng, một order
riêng phiên bản phải được tạo với số lượng của Product
được chỉ định. Số hàng chỉ được giảm sau khi nhận được lệnh gọi lại cho order
đó hoặc một webhook nhận được xác nhận thanh toán.
Điều này sẽ không ngăn cản những khách hàng khác đặt hàng cho cùng một sản phẩm cho đến khi mặt hàng đó thực sự đã được bán.
Một cách tiếp cận khác có thể là giảm lượng hàng tồn kho khi khách hàng truy cập trang gọi lại và giải phóng hàng nếu không nhận được khoản thanh toán trong một khoảng thời gian nhất định. Nhiệm vụ nền sẽ được yêu cầu cho việc này.
Lưu ý: sử dụng F
đối tượng từ django.models
trong khi giảm lượng hàng để giảm lượng hàng từ giá trị DB chứ không phải thuộc tính phiên bản.