将登录验证添加到Magento Checkout

时间:2013-04-11 16:10:15

标签: magento checkout sagepay

我们正在尝试做什么

使用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.'));
}

感谢任何有用的意见,谢谢。

2 个答案:

答案 0 :(得分:0)

Go:template / checkout / onepage.phtml

**put this code on before page code**
<?php
          if (!$this->helper('customer')->isLoggedIn()) {
                header('Location: '.$this->getUrl('customer/account/login')) ;
                 exit();
          }
?>

答案 1 :(得分:0)

结论:

这项功能的问题是:

  1. 我们无法检查用户是否已登录,因为用户可以在此页面上注册,因此在他们注册之前,他们没有登录,因此他们将在提交时提供有效请求。
  2. 单页模块正在覆盖Magento的一些默认验证行为,因此我们需要拦截模块的验证或编写自己的验证。
  3. 为了解决这个问题,我们最终验证了注册字段。如果这些是空的(如果禁用了访客结账),则无法提交表单。有点难看,但功能齐全。

    希望其他人可以使用它。