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());
    }

Était-ce utile?

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
scroll top