2012-11-09 31 views
5

Tôi đang cố gắng thêm thuộc tính tùy chỉnh theo chương trình trong tập lệnh nâng cấp mô-đun. Kịch bản chạy tốt và tạo thuộc tính mới (nghĩa là nó xuất hiện trong danh sách quản trị Magento trong Catalog-> Attributes-> Manage Attributes khi kịch bản đã chạy). Lúc đầu, tôi đang sử dụng lớp Mage_Eav_Model_Entity_Setup (như được đề xuất here và không phải trường 'hiển thị' cũng như 'apply_to' được đặt như dự định ('hiển thị' luôn sai và 'áp dụng cho' vẫn là "Tất cả sản phẩm loại" hơn là sử dụng danh sách được cung cấp trong kịch bản).Hiển thị thuộc tính mới được tạo bởi kịch bản nâng cấp Magento

Sau đó, tôi tìm thấy this, mà giải thích rằng tôi nên sử dụng Mage_Catalog_Model_Resource_Setup thay vào đó, và điều đó đã khắc phục vấn đề với 'apply_to'.

Nhưng tôi vẫn có thể không nhận thuộc tính 'visible' của thuộc tính để thiết lập là true. Nếu ai đó có bất kỳ ý tưởng nào tại sao thuộc tính 'visible' vẫn không được thiết lập như nó shou Tôi sẽ rất biết ơn khi nghe, cảm ơn!

Đây là mã kịch bản nâng cấp của tôi:

$updater = $this;  // $this is class Mage_Eav_Model_Entity_Setup 
$updater->startSetup(); 
$updater->addAttribute('catalog_product', 'my_test_attribute', array(
    'label'    => 'My Test Attribute', 
    'type'    => 'int', 
    'input'    => 'select', 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'apply_to'   => 'simple,configurable', 
    'group'    => 'General', 
    'visible'   => true, 
    'required'   => true, 
    'user_defined'  => true,   
)); 
$updater->endSetup(); 

Tôi đang chạy Magento 1.7.0.1 trong WAMP trên Windows 7.

+0

Bạn có thể làm rõ thuộc tính "có thể nhìn thấy" thuộc tính "là gì không? –

+1

Tim, bằng cách "thiết lập thuộc tính hiển thị thành true" Tôi có nghĩa là trong danh sách quản trị Magento trong Catalog-> Attributes-> Manage Attributes cột "Visible" nên được đặt thành "Yes" cho thuộc tính mới. –

+0

Điều "Mage_Catalog_Model_Resource_Setup" đã khiến tôi phát điên! Cảm ơn! –

Trả lời

1

Tôi đã giải quyết vấn đề này ngay bây giờ - điều cần thiết là thuộc tính "visible_on_front" được đặt quá, chứ không phải chỉ là "hiển thị". tức là tôi đã thêm dòng này vào tập lệnh ở trên và giờ nó hoạt động:

'visible_on_front' => true, 
0

Thuộc tính này không phải là Boolean, đó là số nguyên. Vì vậy, bạn đã thiết lập 1 = true 0 = false;

+0

Cảm ơn câu trả lời của bạn, nhưng sử dụng 1 và 0 không có sự khác biệt. –

Các vấn đề liên quan