Одностраничный заказ сломан в 1.8?

12

Кажется, что наш заказ не работает, и все больше людей имеют проблемы с magento 1.8. Он просто ничего не делает после того, как вы нажали кнопку продолжения на шаге 4. Мы запустили PHP 5.4.19 и попробовали это в chromium v28, firefox v22, safari v5.1.

В логах ошибок нет, и в теме по умолчанию тоже самое.

spydon
источник

Ответы:

15

Нашел решение здесь: http://www.magentocommerce.com/boards/viewthread/441003/#t460203

Перейдите в / app / design / frontend / base / default / template / checkout / onepage / file payment.phtml, откройте его, строка 36

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

добавить идентификатор в fieldset

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

Благодаря Hungtk2707!

spydon
источник
2
Если вы не вносили никаких изменений в код и ваши сторонние модули работают без ошибок, большинство проблем с обновлением связаны с шаблонами и макетами, разработанными для предыдущих версий. Часто случается, что работа с шаблонами в этой области заканчивается неудачей, и проверяются различия в коде между тем, что находится в вашем шаблоне, и тем, что находится во вновь установленном базовом шаблоне. В макетах часто он ищет перемещенный блок, новый блок, который нужно добавить, или аналогичный. Как видно из вашего поста, они добавили идентификатор в набор полей, который необходим JavaScript для ссылки, чтобы перейти к следующему шагу.
Fiasco Labs
2
Я только что установил чистую версию magento 1.8.1, и это, кажется, ошибка в коде. Он должен быть включен в базовый файл phtml.
Масу
1
ты спас мне жизнь + 1
Рам Шарма
5

У меня также была проблема оформления заказа, и я нашел решение:

В /template/checkout/onepage/review/info.phtml (в конце)

замещать

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

по

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

Это должно решить вашу проблему оформления заказа.

Мухаммед Моусин Гессен
источник
1
Похоже, что ваш пример кода неполон. Пожалуйста, отредактируйте, чтобы включить правильное форматирование Markdown.
отметки
Это решило мою проблему, когда после нажатия кнопки «Подтвердить» я вернул бы 302, а форма не была отправлена.
woot586
2

Если вы обновите свой Magento (до 1.9.1) и шаблон оформления заказа будет настроен, а также будет изменен xml.

Посмотрите на это:

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

Проблема заключается в checkout / onepage / payment / Methods.phtml, эти данные должны быть загружены через запрос AJAX. Замените это на checkout / onepage / payment / info.phtml, вот так:

<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
источник
1

если у вашего шаблона нет обзора = внизу info.phtml просто добавьте

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

в конец этого файла, например ./app/design/frontend/blank/default/template/checkout/onepage/review/info.phtml

Энди
источник
1

У меня была та же проблема с магазином rwd (iphone) и я решил первую проблему с

но позже у меня все еще была проблема (кнопка «Продолжить» не работает) Решение было собрать info.phtml из / app / design / frontend / default / iphone / template / checkout / onepage / review

Я взял из старой рабочей версии.

Странный факт, что все работает нормально в представлении рабочего стола.

Лука Паскуалотто
источник