Я занимаюсь разработкой сайта Magento и недавно обновился с CE 1.9.0 до CE 1.9.1. Я заметил, что у меня теперь есть ошибка, когда я пытаюсь оформить заказ как гость.
1) Я выбираю гостевую кассу на шаге 1
2) Я заполняю форму в Платежной информации и оставляю флажок «отправить по этому адресу» проверенным.
3) Когда я продолжаю, я получаю всплывающее окно с ошибкой «Пожалуйста, убедитесь, что ваши пароли совпадают»
В System-> Config-> Sales-> Checkout у меня есть следующее
Включить одностраничную проверку = Да
Allow Guest Checkout = Да
Я посмотрел на несколько предложений из поиска Google, в том числе результаты по stackoverflow, и хотя они перечисляют проблему в своей теме, они не кажутся актуальными. Судя по всему, решения, которые я видел, связаны с несоответствием паролей и проблемами проверки.
Кто-нибудь может предложить решение проблемы входа в гостевую корзину, которая, похоже, появилась после обновления?
это немного устарело, но стоит ответить … похоже, это влияет на сайты с модулями проверки, такими как Templates-Master FireCheckOut.
В прыжке с 1.9.0 до 1.9.1 ядро мага изменилось:
/app/code/core/Mage/Customer/Model/Customer.php - Line:840
$confirmation = $this->getConfirmation();
чтобы:
/app/code/core/Mage/Customer/Model/Customer.php - Line:841
$confirmation = $this->getPasswordConfirmation();
В случае FireCheckOut это означает, что мне пришлось пойти и внести следующие изменения:
/app/code/local/TM/FireCheckout/Model/Type/Standard.php ~line 797 to:
if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
// set customer password
$password = $customerRequest->getParam('customer_password');
if (empty($password)) {
$password = $customer->generatePassword();
$customer->setPassword($password);
$customer->setConfirmation($password);
$customer->setPasswordConfirmation($password); // Added this line ***
} else {
$customer->setPassword($customerRequest->getParam('customer_password'));
$customer->setConfirmation($customerRequest->getParam('confirm_password'));
$customer->setPasswordConfirmation($customerRequest->getParam('confirm_password')); // Added this line ***
}
} else {
// emulate customer password for quest
$password = $customer->generatePassword();
$customer->setPassword($password);
$customer->setConfirmation($password);
$customer->setPasswordConfirmation($password); // Added this line ***
// set NOT LOGGED IN group id explicitly,
// otherwise copyFieldset('customer_account', 'to_quote') will fill it with default group id value
$customer->setGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
}
Используя «setConfirmation» и «setPasswordConfirmation», вы должны обеспечить как прямую, так и обратную совместимость, и ничего не испортить.
Других решений пока нет …