Программно установить идентификатор сайта клиентов

magento.stackexchange https://magento.stackexchange.com//questions/72810

  •  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));
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top