$ sản phẩm-> getOptions () trả về kết quả trống


9

Tôi đang cố gắng lấy chi tiết sản phẩm bao gồm giá trị tùy chọn sản phẩm trong khối tùy chỉnh do tôi tạo. Đây là mã tôi đã sử dụng trên trang chi tiết sản phẩm và nó hoạt động ở đó, nhưng khi thử sử dụng nó trên trang khối tùy chỉnh, tùy chọn sẽ trả về giá trị trống.

if ($ _product-> getId ()) {  
    foreach ($ _product-> getOptions () là $ opt) {  
    echo $ tùy chọnType = $ opt-> getType ();  
      if ($ tùy chọnType == 'drop_down') {  
        $ value = $ opt-> getValues ​​();  
        foreach (giá trị $ là $ v)
        {
     $ mydata = $ v-> getTitle ();      
print_r ($ mydata);    
        }
      }  
    }   
}

Tôi chưa quen với magento nên không chắc chắn những gì tôi đang bỏ lỡ ở đây.
Có ai có thể cho tôi một gợi ý xin
cảm ơn


Xem câu trả lời này từ một chủ đề liên quan.
quickshiftin

Câu trả lời:


2

Thử đi:

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
không hoạt động ... Khi tôi in mảng $ prodct, tất cả thông tin sẽ được hiển thị ngoại trừ các tùy chọn tùy chỉnh trong khi cùng một mã đang hoạt động tốt trong trang xem sản phẩm
Shivika Sharma 6/2/2016

2

Vấn đề là sản phẩm không được tải đầy đủ trong khối của bạn. Các load()phương pháp làm cho chắc chắn rằng tất cả các thông tin của một đối tượng được nạp. Nếu bạn chỉ sử dụng loadByAttribute()hoặc một bộ sưu tập, đây không phải là trường hợp.

Một ví dụ sẽ là:

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

Nếu bạn muốn hiển thị nhiều sản phẩm, bạn nên tránh sử dụng load()vì nó có tác động tiêu cực mạnh. Xin lỗi vì tôi không thể giúp bạn thêm tùy chọn vào bộ sưu tập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.