Por que o Magento pergunta nome e sobrenome?
-
12-12-2019 - |
Pergunta
Como proprietário da loja, os dois dados do campo de nome (nome e sobrenome) são muito inconvenientes durante a execução da loja.
A maioria das transportadoras que uso pede apenas um dado de nome completo quando importo o endereço de entrega.Tenho que mesclar os dados de nome e sobrenome como um só após o endereço de entrega da exportação.(Mesmo uma empresa de pagamento pede apenas um dado de nome completo)
Causa algum problema quando gerencio ou pesquiso clientes com nome
Cansei de obter dados de apenas um nome, mas tive problemas, pois o magento usa o nome e o sobrenome de maneira diferente de várias maneiras (até mesmo na mensagem de boas-vindas), então desisto
Na opinião do cliente, também parece inconveniente.Digite o nome e clique em outro campo e digite o sobrenome em vez de apenas digitar o nome completo.(checkout é importante devido à sua taxa de conversão relacionada)
Espero que o Magento obtenha apenas um dado de nome como proprietário da loja (acredito que o Magento também foi feito para o proprietário da loja)
Posso saber pelo menos o motivo pelo qual o Magento pede dois campos de nome como visão do desenvolvedor?Existe algum benefício?
por exemplo) A principal empresa de comércio eletrônico Amazon e ebay perguntam apenas um
Isso é Amazonas Novo formulário de endereço – Apenas um campo de nome
eBay Novo formulário de endereço – apenas um campo de nome
Solução
Faz parte da arquitetura do Magento usar um nome e um sobrenome.
Sua pergunta pergunta por que esse é o caso.Presumivelmente, Magento adicionou o firstname
e lastname
atributos (juntamente com até mesmo um opcional middlename
um é definido como padrão, mas não é exibido) para fornecer o máximo de flexibilidade possível ao comerciante.Isso é diferente de outros sites mais estabelecidos, como você observou, mas o Magento precisa atender a uma variedade de possíveis comerciantes e tenta ser o mais inespecífico possível.
No entanto, como todo Magento, nada é imutável e pode ser alterado, porém este é um exercício de codificação e, como resultado, pode ser um procedimento bastante complicado.Para habilitar isso, você precisaria fazer algumas coisas diferentes.Tentarei detalhar as etapas que seguiria abaixo.
1.Adicionar atributo de nome completo
O nome completo precisa ser adicionado como um atributo para um cliente.Você pode criar um módulo para lidar com isso, mas essencialmente, você precisará executar um script de instalação para instalar fullname
como um atributo em relação ao conjunto de atributos do cliente.
Existem muitos tutoriais úteis sobre isso na web. Excelência Magento tem um ótimo (código parcialmente mostrado abaixo, editado de acordo com suas necessidades)
$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.Adicione seu novo atributo em seus modelos
Agora você precisa adicionar o campo do seu novo atributo a todos os modelos relevantes;permitindo assim a entrada do usuário.
Você pode remover os campos Nome e Sobrenome no processo, sempre que aplicáveis.
3.Ajuste os atributos de nome e sobrenome
Nome e Sobrenome são atributos obrigatórios no banco de dados, então você não poderá fazer muito até remover seus required
status dos próprios atributos.
Você precisará escrever um script de uso único para ajustar as configurações;o código deve ser semelhante ao seguinte:
$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();
}
Depois disso, você deverá ter transferido com sucesso firstname
e lastname
em um único fullname
campo.
Se você já tiver clientes, poderá escrever um script que combinará os firstname
e lastname
campos para o fullname
um.
Outras dicas
simples depende da arquitetura magento.Onde magento armazena "primeiro nome" ou "sobrenome" como um atributo e também "nome do meio" que raramente é usado pelos povos.
Não sei por que você está tendo esse cenário.
Magento tem um $customer->getName()
função para objeto cliente que sempre retornará o nome completo.
Você só precisa usar getName() em vez de getfullName() ou getData('fullname').
Espero que isso resolva todas as suas preocupações.:)
Posso saber pelo menos o motivo pelo qual o Magento pede dois campos de nome como visão do desenvolvedor?Existe algum benefício?
Você pode criar nome completo a partir de first_name e last_name e também pode usá-los separadamente, mas se tiver apenas um único campo para nome, não poderá fazer isso.Assim como na renderização de front-end, gostaria de receber saudações como Hello Aman
em vez de Hello Aman Srivastava
.