【发布时间】:2010-09-09 03:20:47
【问题描述】:
Magento 除了联系人姓名之外,还可以通过他们的公司名称查看/管理我们的客户以便轻松找到他们吗?它被用于 B2B,因此当电子邮件发出时,他们会提取客户的姓名,而不是更合适的公司名称。
这是全局设置吗?
提前致谢。
【问题讨论】:
标签: magento customization
Magento 除了联系人姓名之外,还可以通过他们的公司名称查看/管理我们的客户以便轻松找到他们吗?它被用于 B2B,因此当电子邮件发出时,他们会提取客户的姓名,而不是更合适的公司名称。
这是全局设置吗?
提前致谢。
【问题讨论】:
标签: magento customization
Magento 默认将公司名称存储在客户的地址上,因此访问起来有点困难。
您没有理由不能添加另一个客户字段来将公司名称放在客户记录上。这样您就可以毫无问题地访问它,并且可以更改系统中的其他屏幕以反映它。
如果您不想太长,您始终可以实现一种方法,从默认地址中提取公司名称,并默认将其保存到会话中,以便于检索。
编辑:更好的主意。
查看销售电子邮件模板,有两种方法用于获取客户姓名:
$order->getCustomerName();
$order->getBillingAddress()->getName();
我没有看到对公司名称的任何单独引用,因此您应该能够将这两种方法替换为您自己的方法并获得所需的结果。您需要创建自己的模块并覆盖客户/地址和销售/订单的模型(其他人在其他地方对此进行了深入介绍)。然后创建如下所示的方法:
public function getCustomerName() {
if($this->getBillingAddress()->getCompany()) {
return $this->getBillingAddress()->getCompany();
}
return parent::getCustomerName();
}
以上是销售订单的示例,请根据客户进行相应修改。现在,您的公司名称将在可用时使用,当它们不可用时,将回退到原始实施(客户名称)。
希望有帮助!
谢谢, 乔
您对通用应用程序的看法是正确的。如果您确实只想要电子邮件,那么问题是您是否可以在需要的地方访问自定义功能。如果手边没有对象,我不肯定你将能够调用你需要的任何方法。
在这种情况下可行的一种方法是覆盖下面提到的两个对象,而是向它们添加一个 getCompanyName 方法。这样一来,您就可以调用正确的对象,并且可以根据需要专门编辑电子邮件。
【讨论】: