Pregunta

Podría alguien aconsejar por qué cuando agrega un cliente a través de un script externo, el sitio web y los valores de la tienda se ignoran y el cliente siempre se asigna a "admin" y no "sitio web principal".

Solo tengo 1 sitio web y 1 tienda dentro de mi instancia de Magento y cada uno tiene una ID de 1

Mi código está abajo:

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

¿Fue útil?

Solución

en lugar de usar setStore(), podría haber usado 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);
...

Otros consejos

Tienes un error con su código,

->setStore()

Lo anterior no requiere un valor entero para la ID de la tienda, se necesita una instancia de la tienda actual, por ejemplo.

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

En su caso, me imagino que sería,

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top