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

enter image description here

eBay Nouveau formulaire d'adresse - un seul champ de nom

enter image description here

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top