2014-05-14 1 views
0

내 Magento Checkout에 문제가 있습니다. 게스트로 결제 할 때 사용자가 결제 세부 사항 결제 과정에서 입력 한 이메일 주소를 인식하지 못하는 것 같습니다.Magento의 고객 이메일 설정

사람이 다음과 같은 것을 작성하는 방법을 설명 할 수 아래 내 psuedocode : 내가 아는

if (Customer Email is EMPTY) 
    set Customer Email to email stored in the order object 

그 때 출력이 (관찰자 내에서) 나에게 이메일 주소를 제공합니다 다음

$order = $observer->getEvent()->getOrder(); 
echo $order->getBillingAddress()->getEmail(); 

답변

0

문제가 해결 - 문, 그러므로 항상 실패했다 게스트 ...에는 고객 객체가

1

게스트 이메일을 얻기 위해 시도했던 부분은, 당신이 성공을 원하는 가정거야하는 당신은 지정하지 않은 :

$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId()); 
echo $order->getCustomerEmail(); 

EDIT : 청구서 수신 섹션의 경우 다음 사항이 적용됩니다. 나는 그것을 Payment 섹션에서 테스트했다. 우선

Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress()->getEmail()

+0

그것은 그래서 결제 세부 정보 섹션 내가 인용/판매를 필요가 추정 한 후이 될 것입니다 바보 마법사를 arrghh 없을 경우 필요? – Zabs

1

이메일 필드에 클라이언트 측 유효성 검사를 적용합니다. 코드 아래에 그 사용이 서버 측에서 전자 메일 필드의 유효성을 검사 한 후

<input type="text" class="input-text validate-email required-entry" title="Email Address" value="" id="billing:email" name="billing[email]">

처럼 체크 아웃 페이지에서 이메일 필드에 이러한 클래스 "validate-email required-entry"을 적용 나는 당신이 체크 아웃을 위해 타사 확장을 사용하는 가정합니다. 따라서 청구서 수신 주소 저장을위한 컨트롤러 & 조치를 디버깅해야합니다. 예를 들어 타사 확장이 json 또는 ajax를 사용하거나 수동으로 디버그해야하는 경우 mozila 브라우저에서 방화 광을 사용할 수 있습니다.

귀하의 모듈 설정 파일에서 청구서 수신 주소를 기입 한 후 이벤트에 옵저버 기능을 호출하십시오.

<events> 
    <controller_action_predispatch_[module]_[controller]_[action]> 
     <observers> 
      <Observer_Name> 
       <class>[Package]_[Module]_Model_Observer</class> 
       <method>checkEmail</method> 
      </Observer_Name> 
     </observers> 
    </controller_action_predispatch_[module]_[controller]_[action]> 
</events> 

상자는 관찰자 모델 클래스 :

class [Package]_[Module]_Model_Observer 
    { 

     public function checkEmail(Varien_Event_Observer $observer) 
     { 
       // example code   
       $data = $this->getRequest()->getPost('billing', array()); // you need to check what filed are posted for billing address or email address 

      if (!isset($data['email'])) { 
       return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result)); 
      } 

     } 

    } 

희망이 당신을 도와줍니다!