Trong cửa hàng Magento 2 của chúng tôi đột nhiên id đơn hàng đã bắt đầu bỏ qua id đơn hàng 1.
Dưới đây là ví dụ id thứ tự:
000000011
000000013
000000015
000000017
000000019
Tôi đã xem qua nhiều bài đăng như magento-order-number-number và magento-order-id-tăng-id , và họ nói như thế do thanh toán thất bại / không hoàn thành, hoặc khách hàng không hoàn thành tất cả các bước thanh toán mà vấn đề này có thể xảy ra .
Vì vậy, câu hỏi của tôi là, nó chỉ xảy ra trong các kịch bản được đề cập và từ thứ tự tiếp theo, nó sẽ hoạt động tốt nếu không có vấn đề gì, nhưng trong trường hợp của tôi, nó luôn bỏ qua 1 đơn hàng. Tôi đã quan sát điều này cho khoảng 100 đơn đặt hàng.
Một số bài viết cũng đề xuất do giỏ hàng bị bỏ rơi, vấn đề này có thể xảy ra vì vậy tôi đã cắt bớt các bảng trích dẫn bằng cách sử dụng truy vấn bên dưới, vấn đề vẫn còn tồn tại.
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE `quote`;
TRUNCATE TABLE `quote_address`;
TRUNCATE TABLE `quote_address_item`;
TRUNCATE TABLE `quote_id_mask`;
TRUNCATE TABLE `quote_item`;
TRUNCATE TABLE `quote_item_option`;
TRUNCATE TABLE `quote_payment`;
TRUNCATE TABLE `quote_shipping_rate`;
SET FOREIGN_KEY_CHECKS=1;
Làm thế nào tôi có thể khắc phục điều này?
setReservedOrderId($reservedOrderId)
có thể hướng dẫn bạn đến đúng điểm. Nếu bạn có khả năng, tôi sẽ đề nghị tạo một plugin và nối nó trước phương thức đó để ghi lại tất cả các cuộc gọi bằng backtrace, điều đó có thể cho bạn một gợi ý về các cuộc gọi đến từ
reserveOrderId
kiểm tra mà không có kiểm tra nếu báo giá đã có id đơn hàng dành riêng. Hãy thử vô hiệu hóa tất cả các tiện ích mở rộng tùy chỉnh và xem nếu nó xảy ra.