Onepage checkout quebrado em 1.8?

12

Nosso check-out parece estar quebrado e mais pessoas parecem ter o problema com o magento 1.8. Ele simplesmente não faz nada depois que você pressiona o botão continuar na etapa 4. Executamos o PHP 5.4.19 e tentamos no chromium v28, firefox v22, safari v5.1.

Não há erros nos logs e é o mesmo no tema padrão.

Spydon
fonte

Respostas:

15

Encontre a solução aqui: http://www.magentocommerce.com/boards/viewthread/441003/#t460203

Acesse / app / design / frontend / base / default / template / checkout / onepage / arquivo payment.phtml abra-o, linha 36

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

adicionar id ao fieldset

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

Graças a hungtk2707!

Spydon
fonte
2
Se você não fez nenhuma modificação no código e seus módulos de terceiros estão prontos para o uso, a maioria dos problemas de atualização vem de modelos e layouts desenvolvidos para versões anteriores. Geralmente, é possível trabalhar com os modelos na área que falham e verificar diferenças de código entre o que está no seu modelo e o que está no modelo base recém-instalado. Nos layouts, geralmente ele procura um bloco movido, um novo bloco que precise ser adicionado ou semelhante. Como mostra sua postagem, eles adicionaram um ID ao conjunto de campos que o javascript precisa para referência para passar para a próxima etapa.
Fiasco Labs
2
Eu tinha acabado de instalar uma versão limpa do magento 1.8.1, e isso parece ser um erro no código. Deve ser incluído no arquivo phtml base.
Masu
1
Você salvou minha vida + 1
Ram Sharma
5

Eu também tive o problema do checkout e encontrei a solução:

Em /template/checkout/onepage/review/info.phtml (no final)

substituir

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

por

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'));

Ele deve resolver seu problema de pagamento.

Mhammed Mouhcine Guessous
fonte
1
Parece que seu exemplo de código está incompleto. Edite para incluir a formatação apropriada do Markdown.
benmarks
Isso resolveu o meu problema. Ao pressionar confirmar, eu recebia um 302 de volta e o formulário não era enviado.
Woot586
2

Se você atualizar o Magento (para 1.9.1) e o modelo de checkout for personalizado e também o xml for alterado.

A aparência para isso:

<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>

O problema é o checkout / onepage / payment / methods.phtml, esses dados devem ser carregados por meio de uma solicitação ajax. Substitua por checkout / onepage / payment / info.phtml, assim:

<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>
Tantuss
fonte
1

se o seu modelo não tiver review = na parte inferior de info.phtml, adicione

</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>

na parte inferior deste arquivo, por exemplo, ./app/design/frontend/blank/default/template/checkout/onepage/review/info.phtml

Andy
fonte
1

Eu tive o mesmo problema com o storeview rwd (iphone) e resolvi o primeiro problema com

mas depois eu ainda tive um problema (o botão continuar não está funcionando) A solução foi coletar info.phtml em / app / design / frontend / default / iphone / template / checkout / onepage / review

Eu tirei de uma versão de trabalho antiga.

O fato estranho é que tudo funcionou bem na visualização da área de trabalho.

Luca Pasqualotto
fonte