Pagamento alla pagina interrotto in 1.8?


12

Il nostro checkout sembra essere rotto e più persone sembrano avere il problema con magento 1.8. Semplicemente non fa nulla dopo aver premuto il pulsante continua al punto 4. Abbiamo eseguito PHP 5.4.19 e l'abbiamo provato in chromium v28, firefox v22, safari v5.1.

Non ci sono errori nei log ed è lo stesso nel tema predefinito.

Risposte:


15

Ho trovato la soluzione qui: http://www.magentocommerce.com/boards/viewthread/441003/#t460203

Vai a / app / design / frontend / base / default / template / checkout / onepage / file payment.phtml aprilo, linea 36

<fieldset>
    <?php echo $this->getChildHtml('methods') ?>
</fieldset>

aggiungi id al fieldset

<fieldset id="checkout-payment-method-load">
    <?php echo $this->getChildHtml('methods') ?>
</fieldset>

Grazie a hungtk2707!


2
Se non hai apportato modifiche al codice e i tuoi moduli di terze parti sono all'altezza, la maggior parte dei problemi di aggiornamento provengono da modelli e layout sviluppati per le versioni precedenti. Spesso si tratta di analizzare i modelli nell'area che ha esito negativo e di verificare le differenze di codice tra ciò che è nel modello e ciò che è presente nel modello di base appena installato. Nei layout, spesso cerca un blocco spostato, un nuovo blocco che deve essere aggiunto o simile. Come mostra il tuo post, hanno aggiunto un ID al set di campi di cui il javascript necessita come riferimento per passare al passaggio successivo.
— Fiasco Labs

2
avevo appena installato una versione pulita di magento 1.8.1, e questo sembra essere un errore nel codice. Dovrebbe essere incluso nel file phtml di base.
— Masu,

1
mi salvi la vita + 1
— Ram Sharma,

5

Ho avuto anche il problema del checkout e ho trovato la soluzione:

In /template/checkout/onepage/review/info.phtml (alla fine)

sostituire

review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder') ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));

di

review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder', array('form_key' => Mage::getSingleton('core/session')->getFormKey())) ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));

Dovrebbe risolvere il problema del checkout.


1
Sembra che l'esempio di codice sia incompleto. Modifica per includere la formattazione Markdown corretta.
— entro il

Ciò ha risolto il mio problema per cui, dopo aver confermato, avrei ricevuto un 302 indietro e il modulo non sarebbe stato inviato.
— woot586

2

Se aggiorni Magento (a 1.9.1) e il modello di checkout viene personalizzato e anche l'xml viene modificato.

Il look per questo:

<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
     <block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
          <action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
     </block>
</block>

Il problema è il checkout / onepage / payment / method.phtml, questi dati dovrebbero essere caricati attraverso una richiesta Ajax. Sostituiscilo con checkout / onepage / payment / info.phtml, quindi in questo modo:

<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
     <block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/info.phtml">
          <action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
     </block>
</block>

1

se il tuo modello non ha review = nella parte inferiore di info.phtml basta aggiungere

</script>
<script type="text/javascript">
//<![CDATA[
    review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder',       array('form_key' => Mage::getSingleton('core/session')->getFormKey())) ?>', '<?php echo $this-  >getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));
//]]>
</script>

alla fine di questo file, ad es ./app/design/frontend/blank/default/template/checkout/onepage/review/info.phtml


1

Ho avuto lo stesso problema con rwd (iphone) storeview e risolto il primo problema con

ma più tardi ho ancora avuto un problema (pulsante continua non funzionante) La soluzione era quella di raccogliere info.phtml da / app / design / frontend / default / iphone / template / checkout / onepage / review

Ho preso da una vecchia versione funzionante.

Il fatto strano è che tutto ha funzionato bene nella vista desktop.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.