Как я могу изменить store_id клиента в Magento или установить атрибут created_from при создании нового клиента

Я хочу иметь возможность выбирать, с каким магазином связать нового покупателя, когда я создаю его учетную запись в качестве администратора. Я обнаружил, что, переопределив этот файл:

app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php

Изменение этого:

if ($customer->getId()) {
        $form->getElement('website_id')->setDisabled('disabled');
        $form->getElement('created_in')->setDisabled('disabled');
    } else {
        $fieldset->removeField('created_in');
    }

К этому:

if ($customer->getId()) {
        $form->getElement('website_id');//->setDisabled('disabled');
        $form->getElement('created_in');//->setDisabled('disabled');
    } else {
        //$fieldset->removeField('created_in');
    }

Это дает мне текстовый ввод с меткой «Создано из», но он не сохраняет идентификатор, который я ввожу в него. Я хочу, чтобы он сохранял эту информацию, а также показывал мне выпадающий список магазинов на выбор вместо пустого ввода текста. То, как разработчики Magento реализовали свои формы с помощью Zend, действительно сбивает с толку. Пожалуйста помоги!

редактировать:

Вот почему мне нужно контролировать, с каким магазином связан клиент: у меня есть несколько магазинов, и мне нужно, чтобы клиенты перенаправлялись после успешного входа в магазин, связанный с их учетной записью. Учетные записи может создавать только администратор. Магазины, отличные от магазинов по умолчанию, могут быть доступны только пользователям, которые вошли в систему и связаны с этим магазином.


person Mark Murphy    schedule 24.03.2011    source источник
comment
Я смущен. Когда вы находитесь на экране index.php/admin/customer/new/, вы можете выбрать, с каким веб-сайтом ассоциироваться, из раскрывающегося списка. Он отключен только в режиме редактирования index.php/admin/customer/edit/id/xxx/. Вам действительно нужно это делать?   -  person Jonathan Day    schedule 25.03.2011
comment
Это только для выбора сайта. Да, мне нужно это сделать. Вот почему: у меня есть несколько магазинов, и мне нужно, чтобы покупатели после успешного входа перенаправлялись в магазин, связанный с их учетной записью. Учетные записи может создавать только администратор. Магазины, отличные от магазинов по умолчанию, могут быть доступны только пользователям, которые вошли в систему и связаны с этим магазином.   -  person Mark Murphy    schedule 25.03.2011


Ответы (1)


это то, что вы ищете :?

Поместите это после if, которое Вы упомянули в своем вопросе.

$fieldset->removeField('created_in');
$fieldset->addField('created_in', 'select', array(
   'name'      => 'created_in',
   'label'     => Mage::helper('adminhtml')->__('Created In'),
   'id'        => 'created_in',
   'title'     => Mage::helper('adminhtml')->__('Created In'),
   'class'     => 'input-select',
   'style'     => 'width: 80px',
   'options'   => array(
   //Put here list of websites || stores || store views
      'key_1' => 'VALUE_1', 
      'key_2' => 'VALUE_2'
   ),
), 'website_id');
person xyz    schedule 30.03.2011