$ product-> getOptions () ส่งคืนผลลัพธ์ว่างเปล่า


9

ฉันพยายามรับรายละเอียดผลิตภัณฑ์รวมถึงค่าตัวเลือกที่กำหนดเองของผลิตภัณฑ์ในบล็อกแบบกำหนดเองที่ฉันสร้างขึ้นนี่คือรหัสที่ฉันใช้ในหน้ารายละเอียดผลิตภัณฑ์และใช้งานได้ แต่เมื่อพยายามใช้ในหน้าบล็อกที่กำหนดเอง

ถ้า ($ _product-> getId ()) {  
    foreach ($ _product-> getOptions () เป็น $ opt) {  
    echo $ optionType = $ opt-> getType ();  
      if ($ optionType == 'drop_down') {  
        $ values ​​= $ opt-> getValues ​​();  
        foreach ($ values ​​เป็น $ v)
        {
     $ mydata = $ v-> getTitle ();      
print_r ($ MyData);    
        }
      }  
    }   
}

ฉันใหม่สำหรับวีโอไอพีดังนั้นไม่แน่ใจว่าสิ่งที่ฉันพลาดที่นี่
คนใดคนหนึ่งสามารถให้คำแนะนำฉัน
ขอบคุณ


ดูคำตอบนี้จากหัวข้อที่เกี่ยวข้อง
quickshiftin

คำตอบ:


2

ลองสิ่งนี้:

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
ไม่ทำงาน ... เมื่อฉันพิมพ์อาร์เรย์ $ prodct ข้อมูลทั้งหมดจะถูกแสดงยกเว้นตัวเลือกที่กำหนดเองในขณะที่รหัสเดียวกันทำงานได้ดีในหน้าดูผลิตภัณฑ์
Shivika Sharma

2

ปัญหาคือผลิตภัณฑ์ไม่ได้บรรจุอยู่ในบล็อกของคุณอย่างเต็มที่ load()วิธีการทำให้แน่ใจว่าข้อมูลทั้งหมดของวัตถุที่มีการโหลด หากคุณใช้loadByAttribute()หรือคอลเล็กชันเท่านั้นนี่ไม่ใช่กรณี

ตัวอย่างจะเป็น:

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

หากคุณต้องการแสดงผลิตภัณฑ์หลายรายการคุณควรหลีกเลี่ยงการใช้งานload()เนื่องจากมีผลกระทบด้านลบอย่างมาก ขออภัยที่ฉันไม่สามารถช่วยคุณเพิ่มตัวเลือกในคอลเลกชัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.