2013-04-11 35 views
0

我们现在要做的登录验证添加到Magento的结帐

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

任何有用的输入感谢,谢谢。

回答

0

转到:模板/ chackout/onepage.phtml

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

Thx Ravi,这让我朝着正确的方向思考。我会发布我的最终解决方案:) – Jongosi 2013-04-12 08:38:15

0

结论:

着这片功能的问题是:

  1. 我们可以不检查用户是否已登录,因为用户可以在此页面上注册ge,因此,直到他们注册,他们没有登录,所以他们会提供一个有效的请求提交。
  2. 单页模块覆盖了Magento默认的一些验证行为,所以我们需要拦截模块的验证或编写我们自己的验证行为。

为了解决这个问题,我们最终验证了注册的字段。如果这些是空的(如果客人结帐被禁用),则表单不能被提交。有点丑陋,但功能。

希望别人可以使用它。