Magento – onePageCheckout bleibt nach Update auf 1.7.0.2 hängen

Nach einigen Stunden wühlen in den Untiefen der wildesten Magento Blogs und Magento Connect Boards [kaum zu glauben, was dort alles an Unsinn zu finden ist..] wird einem klar, was Magento im Checkout Process zwischen Eingabe der Rechnungs-/Lieferdaten und Versandartauswahl hängen läßt.

Mit was es zu tun hat:

mxperts no_regions – Bundeslandauswahl in den Staaten – Update auf 1.7.0.2 – onepage.phtml – Ja, in der EU macht die Auswahl des Bundeslandes keinen Sinn – ein kleines JavaScript Object das den Supergau fixed!

.. wie immer bei Magento ist meist nur eine Zeile dafür verantwortlich, dass man  stundenlang im Dunkeln zwischen Blocks, Zend und RavioliCode rumstochert!

Fehlersuche:

Nachdem man zwischendurch mal die Konsole der DeveloperTools checkt, stellt man fest, dass sich der Browser über ein nicht vorhandenes Object “countryRegions” ausgesprochen freuen würde..  Damit würde sich dann toll das CheckOutAccordion auf den nächsten CheckOutStep weitertun – ohne dem aktiviert sich zwar nach Klick auf “Fortfahren” das nächste DIV-Element des Versandartenreiters, öffnen tut es sich aber leider nur nach Klick darauf.

How to fix it?

OK – warum ist nach Update plötzlich was weg, was vor dem Update noch da war? Genau, weil die Jungs von Varien davon ausgehen, dass man auf der ganzen Welt verschiedene TaxRates für unterschiedliche Bundesstaaten braucht. Was die Jungs nicht wissen konnten: Wir in nicht US, also EU, nutzen dann bspw. mxperts no_region um aus dem CheckOutBlock störende Elemente wieder raus zu operieren.
Gut, was nicht mehr da is muss also wieder rein!

Also debug anschmeissen und nach Pfadhinweisen und Blocknamen kucken:
Folgenden codeSnip also in frontend/base/default/template/checkout/onepage.phtml einfügen – damit erledigt sich der leidige javaScript_error > “countryRegions is not defined”, der dafür verantwortlich war, dass der onePageCheckout sich mit der Bundeslandsache verhaspelt und nicht zur Versandart hoppt:

<script type="text/javascript"> countryRegions = <?php echo $this->helper('directory')->getRegionJson() ?></script>

Reingebaut gehört es hier:

<script type="text/javascript" src="<?php echo $this->getJsUrl('varien/accordion.js') ?>"></script>
<script type="text/javascript" src="<?php echo $this->getSkinUrl('js/opcheckout.js') ?>"></script>
<script type="text/javascript"> countryRegions = <?php echo $this->helper('directory')->getRegionJson() ?></script>
<ol class="opc" id="checkoutSteps">

Soweit, jetzt gut..
core.c3labs

  • Jochen M.

    wow! vielen Dank für diesen Tipp!

  • BJörn

    Bessten Dank…

    Man sucht sich echt nen Horst bei Magento und es ist mir echt unverständlich wie Codezeilen und teilweise ganze Methoden von einer Version zur nächsten einfach so verschwinden und es von den Varien-Entwicklern keiner bemerkt. Wenn ich mir den Import und die SOAP-API ansehe bekomm ich nach jeder neuen Version nen erneuten Ausraster ^^ .. statt Fehler zu beheben scheint der Code von Version zu Version weiter in seine Bestandteile zu zerfallen… Macht langsam einfach keinen Spaß mehr. :-(

  • http://www.econsor.de Pierre

    Vielen Dank ;-)

  • Pingback: Magento 1.7.0.2 errore nel checkout | blog levelzero

  • http://www.farbenkurier.de Haiko

    Zum Glück bin ich sofort auf diese Seite gestoßen. Vielen Dank für das Snippet!

  • Timo Rütten

    Bei 1.8 gibt es ein ähnliches Problem. Nach ewigem Gesuche habe ich folgenden Fix gefunden:

    In der Datei “/app/design/frontend/base/default/template/checkout/onepage/payment.phtm” in Zeile 37

    “”

    zu

    “”

    abändern.

    • Mirko Stanic

      vielen dank, hat bei mir funktionert.

      nun bleibe ich aber beim letzten schritt hängen (jetzt kaufen).

      das selbe verhalten. ich klicke, wird geladen, und dann bleibt es im selben schritt wieder stehen.

      any idea?

    • Vorreiter.IT

      Ich bin begeistert, endlich ein Konkreter klarer Vorgang gefudnen der eine echte Lösung ist… herzlichen Dank!

    • Manuel Rowinski

      Danke für den Tipp. Klappt auch bei mir einwandfrei! :)

    • Nick Morelli

      Vielen Dank für den Tipp. Das war es …. da musst du wirklich einiges an nerven gekostet haben den Bug zu finden. Respekt.