2014-12-14 5 views
0

내가 수행 한 작업 :백엔드 관리 패널 주문 고객 정보 얻기

고객 주문을 마젠타 색 관리 패널에 배치 한 후에 수행 할 사용자 정의 계산이 거의 없습니다. 내 모듈의 config.xml 안에있는 tab 내부의 sales_order_save_after 이벤트에 연결했습니다.

문제점 :

나는 순서는 백엔드에 배치 된 누구를 위해 실제 고객의 CUSTOMER_ID을 얻을 필요가있다. 어떻게 할 수 있습니까?

$_customer = Mage::getSingleton('customer/session')->getCustomer(); 
$customer_id=$_customer->getId(); 

것은 위의 나에게 프론트 엔드의 경우에 CUSTOMER_ID를 제공합니다 나는 백엔드에서 주문할 때 고객의 ID를 얻을 수있는 방법이 필요합니다.

"adminhtml_sales_order_create_process_data"이벤트가 내가 연결해야하는 이벤트 인 경우 알려주세요. 왜냐하면 나는 어떤 사건에 대해서도 혼란 스럽기 때문입니다.

도와주세요.

+0

당신이 프런트 엔드에서 주문을 한 후 또는 수동으로 주문을 생성 한 후 고객 데이터를 얻을 것입니까 백엔드? –

+0

을 수동으로 생성해야합니다. @AlexIvanov –

답변

0

sales_order_place_after를 사용하십시오. 그리고 코드에서,이 같은 고객 ID를 얻을 수 있습니다 :

public function hookSalesOrderPlaceAfter(Varien_Event_Observer $observer) { 
    $order = $observer->getEvent()->getOrder(); 
    $customer_email = $order->getCustomerEmail(); 
    $website_id = Mage::app()->getStore()->getWebsiteId(); 
    $customer = Mage::getModel('customer/customer')->setWebsiteId($website_id)->loadByEmail($customer_email); 
    ... 
} 

그것은 당신을 도울 것입니다 바랍니다.

다음이 코드는 나를 위해 작동
0

(덕분에 Makwana 케탄이 코드를 공유)

$sessionquoteId = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getId(); 
    $sessionCustomerId = Mage::getModel('sales/quote')->loadByIdWithoutStore($sessionquoteId)->getCustomerId(); 
+0

이 답변으로 현재 문제 해결에 OP가 도움이되는 방법에 대한 설명과 함께 몇 가지 설명을 추가하십시오. –