如何在客户帐户页面和管理区域中添加新的自定义字段?

时间:2011-12-05 13:22:55

标签: php magento e-commerce custom-attributes

我知道这可能是之前可能会被问到但是通过网络我会得到一个合适的工作帖来解决我的问题。因此想到自己问自己。

我想为我的客户帐户和编辑页面创建一个自定义字段“公司”。我还希望在“管理客户”部分的管理区域中看到此字段以及其他字段,如ID,姓名,电子邮件,组,电话,国家/地区等。

我知道最好的方法是创建一个自定义模块但是这样做的确切方法是什么,这样新创建的模块就会反映在前端(A / c寄存器和编辑页面)和后端(Admin)区域。

如果有人可以告诉我这样做的确切方法,我真的很感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。它的这个文件需要编辑才能在Manage Customers Grid中添加一个额外的列。

应用程序/代码/核心/法师/ AdminHtml /砌块/客户/ Grid.php

    protected function _prepareCollection()
    {
       $collection = Mage::getResourceModel(‘customer/customer_collection’)
       // …
      // ADD THIS TO THE END:
      ->joinAttribute(
      ‘billing_company’, ‘customer_address/company’, ‘default_billing’, null, ‘left’);
      // …
    }

以及列:

protected function _prepareColumns()
    {
       $this->addColumn(‘company’, array(
       ‘header’ => Mage::helper(‘customer’)->__(‘Company’),
       ‘index’ => ‘billing_company’));
        ...
    }

如果需要在Customer Register上添加Company字段并编辑页面,那么他们需要编辑customer / form / register.phtml和edit.phtml文件并添加

      <label for="company"><?php echo $this->__('Company') ?></label>
                    <div class="input-box">
                        <input type="text" name="company" id="company"       value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
                    </div>

就是这样!希望它有所帮助!