Thật không may, không có nhiều trong UI để gỡ lỗi các loại vấn đề này.
Bạn có thể thử bật Debug
cài đặt. Điều đó sẽ ghi lại các yêu cầu và phản hồi API vào var/logs/
thư mục của bạn , có thể cung cấp một số manh mối.
Nếu điều đó không cung cấp bất kỳ sự rõ ràng nào, có lẽ bạn sẽ cần chọc vào chức năng cốt lõi. Mage_Shipping_Model_Shipping::collectCarrierRates()
sẽ là một nơi tuyệt vời để bắt đầu. Phương pháp này nên được gọi một lần (từ collectRates()
) cho mỗi sóng mang khác nhau. Một số mẹo để hướng dẫn tìm kiếm của bạn trong phương pháp đó:
- Có
collectCarrierRates()
bao giờ được gọi với $carrierCode
bằng 'fedex'
? Nếu không, điều tra lý do tại sao collectRates()
bỏ qua FedEx.
- Có bất kỳ
->collectRates($request)
cuộc gọi bao giờ được thực hiện? Đó là những gì cuối cùng phát hành yêu cầu API. Có lẽ một trong những kiểm tra trước đó là thất bại, hoặc một cái gì đó khác là ngắn mạch quá trình. Trong trường hợp đó, Magento thậm chí không cố gắng yêu cầu FedEx báo giá.
- Kiểm tra giá trị của
$result
- nó có thể chứa null
hoặc false
nếu một cái gì đó không thành công. Nếu không, bạn sẽ nhận được một Mage_Shipping_Model_Rate_Result
đối tượng - kiểm tra xem nó có lỗi với$result->getError()
Tôi thực sự khuyên bạn nên sử dụng xdebug để theo dõi mã đó và quan sát các giá trị biến. (Nếu điều đó không khả thi, chỉ cần thêm Mage::log()
các cuộc gọi ở mọi nơi.)
Hy vọng rằng nên thu hẹp nguyên nhân đủ để bạn tìm ra giải pháp.