2012-09-06 3 views
2

나는 구입 한 제품을 얻으려고합니다. 이 내 코드입니다 :이벤트 sales_order_place_after를 사용하면 magento로 사용자 정의 제품 속성이 반환되지 않습니다.

/** @var $order Mage_Sales_Model_Order */ 
    $order = $eventObserver->getOrder(); 

    /** @var $items Mage_Sales_Model_Resource_Order_Collection */ 
    $items = $order->getItemsCollection(array(), TRUE); 

    /** @var $item Mage_Sales_Model_Order_Item */ 
    foreach($items as $item) { 
     $product = $item->getProduct(); 
     var_dump($product->getData('language')); 
    } 

언어 사용자 정의 속성입니다. 이 경우 그것은 비어 있으며, 나는 이유를 모른다. 이름, ID 또는 SKU와 같은 모든 기본 속성이 작동합니다.

이 언어는 구성 가능한 속성으로 사용됩니다.

가치를 얻으려면 무엇을해야합니까?

+1

속성의 입력 유형은 무엇입니까? 텍스트 필드, 텍스트 영역, 날짜, 예/아니요, 복수 선택 또는 드롭 다운입니까? – ceckoslab

+0

다중 선택입니다. – Armin

+1

$ product-> getAttributeText ('language')?를 사용하면 데이터가 있습니까? – ceckoslab

답변

0

가 알았어요! 나는 제품 ID를 가지고 제품을 다시로드 할 때 는 :

$product = $item->getProduct(); 
$product = Mage::getModel('catalog/product')->load($product->getId()); 

을 나는 번호와 언어를 얻을.

+1

정확하고 더 나은 성능을 위해 "전체 제품을로드하지 않고 제품 ID를 알고있는 경우 특정 제품 속성 값을 얻는 방법"을 확인하십시오. - http://stackoverflow.com/questions/6924226/magento-product-attribute-get-value – ceckoslab

0

이 시도 :

$items = $order->getAllVisibleItems() 
+0

이것을 사용하면 설정 가능한 제품 만 얻을 수 있습니다. (알맞은 점은 보이는 제품입니다.) 하지만 구성 가능한 제품에는 언어가 포함되어 있지 않습니다. 따라서 주문한 간단한 제품을 구입해야합니다. – Armin

관련 문제