I'm getting the dreaded
Sorry, no quotes are available for this order at this time
error message on the Shipping section of the One Page Checkout. The only shipper is FedEx. Is there known science for debugging these sorts of issues without doing a deep dive on how Magento renders the Shipping Step, and how that kicks off API requests for rates?
In other words — what tools exist in the UI for debugging these issues, and if not tools exists what are the best classes to add temporary debugging tools to?
Best Answer
Unfortunately there's not much in the UI for debugging these types of issues.
You could try enabling the
Debug
setting. That will log the API requests and responses to yourvar/logs/
directory, which might provide some clues.If that doesn't provide any clarity, you'll probably need to poke around the core functionality.
Mage_Shipping_Model_Shipping::collectCarrierRates()
would be a great place to start. This method should be called once (fromcollectRates()
) for each of the different carriers. Some tips to guide your search within that method:collectCarrierRates()
ever get called with$carrierCode
equal to'fedex'
? If not, investigate whycollectRates()
is skipping over FedEx.->collectRates($request)
calls ever get executed? That's what ultimately issues the API request. Perhaps one of the previous checks is failing, or something else is short-circuiting the process. In that case, Magento isn't even attempting to ask FedEx for quotes.$result
- it may containnull
orfalse
if something failed. Otherwise you'll get aMage_Shipping_Model_Rate_Result
object - check whether it has errors with$result->getError()
I'd strongly recommend using xdebug to trace through that code and observe the variable values. (If that's not feasible, just add
Mage::log()
calls everywhere.)Hopefully that should narrow down the cause enough for you to find a solution.