Quando si eseguono delle integrazioni tra il gestionale (teamsystem, zucchetti, danea, mexal, sap, as400) capita spesso di dover fare un caricamento iniziale di un database esistente su Magento. Questo perchè magento ad esempio sostituisce un vecchio ecommerce custom, o perchè si vuol fare un’importazione iniziale dei clienti dal gestionale al sistema ecommerce Magento.

Gli scambi tra il gestionale e magento avvengono solitamente con dei tracciati di scambio in formato csv o xml. Vediamo uno snipped di codice che permette di creare un cliente  e i relativi indirizzi di fatturazione e di spedizione.

Supponiamo di aver letto un file xml con i dati del cliente. Questi dati sono presenti nell’array $user

$customer = Mage::getModel('customer/customer');
// try to load by email ...
$customer->setWebsiteId('1');
$customer->loadByEmail($user['email']);
$customer->setPasswordHash($user['password']);
$customer->setFirstname($user['nome']);
$customer->setLastname($user['cognome']);
$customer->setEmail($user['email']);
$customer->setCreatedAt(date('Y-M-d h:m:s',$user['registrazione']));
$customer->save();
// crea indirizzo di spedizione
$b_address = Mage::getModel("customer/address");
$b_address->setCustomerId($customer->getId());
$b_address->setFirstname($user['nome']);
$b_address->setLastname($user['cognome']);
$b_address->setCountryId('IT'); //Country code
$b_address->setRegionId('2'); // region id
$b_address->setStreet($user['indirizzo']);
$b_address->setPostcode($user['cap']);
$b_address->setCity($user['citta']);
$b_address->setTelephone($user['telefono']);
$b_address->setTaxVat($user['partita_iva']);
$b_address->setIsDefaultBilling(true);
$b_address->save();

Da notare il metodo $customer->setPasswordHash('hashedpassword') che permette di inserire una passord già inserita in un sistema in hash. Nell’indirizzo al termine chiamiamo il metodo setIsDefaultBilling(true) per definire l’indirizzo come indiritto di fatturazione.

In questo modo possiamo inserire altri indirizzi e assegnarli di default alla spedizione o alla fatturazione. Si possono inserire anche altri indirizzi in rubrica.

Nei prossimi articoli vedremo come creare dei prodotti con tier prices da programmazione.
Enjoy!