Создайте клиента программно, используя setData


У меня есть динамический массив данных, который содержит данные о клиентах, данные внутри массива будут вариативными, поэтому я использую функцию setData для вставки данных клиента в модель клиента следующим образом:

 $data0['website_id'] = '0';
 $data0['group_id'] = '1';
 $data0['firstname'] = 'Bruce';
 $data0['lastname'] = 'Wayne';
 $data0['email'] = '[email protected]';
 $data0['password'] = 'BecauseIAmBatman';
 $data1['website_id'] = '0';
 $data1['group_id'] = '1';
 $data1['firstname'] = 'Clark';
 $data1['lastname'] = 'Kent';
 $data1['email'] = '[email protected]';
 $data1['gender'] = '1';
 $data1['taxvat'] = '12345';
 $data1['password'] = 'SupermanIsDead';
 $data[] = $data0;
 $data[] = $data1;

 foreach ($data as $dat) {
   $dat = array($dat);
   $customer = Mage::getModel("customer/customer");
   $customer->setData($dat); 
   $customer->save();
 }

Если я выполню приведенный выше код, я получу такую ошибку:

Произошла ошибка при обработке вашего запроса Требуется электронная почта клиента

Author: Shell Suite, 2017-10-31

2 answers

Попробуйте использовать приведенный ниже код, он будет работать для вас

<?php 
ini_set('display_errors', 1);
require_once ( "app/Mage.php" );
Mage::app();
 $data['website_id'] = '0';
 $data['group_id'] = '1';
 $data['first_name'] = 'Bruce';
 $data['last_name'] = 'Wayne';
 $data['email'] = '[email protected]';
 $data['password'] = 'BecauseIAmBatman';

 $data1['website_id'] = '0';
 $data1['group_id'] = '1';
 $data1['first_name'] = 'Second';
 $data1['last_name'] = 'User';
 $data1['email'] = '[email protected]';
 $data1['password'] = 'BecauseIAmBatman';

$mainData[]=$data;
$mainData[]=$data1;


foreach($mainData as $data)
{
    $customer = Mage::getModel("customer/customer");
    foreach ($data as $key=>$value) {
        $customer->setData($key,$value); 
    }
    $customer->save();  
}
echo "done";

Надеюсь, это поможет.

 2
Author: Dhaval Solanki, 2017-10-31 04:14:42

Я не знаю, почему вы используете несколько массивов при извлечении своих данных. Вы можете просто объединить их, а затем задать данные для моделирования.

 $data0['website_id'] = '0';
 $data0['group_id'] = '1';
 $data0['firstname'] = 'Bruce';
 $data0['lastname'] = 'Wayne';
 $data0['email'] = '[email protected]';
 $data0['password'] = 'BecauseIAmBatman';
 $data1['website_id'] = '0';
 $data1['group_id'] = '1';
 $data1['firstname'] = 'Clark';
 $data1['lastname'] = 'Kent';
 $data1['email'] = '[email protected]';
 $data1['gender'] = '1';
 $data1['taxvat'] = '12345';
 $data1['password'] = 'SupermanIsDead';
 $data = array_merge($data0, $data1);

Установите данные в свою модель и сохраните

$customer = Mage::getModel("customer/customer");
$customer->setData($data);
$customer->save();
 0
Author: Priyank, 2017-10-31 05:09:16