有人可以告诉我为什么在通过外部脚本添加客户时,网站和存储值被忽略,并且客户始终分配给“管理员”而不是“主网站”。

我的 Magento 实例中只有 1 个网站和 1 个商店,每个网站的 id 均为 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()
.

上面没有拍摄商店ID的整数值,它需要当前商店的实例,例如。

->setStore(Mage::app()->getStore())
.

在你的情况下,我想象它是,

->setStore(Mage::getModel('core/store')->load(2));
.

许可以下: CC-BY-SA归因
scroll top