以编程的方式添加一个新的客户到Magento商店
我们程序员喜欢以编程的方式来添加东西。虽然你可以通过一个注册表单或者管理界面来创建一个新的客户。在某些情况下,这可能需要很长时间。如果你有一群来自不同国家的客户要分配给不同的群体,那你最好选择用代码来实现。
首先,我们添加一个带有一些基础信息的客户。
$websiteId = Mage::app()->getWebsite()->getId();
$store = Mage::app()->getStore();
$customer = Mage::getModel("customer/customer");
$customer ->setWebsiteId($websiteId)
->setStore($store)
->setFirstname('John')
->setLastname('Doe')
->setEmail('jd1@ex.com')
->setPassword('somepassword');
try{
$customer->save();
}
catch (Exception $e) {
Zend_Debug::dump($e->getMessage());
}
正如我们所见,上面的代码添加的用户只有姓、名、邮箱和密码。有时这些就够了,但我们可以做到更多。你可以添加中间名,把客户分配到特定的客户群,甚至给他们的名字加前缀或后缀。
$customer ->setWebsiteId($websiteId)
->setStore($store)
->setGroupId(2)
->setPrefix('Sir')
->setFirstname('John')
->setMiddleName('2')
->setLastname('Doe')
->setSuffix('II')
->setEmail('jd2@ex.com')
->setPassword('somepassword');
为了让客户能下订单,我们需要添加一个地址并分配给客户。让我们实现它吧。
$address = Mage::getModel("customer/address");
$address->setCustomerId($customer->getId())
->setFirstname($customer->getFirstname())
->setMiddleName($customer->getMiddlename())
->setLastname($customer->getLastname())
->setCountryId('HR')
//->setRegionId('1') //state/province, only needed if the country is USA
->setPostcode('31000')
->setCity('Osijek')
->setTelephone('0038511223344')
->setFax('0038511223355')
->setCompany('Inchoo')
->setStreet('Kersov')
->setIsDefaultBilling('1')
->setIsDefaultShipping('1')
->setSaveInAddressBook('1');
try{
$address->save();
}
catch (Exception $e) {
Zend_Debug::dump($e->getMessage());
}
要注意的是,setCountryID需要国家代码来作为值(你可以在后台通过检索客户创建页面'Country'输入框来获值)。上面的setGroupId方法也一样,你需要获取客户群的ID。
我希望大部分代码是不言自明的,由于我们从管理页面添加客户时知道哪些是必填项。唯一你要注意的就是必填项。
万一你有多个用户要添加,你可以花几秒钟为这段代码添加一个循环。
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:Magento中以编程的方式创建捆绑产品 下一篇:Magento中的畅销产品