Добавить подтверждение входа в Magento Checkout

Что мы пытаемся сделать

Использование Magento CE 1.7.0.2. Мы используем одностраничную кассу. Нам нужно, чтобы пользователи были зарегистрированы для оформления заказа (БЕЗ гостевой проверки). НО, нам нужно, чтобы они могли войти и / или зарегистрироваться на одностраничной кассе.

Проблема

Мы не можем использовать параметр Magento по умолчанию «требовать входа в систему для оформления заказа», поскольку он не позволяет пользователям переходить на страницу оформления заказа , если они не вошли в систему.

Решение

Ну, я не знаю ... пока. Это то, что я пробовал, но это привело ко всевозможным катастрофическим проблемам с оплатой с помощью SagePay (множественные транзакции):

if (!$this->getCustomerSession()->isLoggedIn()) {
    Mage::throwException(Mage::helper('checkout')->
      __('Please login. You must be logged in to checkout.'));
}

Любой полезный вклад приветствуется, спасибо.


person Jongosi    schedule 11.04.2013    source источник


Ответы (2)


Перейти: template / chackout / onepage.phtml

**put this code on before page code**
<?php
          if (!$this->helper('customer')->isLoggedIn()) {
                header('Location: '.$this->getUrl('customer/account/login')) ;
                 exit();
          }
?>
person Ravi Patel    schedule 12.04.2013
comment
Спасибо, Рави, это помогло мне думать в правильном направлении. Я выложу свое окончательное решение :) - person Jongosi; 12.04.2013

В ЗАКЛЮЧЕНИЕ:

Проблемы с этой функциональностью:

  1. Мы не можем проверить, вошел ли пользователь в систему, потому что пользователи могут зарегистрироваться на этой странице, следовательно, пока они не зарегистрируются, они не войдут в систему, поэтому они предоставят действительный запрос при отправке.
  2. Одностраничный модуль перезаписывает некоторое поведение проверки Magento по умолчанию, поэтому нам нужно перехватить проверку модуля или написать свою собственную.

Чтобы решить эту проблему, мы окончательно проверили поля для регистрации. Если они пусты (если гостевой выезд отключен), то форма не может быть отправлена. Немного некрасиво, но функционально.

Надеюсь, что кто-то еще сможет это использовать.

person Jongosi    schedule 12.04.2013