Вопрос

Как владельцу магазина, два поля имени (имя и фамилия) очень неудобны при работе с магазином.

  • Большинство перевозчиков, которыми я пользуюсь, запрашивают только одно полное имя при импорте адреса доставки.Мне нужно объединить данные имени и фамилии в одно после адреса экспортной доставки.(Даже платежная компания запрашивает только одно полное имя)

  • Это вызывает некоторые проблемы, когда я управляю клиентами по имени или ищу их.

  • Я устал получать только одно имя, но у меня возникли проблемы, так как magento по-разному использует имя и фамилию во многих отношениях (даже в приветственном сообщении), поэтому я сдаюсь.

  • По мнению покупателя, это тоже выглядит неудобно.Введите имя, щелкните другое поле и введите фамилию вместо того, чтобы просто вводить полное имя.(оформление заказа важно, поскольку оно связано с коэффициентом конверсии)

Я надеюсь, что Magento получит только одно имя владельца магазина (я считаю, что Magento создан и для владельца магазина)

Могу ли я узнать хотя бы причину, по которой Magento запрашивает два поля имени с точки зрения разработчика?Есть ли польза?

например) Ведущие компании электронной коммерции Amazon и ebay задают только один вопрос.

Это Амазонка Новая форма адреса — только одно поле имени

enter image description here

eBay Новая форма адреса - только одно поле имени

enter image description here

Это было полезно?

Решение

Использование имени и фамилии — это просто часть архитектуры Magento.

Ваш вопрос спрашивает, почему это так.Предположительно, Magento добавил firstname и lastname атрибуты (вместе даже с необязательным middlename один из них определен по умолчанию, но не отображается), чтобы обеспечить максимальную гибкость для продавца.Как вы заметили, это отклонение от других, более авторитетных сайтов, но Magento должен обслуживать широкий круг возможных продавцов и старается быть как можно более неспецифичным.

Однако, как и во всем Magento, ничего не высечено на камне, и это можно изменить, однако это упражнение по кодированию, и в результате это может быть довольно сложной процедурой.Чтобы включить это, вам нужно сделать несколько разных вещей.Ниже я постараюсь подробно описать шаги, которые я предприму.

1.Добавить атрибут полного имени

Полное имя необходимо добавить в качестве атрибута клиента.Вы можете создать модуль для этой проблемы, но, по сути, вам нужно будет запустить скрипт установщика для установки. fullname в качестве атрибута набора атрибутов клиента.
В сети есть много полезных уроков по этому поводу. У Excellence 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();
}

После этого вы должны были успешно перенести firstname и lastname в единый fullname поле.

Если у вас есть существующие клиенты, вы сможете написать сценарий, который объединит firstname и lastname поля в fullname один.

Другие советы

Простое зависит от архитектуры Magento.Там, где Magento хранит «имя» или «фамилия» в качестве атрибута, а также «отчество», которое редко используется народами.

Я не уверен, почему у вас такой сценарий.
В Магенто есть $customer->getName() функция для объекта клиента, которая всегда возвращает полное имя.
Вам просто нужно использовать getName(), а не getfullName() или getData('fullname').

Я надеюсь, что это решит все ваши проблемы.:)

Могу ли я узнать хотя бы причину, по которой Magento запрашивает два поля имени с точки зрения разработчика?Есть ли польза?

Вы можете создать полное имя из first_name и Last_name, а также использовать их отдельно, но если у вас есть только одно поле для имени, вы не сможете этого сделать.Как и в случае с интерфейсным рендерингом, я хотел бы получить приветствие в виде Hello Aman скорее, чем Hello Aman Srivastava.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top