Instaluję atrybut za pomocą następującego skryptu:
$installer = $this;
$installer->startSetup();
$installer->removeAttribute('catalog_product', 'customizableonly');
$installer->addAttribute('catalog_product', 'customizableonly', array(
'group' => 'General',
'input' => 'select',
'type' => 'int',
'label' => 'Customizable Only',
'source' => 'eav/entity_attribute_source_boolean',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => 1,
'required' => 0,
'visible_on_front' => 0,
'is_html_allowed_on_front' => 0,
'is_configurable' => 0,
'searchable' => 0,
'filterable' => 0,
'comparable' => 0,
'unique' => false,
'user_defined' => false,
'default' => 0,
'is_user_defined' => false,
'used_in_product_listing' => true
));
$this->endSetup();
Próbowałem także z $installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
A potem używam wartości atrybutu w innym kodzie. Ale zawsze rozumiem null
. Dowiedziałem się, że atrybut nie otrzymuje wartości domyślnej. Kiedy otwieram produkt - lista pokazuje No
, ale kiedy dostaję jego wartość w kodzie, to jest null
. Jeśli po prostu kliknę menu rozwijane, po prostu ustaw No
i zapisz produkt - wszystko działa.
Jak temu zaradzić?
Odpowiedzi:
Spróbuj ustawić wartość domyślną jako ciąg
lub pusty
Aktualizacja
Wartości domyślne są dodawane po dodaniu nowego produktu do starych, co nie ma wpływu.
Spróbuj to naprawić w zarządzaniu produktem za pomocą akcji masowej
Wewnątrz zarządzania produktami odbywa się akcja o nazwie „Aktualizuj atrybuty”. Wybierz wszystkie produkty, które chcesz zaktualizować, a następnie wybierz Aktualizuj atrybuty i dodaj wszystkie nowe informacje w.
źródło
Należy ręcznie ustawić wartość dla wszystkich istniejących encji:
źródło: /programming/4906497/default-attribute-value-for-all-product-in-magento . Zobacz odpowiedź Asrara Malika.
źródło
Miałem problem z tym, że z fragmentami kodu powyżej atrybut select został utworzony zamiast atrybutu tak / nie. Aby to naprawić, musiałem użyć
zamiast:
źródło
Nie byłem również w stanie dodać wartości domyślnej 0 do atrybutu tak / nie.
Dlatego użyłem zdarzenia, aby dodać wartość domyślną 0
Metoda:
źródło
Aby dodać niestandardowy atrybut tak / nie do magento, utwórz moduł, jak pokazano poniżej.
http://www.pearlbells.co.uk/how-to-add-custom-attribute-dropdown-to-category-section-magento/
źródło