在客户注册时验证电子邮件是否已经存在

2010-09-06 12:17:50.0

发现在magento的注册页面上,没有ajax验证用户名是否存在的功能...

这用户体验也太不好了..

我们知道magento的用户表是用电子邮件作为主键的。。,可能很多朋友不理解用电子邮件作为网站登录名和普通的用户名之间有何区别...

首先是能深刻的记住在该网站的注册用户名...

举个例子:可能你很喜欢coolboy这个用户名..但是可惜像这种很红很酷很火的用户名在一般的网站上都是该用户名已注册。。

就算你的客户在商城上注册了这个用户名。。但属于小概率事件,可能一个月后该用户就忘记了用户名了。。。

而用邮箱作为登录名 第一个好处是电子邮件已经是唯一的了。。。

为新注册用户在onepage页面自动填入姓名

2010-08-21 11:53:12.0

当一个新用户注册,其默认是没有输入国收货地址,所以当新用户下订单后,在onepage页面,会要求用户输入用户名,收货地址等。。。

客户在注册的时候已经输入过用户名了,从用户体验角度出发。。我们可以在onepage页面自动为他填上用户名。。。

首先我们找到‘app/code/core/Mage/Checkout/Block/Onepage/Billing.php’

然后找到getAddress这个方法

public function getAddress() {
if ($this->isCustomerLoggedIn()) {
return $this->getQuote()->getBillingAddress();
} else {
return Mage::getModel('sales/quote_address');
}
}

magento查看用户是否登录

2010-08-12 13:06:21.0

在magento中有些功能是需要用户登录之后才可以展示给客户看到.在magento中用户登录是放在session中的 如果要查看用户是否登录来控制权限可以这样用

if (!Mage::getSingleton("customer/session")->isLoggedIn())  {
// 客户没有登录,这里输入处理流程.
}

注意前面有个感叹号。。

我们可以在controller中实现,如果用户没有登录,就跳转到登录页面去

if (!Mage::getSingleton("customer/session")->isLoggedIn())
{
$session = Mage::getSingleton("customer/session");
$customerLoginURL = $this->getBaseUrl() . "customer/account/login";
Mage::app()->getFrontController()->getResponse()->setRedirect($customerLoginURL)->sendResponse();
}

Magento中获取指定会员下的所有订单

2010-08-04 11:21:49.0

magento中如果我们需要在会员的控制面板中获取该会员的所有订单,我们可以使用下面的方法来获取指定会员下的所有订单

$customerId=userId;
$limit=10;
$orders=Mage::getResourceModel('sales/order_collection');
$orders->addAttributeToFilter('customer_id', $customerId)->getSelect()->order('e.entity_id desc')
->limit($limit);