Программно установить идентификатор сайта клиентов
-
13-12-2019 - |
Вопрос
Может ли кто-то, пожалуйста, сообщите, почему при добавлении клиента через внешний скрипт на веб-сайте и значения хранения игнорируются, и клиент всегда назначен «admin», а не на «главный веб-сайт».
У меня есть только 1 сайт и 1 магазин в моем экземпляре MAGENTO, и каждый имеет идентификатор 1
Мой код ниже:
$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());
}
. Решение
вместо использования setStore()
, вы могли бы использовать 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);
...
. Другие советы
У вас есть ошибка с вашим кодом,
->setStore()
.
Приведенное выше не принимает целочисленное значение для идентификатора хранилища, он принимает экземпляр текущего хранилища, например.
->setStore(Mage::app()->getStore())
.
В вашем случае я представляю, это будет,
->setStore(Mage::getModel('core/store')->load(2));
. Не связан с magento.stackexchange