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

enter image description here

eBay Novo formulário de endereço – apenas um campo de nome

enter image description here

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top