Debugging: Für diese Bestellung sind derzeit leider keine Angebote verfügbar

7

Ich werde gefürchtet

Derzeit sind für diese Bestellung keine Angebote verfügbar

Fehlermeldung im Abschnitt Versand der One Page Checkout. Der einzige Versender ist FedEx. Gibt es eine bekannte Wissenschaft zum Debuggen dieser Art von Problemen, ohne sich eingehend damit zu befassen, wie Magento den Versandschritt rendert und wie dies API-Anfragen nach Raten auslöst?

Mit anderen Worten: Welche Tools sind in der Benutzeroberfläche zum Debuggen dieser Probleme vorhanden, und wenn nicht, welche Tools sind die besten Klassen, um temporäre Debugging-Tools hinzuzufügen?

Alan Storm
quelle

Antworten:

8

Leider gibt es in der Benutzeroberfläche nicht viel zum Debuggen dieser Art von Problemen.

Sie können versuchen, die DebugEinstellung zu aktivieren . Dadurch werden die API-Anforderungen und -Antworten in Ihrem var/logs/Verzeichnis protokolliert , was möglicherweise einige Hinweise liefert.

Wenn dies keine Klarheit bietet, müssen Sie sich wahrscheinlich mit der Kernfunktionalität befassen. Mage_Shipping_Model_Shipping::collectCarrierRates()wäre ein großartiger Ort, um zu beginnen. Diese Methode sollte collectRates()für jeden der verschiedenen Träger einmal (von ) aufgerufen werden. Einige Tipps für Ihre Suche innerhalb dieser Methode:

  • Wird collectCarrierRates()jemals mit $carrierCodegleich angerufen 'fedex'? Wenn nicht, untersuchen Sie, warum collectRates()FedEx übersprungen wird.
  • Werden irgendwelche ->collectRates($request)Anrufe jemals ausgeführt? Das ist es, was letztendlich die API-Anfrage ausgibt. Möglicherweise schlägt eine der vorherigen Überprüfungen fehl oder etwas anderes schließt den Prozess kurz. In diesem Fall versucht Magento nicht einmal, FedEx um Angebote zu bitten.
  • Überprüfen Sie den Wert von $result- es kann enthalten nulloder falsewenn etwas fehlgeschlagen ist. Andernfalls erhalten Sie ein Mage_Shipping_Model_Rate_ResultObjekt - prüfen Sie, ob es Fehler mit enthält$result->getError()

Ich würde dringend empfehlen, xdebug zu verwenden, um diesen Code zu verfolgen und die Variablenwerte zu beobachten. (Wenn dies nicht möglich ist, fügen Sie einfach Mage::log()überall Anrufe hinzu.)

Hoffentlich sollte dies die Ursache so weit eingrenzen, dass Sie eine Lösung finden können.

Colin O'Dell
quelle