문제

매장 오너로서 두 개의 이름 필드 데이터(이름, 성)는 매장 운영 시 매우 불편합니다.

  • 제가 이용하는 대부분의 배송업체에서는 배송 주소를 가져올 때 하나의 이름 데이터만 요청합니다.배송 주소를 내보낸 후 성과 이름 데이터를 하나로 병합해야 합니다.(결제사에서도 이름정보 하나만 요구함)

  • 이름으로 고객을 관리하거나 검색할 때 문제가 발생합니다.

  • 이름 데이터 하나만 얻기엔 지쳤는데 magento가 이름과 성을 여러 방식으로(환영 메시지에서도) 다르게 사용하기 때문에 문제가 발생하여 포기합니다.

  • 고객 입장에서도 불편해 보입니다.이름을 입력하고 다른 필드를 클릭한 후 전체 이름만 입력하는 대신 성을 입력하세요.(결제는 관련 전환율이므로 중요합니다)

Magento는 매장 주인으로서 이름 데이터를 하나만 받았으면 좋겠습니다. (Magento도 매장 주인을 위해 만들어졌다고 생각합니다.)

마젠토가 개발자 입장에서 이름 필드 2개를 요구하는 이유라도 알 수 있을까요?어떤 이점이 있습니까?

예) 최고의 전자상거래 회사인 Amazon과 eBay는 하나만 묻습니다.

이것은 아마존 새 주소 양식 - 이름 필드가 하나만 있음

enter image description here

이베이 새 주소 양식 - 이름 필드가 하나만 있음

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.템플릿에 새 속성을 추가하세요.

이제 모든 관련 템플릿에 새 속성에 대한 필드를 추가해야 합니다.이를 통해 사용자 입력이 가능해집니다.

적용 가능한 경우 프로세스에서 이름 및 성 필드를 제거할 수 있습니다.

삼.이름 및 성 속성 조정

이름과 성은 데이터베이스의 필수 속성이므로 해당 속성을 제거하기 전까지는 많은 작업을 수행할 수 없습니다. 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가 "이름"또는 "성"을 속성과 "중간 이름"으로 저장하는 곳에서 민족에서 거의 사용되지 않는 "중간 이름".

왜이 시나리오를 가지고 있는지 확신 할 수 없습니다.
Magento에는 항상 완전한 이름을 반환 할 고객 객체를위한 $customer->getName() 기능이 있습니다.
getFullName () 또는 getData ( 'fullname')가 아닌 getName ()을 사용해야합니다.

이것은 모든 우려를 해결하기를 바랍니다.:)

적어도 Magento가 두 개의 이름 필드를 개발자의 견해로 물어 보는 이유를 적어도 알 수 있습니까?어떤 이점이 있습니까?

first_name 및 last_name에서 fullName을 만들 수 있으며 별도로 사용할 수 있지만 이름에 대한 단일 필드 만 있으면 할 수 없습니다.Frontend 렌더링을 위해 Hello Aman가 아닌 Hello Aman Srivastava로서 인사말을 받고 싶습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top