Pourquoi Magento demande le prénom et le nom ?
-
12-12-2019 - |
Question
En tant que propriétaire du magasin, les deux données des champs de nom (prénom et nom) sont très gênantes lors de l'exécution du magasin.
La plupart des transporteurs que j'utilise ne demandent qu'un seul nom complet lorsque j'importe une adresse de livraison.Je dois fusionner les données de prénom et de nom en une seule après l'adresse de livraison d'exportation.(Même une société de paiement ne demande qu'un seul nom complet)
Cela pose des problèmes lorsque je gère ou recherche des clients avec leur nom.
Je suis fatigué de n'avoir qu'un seul nom, mais j'ai eu des problèmes car magento utilise le prénom et le nom différemment de plusieurs manières (même dans le message de bienvenue), alors j'abandonne
Du point de vue du client, cela semble également être un inconvénient.Tapez le prénom, cliquez sur un autre champ et tapez le nom de famille au lieu de simplement taper le nom complet.(le paiement est important car son taux de conversion associé)
J'espère que Magento n'obtiendra qu'un seul nom en tant que propriétaire de magasin (je crois que Magento est également conçu pour le propriétaire de magasin)
Puis-je savoir au moins la raison pour laquelle Magento demande deux champs de nom comme point de vue du développeur ?Y a-t-il un avantage ?
par exemple) Amazon et eBay, une grande société de commerce électronique, n'en demandent qu'une seule
C'est Amazone Nouveau formulaire d'adresse - Un seul champ de nom
eBay Nouveau formulaire d'adresse - un seul champ de nom
La solution
Utiliser un prénom et un nom de famille fait simplement partie de l'architecture de Magento.
Votre question demande pourquoi c'est le cas.Vraisemblablement, Magento a ajouté le firstname
et lastname
attributs (avec même un facultatif middlename
un est défini par défaut mais n'est pas affiché) pour offrir le plus de flexibilité possible au commerçant.Il s'agit d'une différence par rapport à d'autres sites plus établis, comme vous l'avez noté, mais Magento doit s'adresser à un éventail de marchands possibles et essaie d'être aussi non spécifique que possible.
Cependant, comme tout Magento, rien n’est gravé dans le marbre et cela peut être modifié, mais il s’agit d’un exercice de codage et, par conséquent, d’une procédure assez compliquée.Pour activer cela, vous devez effectuer différentes opérations.Je vais essayer de détailler les étapes que je suivrais ci-dessous.
1.Ajouter un attribut de nom complet
Le nom complet doit être ajouté en tant qu'attribut d'un client.Vous pouvez créer un module pour gérer cela, mais essentiellement, vous devrez exécuter un script d'installation pour installer fullname
en tant qu'attribut par rapport à l'ensemble d'attributs client.
Il existe de nombreux didacticiels utiles à ce sujet sur le Web. Excellence Magento en a un excellent (code partiellement affiché ci-dessous, modifié selon vos besoins)
$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.Ajoutez votre nouvel attribut dans vos modèles
Vous devez maintenant parcourir et ajouter le champ de votre nouvel attribut à tous les modèles pertinents ;permettant ainsi à l'utilisateur de le saisir.
Vous pouvez supprimer les champs Prénom et Nom au cours du processus, partout où ils sont applicables.
3.Ajuster les attributs prénom et nom
Le prénom et le nom sont des attributs obligatoires dans la base de données, vous ne pourrez donc pas faire grand-chose tant que vous n'aurez pas supprimé leurs attributs. required
statut à partir des attributs eux-mêmes.
Vous devrez écrire un script à usage unique pour ajuster les paramètres ;le code doit ressembler à ce qui suit :
$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();
}
Après cela, vous devriez avoir transféré avec succès firstname
et lastname
en un seul fullname
champ.
Si vous avez des clients existants, vous pourrez écrire un script qui combinera les firstname
et lastname
champs dans le fullname
un.
Autres conseils
simple, cela dépend de l'architecture de Magento.Où Magento Store "Prénom" ou "Nom" en tant qu'attribut et aussi «Nom du milieu» qui est rarement utilisé par les peuples.
Je ne sais pas pourquoi vous rencontrez ce scénario.
Magento a un $customer->getName()
fonction pour l'objet client qui renverra toujours le nom complet.
Il vous suffit d'utiliser getName() plutôt que getfullName() ou getData('fullname').
J'espère que cela résoudra toutes vos préoccupations.:)
Puis-je savoir au moins la raison pour laquelle Magento demande deux champs de nom comme point de vue du développeur ?Y a-t-il un avantage ?
Vous pouvez créer un nom complet à partir de first_name et last_name et vous pouvez également les utiliser séparément, mais si vous n'avez qu'un seul champ pour le nom, vous ne pouvez pas le faire.Comme pour le rendu frontend, j'aimerais recevoir un message d'accueil en tant que Hello Aman
plutôt que Hello Aman Srivastava
.