Como programaticamente definir um clientes de identificação do site
-
13-12-2019 - |
Pergunta
Alguém poderia por favor informar por que ao adicionar um cliente através de um script externo com o site e armazenar valores são ignorados e o cliente é sempre atribuído a "admin" e não para "site principal".
Eu só tenho 1 site e 1 loja dentro do meu Magento instância e cada um tem um id de 1
Meu código está abaixo:
$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());
}
Solução
Em vez de usar setStore()
você poderia usar 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);
...
Outras dicas
Você tem um erro com o seu código,
->setStore()
O acima não ter um valor inteiro para o arquivo de ID, é preciso uma instância de armazenamento atual, por exemplo.
->setStore(Mage::app()->getStore())
No seu caso, imagino que seria,
->setStore(Mage::getModel('core/store')->load(2));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange