Chúng tôi sử dụng tiện ích thanh toán tùy chỉnh của Mẫu được gọi là "Firecheckout". Không chắc chắn nếu đó là có liên quan, nhưng figured tôi nên đề cập đến nó. Thỉnh thoảng tôi thấy một email giao dịch không thành công với lý do là "Vui lòng chỉ định phương thức giao hàng". Tôi đã dành một thời gian dài cố gắng để theo dõi làm thế nào điều này có thể xảy ra và tôi bị mất. Tôi đã thử tất cả mọi thứ tôi có thể nghĩ đến để nhân đôi vấn đề. Tùy thuộc vào sự kết hợp của những thứ tôi làm (thêm/xóa các mục khỏi giỏ hàng, thêm/xóa mã phiếu giảm giá thay đổi tùy chọn giao hàng, chuyển đổi giữa các trang web trên thiết bị di động và máy tính để bàn, v.v.) Không có tùy chọn nào được chọn cho phương thức giao hàng. Tuy nhiên, nếu tôi cố gắng gửi đơn đặt hàng, tôi nhận được thông báo màu đỏ ngay lập tức trong phần phương thức giao hàng cho biết "Vui lòng chỉ định phương thức giao hàng" (Lưu ý sự khác biệt giữa nội dung trong email và nội dung được nêu trong lỗi được hiển thị trên trang ... thiếu "a"). Điều này không dẫn đến một email lỗi.Lỗi giao dịch Magento "Vui lòng chỉ định phương thức giao hàng"
Tìm kiếm thông qua các mã tôi thấy rằng các email lỗi được kích hoạt trong TM_FireCheckout_Model_Service_Quote (mở rộng Mage_Sales_Model_Service_Quote) lớp trong _validate phương pháp
$method= $address->getShippingMethod();
$rate = $address->getShippingRateByCode($method);
if (!$this->getQuote()->isVirtual() && (!$method || !$rate)) {
Mage::throwException($helper->__('Please specify a shipping method.'));
}
Trong trường hợp này, tôi đoán hoặc $ phương thức hoặc $ rate là không đúng hoặc sai, nhưng tại sao/như thế nào? Tôi có thể làm gì để đảm bảo điều này không bao giờ xảy ra? Sự khác biệt duy nhất giữa phương pháp _validate của FireCheckout và phương thức _validate của FireCheckout là trường được xem là bắt buộc. Nó không làm thay đổi đối tượng địa chỉ theo bất kỳ cách nào, vì vậy các lệnh gọi tiếp theo tới getShippingMethod và getShippingRateByCode phải giống như một cài đặt mặc định.
Tôi có thể cung cấp thêm chi tiết nếu cần. Về cơ bản tôi đang cố gắng hiểu những gì có thể gây ra lỗi và cách tôi có thể tái tạo nó để cuối cùng tôi có thể vá lỗ hổng đang gây ra nó ngay từ đầu.
Cảm ơn!
tại sao không thêm dòng nhật ký trong _validate() 'Mage :: log (" Firecheckout: ". Var_dump ($ method)." | ". Var_dump ($ rate), null, 'mydebug.log', true) ; 'vào một bản sao cục bộ của Mage_Sales_Model_Service_Quote và đuôi tệp nhật ký tùy chỉnh này, có lẽ thêm cả thứ tự và ID khách hàng để xem liệu các giá trị đó có bền bỉ không? – B00MER
Tôi có chính xác cùng một lỗi, nhưng tôi đang sử dụng Onestepcheckout Extension từ Apptha. Bất kỳ trợ giúp sẽ được đánh giá cao. – Lennon