Définir par programme un identifiant de site Web de clients
-
13-12-2019 - |
Question
Quelqu'un pourrait-il savoir pourquoi lorsque vous ajoutez un client via un script externe, les valeurs de site Web et Store sont ignorées et que le client est toujours affecté à "admin" et non à "Site principal".
Je n'ai que 1 site Web et 1 magasin dans mon instance Magento et chacun a un identifiant de 1
Mon code est ci-dessous:
$customer = Mage::getModel("customer/customer");
$customer ->setWebsiteId(1)
->setStore(1)
->setFirstname('John')
->setLastname('Smith')
->setEmail('john@smith.com')
->setPassword('password')
->setGroupId('1');
try{
$customer->save();
}
catch (Exception $e) {
Zend_Debug::dump($e->getMessage());
}
La solution
Au lieu d'utiliser setStore()
, vous pouvez utiliser setStoreId()
$customer = Mage::getModel('customer/customer');
$email = 'john@smith.com';
$storeId = 1;
$website_id = Mage::getModel('core/store')->load($storeId)->getWebsiteId();
$customer->setWebsiteId($website_id);
$customer->setStoreId($storeId);
...
Autres conseils
Vous avez une erreur avec votre code,
->setStore()
Ce qui précède ne prend pas de valeur entière pour l'ID de magasin, il prend une instance de la boutique actuelle, par exemple.
->setStore(Mage::app()->getStore())
Dans votre cas, j'imagine que ce serait,
->setStore(Mage::getModel('core/store')->load(2));
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange