2013-10-21 19 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()); 
} 

は、私が使用することができ、他の機能はありますか?あなたはcart.phtml上のオプションのリストを取得することはできません

+2

答えを知っていますが、この方法を探しているなら、しないでください: 'のvar_dump(get_class_methods(get_class($アイテム)));' - あなたがしますクラスのすべてのメソッド(マジックメソッドではない)の配列を取得します。 –

+0

非常に便利なことを知って、感謝@ StefanBrendle – Karl

+0

@カール:それを改善するためにあなたの質問にタイプ(それはクラス名です)を追加します。 – hakre

答えて

21

を使用してみてください私のためには行かない。 $_itemにはgetProduct()メソッドが含まれていない可能性があります。

一方、直接ロードできるidがある可能性があります。私の例では、商品オブジェクトを$_items = $this->helper('catalog/product_compare')->getItemCollection()の項目から取得する必要がありました。

これは使用するために私を可能にします:<?php $product = Mage::getModel('catalog/product')->load($_item->getId()) ?>

-7

は、オプションのリストについては、ファイルの下に/編集を更新する必要があります。

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']; 
     } 
    } 
} 
関連する問題