如何以完全结算方式导入客户&以编程方式从csv发送地址?
我想从命令行运行php脚本。
答案 0 :(得分:0)
您需要创建一个脚本:
加载Magento应用程序一次。
将.csv的每一行迭代为单个记录,或将所有记录加载到一个数组中,然后可以迭代。
根据客户记录的Magento数据验证规则验证所有数据元素。
使用导入记录的电子邮件地址检查是否存在客户记录。
在电子邮件匹配或更新记录中跳过记录(无论您选择什么)。
创建无匹配的客户记录。
根据Magento的地址数据验证规则验证导入记录中的帐单邮寄地址。
创建一个从该记录填充的类型记帐的地址,并将其标记为默认值(如果您希望如此标记)。
根据Magento的地址数据验证规则验证导入记录中的送货地址。
创建一个从该记录填充的运输类型的地址,并将其标记为默认值(如果您希望如此标记)。
这将导致您的建议。您可能会发现那些已经接近您正在寻找的脚本。
答案 1 :(得分:0)
脚本的框架如下所示:
require_once('../app/Mage.php');
Mage::app()->setCurrentStore(Mage::app()->getStore());
if ($_FILES['csv']['error'] == 0) {
// import csv to array
}
foreach ($customers as $customer) {
$email = /* email */;
$newCustomer = Mage::getModel('customer/customer');
$newCustomer->setWebsiteId( Mage::app()->getWebsite()->getId() );
$newCustomer->setStore( Mage::app()->getStore() );
$newCustomer->loadByEmail( $email );
$exists = $newcustomer->getId();
if(!$exists){
$newCustomer->setEmail( $email );
$newCustomer->setFirstname( /* first name */ );
$newCustomer->setMiddlename( /* middle name */ );
$newCustomer->setLastname( /* last name */ );
// this creates a new password
// importing a passwords is a whole other thing
$newPassword = $newCustomer->generatePassword();
$newCustomer->setPassword( $newPassword );
$createdDate= new Zend_Date( /* date created */ );
$newCustomer->setCreatedAt($createdDate->toString('Y-M-d H:m:s'));
// save new customer
try {
$newCustomer->setConfirmation(null);
$newCustomer->save();
}
catch (Exception $ex) {
Zend_Debug::dump($ex->getMessage());
}
// create address to save
$newAddress=array(
'firstname' => /* address first name */,
'lastname' => /* address last name */,
'street' => array(
'0' => /* address street line 1 */,
'1' => /* address street line 2 */,
),
'city' => /* address city */,
'region_id' => /* address region id */,
'region' => /* address region */,
'postcode' => /* address postcode */,
'country_id' => /* address country id */,
'telephone' => /* address telephone */,
);
// save address
$address=Mage::getModel('customer/address');
$address->setData($newAddress)
->setCustomerId($newCustomer->getId())
->setIsDefaultBilling('1')
->setIsDefaultShipping('1')
->setSaveInAddressBook('1');
try {
$address->save();
}
catch (Exception $ex) {
Zend_Debug::dump($ex->getMessage());
}
}
}