Magento – Why cart page shows the message “Sorry, no quotes are available for this order at this time”
magento2shippingshopping-cart
In the Estimate Shipping and Tax section, there is a message
Sorry, no quotes are available for this order at this time
How to restore form like normally and get rid of this message?
Best Answer
Seem we are missing the Shipping Methods. We need to enable one shipping methods for testing: STORES > Configuration > SALES > Shipping Methods. We can enable Free Shipping.
$groups = $this->getShippingRateGroups();
if ($groups) {
// ...
} else {
$message = $this->_quote->isVirtual() ? $this->__('No shipping method required.')
: $this->__('Sorry, no quotes are available for this order at this time.');
$methodListXmlObj->addCustomChild('method', null, array('label' => $message));
}
There is only one place I can find where the ShippingRateGroups is set:
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 your var/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 (from collectRates()) for each of the different carriers. Some tips to guide your search within that method:
Does collectCarrierRates() ever get called with $carrierCode equal to 'fedex'? If not, investigate why collectRates() is skipping over FedEx.
Do any of the ->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.
Check the value of $result - it may contain null or false if something failed. Otherwise you'll get a Mage_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.
Best Answer
Seem we are missing the Shipping Methods. We need to enable one shipping methods for testing: STORES > Configuration > SALES > Shipping Methods. We can enable Free Shipping.