2013-10-21 13 views
6

dan alın Ürün seçenekleri: Ben bu öğeler için ürün seçeneklerini almak gerekir

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

} 

, birkaç metot denedim ama ben İhtiyacım olan sonuçları alamıyorum.

denedim:

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

Ve:

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

Kullanabileceğim başka işlevleri var mı?

+2

cevabı biliyorum, ama bir yönteme arıyorsanız, çalışmayın:

Bu beni kullanmanızı sağlar Sınıfın tüm yöntemlerinden (sihirli yöntemlerden değil) bir dizi olsun. –

+0

Bilmek için çok kullanışlı, teşekkürler @StefanBrendle – Karl

+0

@Karl: Geliştirmek için sorunuzu türüne (yani classname) ekleyin. – hakre

cevap

21

kullanmayı deneyin benim için bir no-go. $_item ne olursa olsun getProduct() yöntemine sahip olmayabilir.

Diğer taraftan, doğrudan buradan yükleyebileceğiniz bir id ürününüz olacaktır. Örneğimde, ürün nesnesini $_items = $this->helper('catalog/product_compare')->getItemCollection()'daki bir öğeden almam gerekiyordu. `- Şunu; var_dump (get_class_methods (get_class ($ öğesi)))`: <?php $product = Mage::getModel('catalog/product')->load($_item->getId()) ?>

-7

Sen cart.phtml üzerinde seçenek listesini alamıyor, sen opsiyon listesi için dosyanın altında/düzenlemek güncellemek zorunda:

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

Umarım yardımcı olur! Belki böyle

0

:

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

Bu, doğru yönde başlamak gidebilir ...

$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

$ ürüne boşalma -> hasOptions() –

0

akım cevap bu haliyle:

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']; 
     } 
    } 
} 
İlgili konular