作为商店老板,两个姓名字段数据(名字和姓氏)在经营商店时非常不便。

  • 当我导入送货地址时,我使用的大多数承运商仅询问一个全名数据。我必须在导出送货地址后将名字和姓氏数据合并为一个。(即使是支付公司也只要求一项全名数据)

  • 当我管理或搜索带有姓名的客户时,它会引起一些问题

  • 我厌倦了只获取一个姓名数据,但是我遇到了问题,因为 magento 在很多方面(甚至在欢迎消息中)使用不同的名字和姓氏,所以我放弃了

  • 从客户的角度来看,这看起来也很不方便。输入名字,然后单击其他字段并输入姓氏,而不仅仅是输入全名。(结账很重要,因为它涉及转化率)

我希望 Magento 作为店主只获得一个名称数据(我相信 Magento 也是为店主制作的)

我至少可以知道 Magento 要求两个名称字段作为开发人员视图的原因吗?有什么好处吗?

例如)顶级电子商务公司 Amazon 和 eBay 仅询问一项

这是 亚马逊 新地址表格 - 只有一个姓名字段

enter image description here

易趣 新地址表格 - 只有一个姓名字段

enter image description here

有帮助吗?

解决方案

使用名字和姓氏只是 Magento 架构的一部分。

你的问题是问为什么会出现这种情况。据推测,Magento 已经添加了 firstnamelastname 属性(甚至还有一个可选的 middlename 一种被定义为默认但不显示),为商家提供尽可能多的灵活性。正如您所指出的,这与其他更成熟的网站不同,但 Magento 必须迎合一系列可能的商家,并尝试尽可能不具体。

然而,像所有 Magento 一样,没有什么是一成不变的,并且可以更改,但这是一个编码练习,因此可能是一个相当复杂的过程。为了实现这一点,您需要做一些不同的事情。我将尝试并详细说明我将在下面采取的步骤。

1.添加全名属性

需要将全名作为属性添加到客户。您可以创建一个模块来处理此问题,但本质上,您需要运行安装程序脚本来安装 fullname 作为针对客户属性集的属性。
网上有很多关于这方面的有用教程。 卓越 Magento 有一个很棒的 (下面部分显示代码,根据您的要求进行编辑)

$setup->addAttribute('customer', 'fullname', array(
    'type' => 'text',
    'input' => 'text',
    'label' => 'Full Name',
    'global' => 1,
    'visible' => 1,
    'required' => 1,
    'user_defined' => 1,
    'default' => '0',
    'visible_on_front' => 1
));

2.在模板中添加新属性

您现在需要检查新属性的字段并将其添加到所有相关模板中;从而允许用户输入它。

您可以在流程中删除“名字”和“姓氏”字段(只要适用)。

3.调整名字和姓氏属性

名字和姓氏是数据库中的必需属性,因此在删除它们之前您将无法执行太多操作 required 属性本身的状态。

您需要编写一个一次性脚本来调整设置;代码应类似于以下内容:

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('customer','firstname');
if ($attributeId) {
    $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
    $attribute->setIsRequired(false)->save();
}

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('customer','lastname');
if ($attributeId) {
    $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
    $attribute->setIsRequired(false)->save();
}

之后,您应该已成功转移 firstnamelastname 成一个单一的 fullname 场地。

如果您有任何现有客户,您将能够编写一个脚本来结合 firstnamelastname 字段进入 fullname 一。

其他提示

简单它取决于玛托地架构。Magento存储“名字”或“姓氏”作为属性,也是“中间名”,即人民很少使用。

我不确定你为什么会遇到这种情况。
Magento 有一个 $customer->getName() 客户对象的函数,它将始终返回完整的名称。
您只需要使用 getName() 而不是 getfullName() 或 getData('fullname')。

我希望这能解决您所有的疑虑。:)

我至少可以知道 Magento 要求两个名称字段作为开发人员视图的原因吗?有什么好处吗?

您可以从名字和姓氏创建全名,也可以单独使用它们,但如果您只有一个姓名字段,则不能这样做。就像前端渲染一样,我想得到这样的问候 Hello Aman 而不是 Hello Aman Srivastava.

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