$ product-> getOptions () boş sonuç döndürüyor


9

Oluşturduğum özel bir blokta ürün özel seçenekleri değeri de dahil olmak üzere ürün detayları almaya çalışıyorum.Bu ürün detay sayfasında kullanılan kod ve orada çalıştı, ama özel blok sayfasında kullanmaya çalışırken Seçenekler boş değer döndürür olsun.

if ($ _product-> getId ()) {  
    foreach ($ _product-> getOptions () $ opt olarak) {  
    echo $ optionType = $ opt-> getType ();  
      if ($ optionType == 'drop_down') {  
        $ değerleri = $ opt-> getValues ​​();  
        foreach ($ değerleri $ v olarak)
        {
     $ mydata = $ v-> getTitle ();      
print_r ($ mydata);    
        }
      }  
    }   
}

Ben burada ne eksik emin değilim magento için yeni.
Herhangi biri bana bir ipucu verebilir misiniz
Teşekkürler


İlgili cevabı bu cevaba bakınız .
quickshiftin

Yanıtlar:


2

Bunu dene:

if (Mage::registry('current_product')) {
    $product = Mage::registry('current_product');
} else {
    $product = Mage::getSingleton('catalog/product');
}


if ($product->getId()) {
    if ($product->hasCustomOptions()) {
        foreach ($product->getOptions() as $option) {
            $optionType = $option->getType();
            if ($optionType == 'drop_down') {
                $values = $option->getValues();
                foreach ($values as $k => $value) {
                    print_r($value);
                }
            }

        }
    }
}

1
çalışmıyor ... $ prodct dizi yazdırdığınızda, aynı kod ürün görünümü sayfasında iyi çalışırken özel seçenekler dışında tüm bilgiler gösteriliyor
Shivika Sharma

2

Sorun, ürünün bloğunuza tam olarak yüklenmemiş olmasıdır. load()Yöntem, bir nesnenin tüm bilgiler yüklenmiş olduğundan emin olur. Yalnızca loadByAttribute()veya koleksiyon kullanıyorsanız , durum böyle değildir.

Bir örnek şöyle olabilir:

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

Birden fazla ürün görüntülemek istiyorsanız, load()güçlü bir olumsuz performans etkisi olduğu için kullanmaktan kaçınmalısınız . Bir koleksiyona seçenekler ekleme konusunda size yardımcı olamadığım için üzgünüm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.