2013-10-21 5 views
6

에서 가져 오기 제품 옵션 : 나는이 항목에 대한 제품 옵션을 얻을 필요가

foreach($this->getItems() as $_item) { 

} 

, 나는 몇 가지 방법을 시도했지만 난 필요한 결과를 검색 할 수 없습니다.

나는 시도했다 :

foreach($this->getItems() as $_item) { 
    print_r($_item->getProductOptions()); 
} 

과 :

foreach($this->getItems() as $_item) { 
    print_r($_item->getOptionList()); 
} 

내가 사용할 수있는 다른 기능이 있습니까?

+2

은 답을 알고,하지만 당신은 방법을 찾고 있다면, 시도하지 마십시오

이 나를 사용할 수 있습니다 클래스의 모든 메서드 (마법 메서드가 아닌)의 배열을 가져옵니다. –

+0

알아두면 매우 편리합니다. 감사합니다. @StefanBrendle – Karl

+0

@ 칼 : 유형을 추가하면 (즉, 클래스 이름) 문제를 개선 할 수 있습니다. – hakre

답변

21

사용하십시오 나를 위해 간다. $_item이 무엇이든간에 getProduct() 메서드가 없을 수 있습니다.

반면에 직접로드 할 수있는 id을 사용할 수 있습니다. 예를 들어, $_items = $this->helper('catalog/product_compare')->getItemCollection()의 항목에서 제품 객체를 가져와야했습니다. `- 당신은 것이다 위해서 var_dump (get_class_methods (get_class ($ 항목)))`: <?php $product = Mage::getModel('catalog/product')->load($_item->getId()) ?>

-7

당신은 cart.phtml에 옵션 목록을 얻을 수 없다, 당신은 옵션 목록 파일 아래/편집을 업데이트 할 수 있습니다

app\design\frontend\YOUR_PACKAGE_NAME\YOUR_TEMPLATE_NAME\template\checkout\cart\item\default.phtml 

그것이 도움이되기를 바랍니다! 어쩌면이 같은

0

:

$_item->getProduct()->getTypeInstance(true)->getOrderOptions($_item->getProduct()); 
1

이 당신이 올바른 방향으로 시작할 수 있습니다 ...

$productSku = "ABCDE"; 
$product = Mage::getModel('catalog/product'); 
$productId = $product->getIdBySku($productSku); 
$product->load($productId); 

/** 
* In Magento Models or database schema level, the product's Custom Options are 
* executed & maintained as only "options". So, when checking whether any product has 
* Custom Options or not, we should check by using this method "hasOptions()" only. 
*/ 
if($product->hasOptions()) { 
    echo '<pre>'; 

    foreach ($product->getOptions() as $o) { 
     $optionType = $o->getType(); 
     echo 'Type = '.$optionType; 

     if ($optionType == 'drop_down') { 
      $values = $o->getValues(); 

      foreach ($values as $k => $v) { 
       print_r($v); 
      } 
     } 
     else { 
      print_r($o); 
     } 
    } 

    echo '</pre>'; 
} 
+0

$ product-> hasOptions()에서 비어 있습니다. –

0

현재의 대답은 약자로 :

foreach($items as $product) { 
    $options = $product->getProduct()->getTypeInstance(true)->getOrderOptions($product->getProduct()); 
    if ($options) 
    { 
     if (isset($options['options'])) 
     { 
      $result = $options['options']; 
     } 
     if(count($result)>0){ 
      foreach($result as $key =>$value){ 
       $resultoption = $value['value']; 
     } 
    } 
} 
관련 문제