我们程序员喜欢以编程的方式来添加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。 我希望大部分代码是不言自明的,由于我们从管理页面添加客户时知道哪些是必填项。唯一你要注意的就是必填项。 万一你有多个用户要添加,你可以花几秒钟为这段代码添加一个循环。 (责任编辑:好模板) |