Nilai default dari atribut produk turun turun 'ya / tidak'

10

Saya memasang atribut dengan skrip berikut:

$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();

Juga mencoba $installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');

Dan kemudian saya menggunakan nilai atribut dalam beberapa kode lainnya. Tapi saya selalu mengerti null. Saya menemukan bahwa, atribut tidak mendapatkan nilai default. Ketika saya membuka produk - dropdown menunjukkan No, tetapi ketika saya mendapatkan nilainya dalam kode itu null. Jika saya cukup mengklik dropdown, cukup atur Nodan simpan produk - semuanya berfungsi.

Bagaimana cara mengatasinya?

Syspect
sumber
untuk membuat drop / atribut gunakan magento.stackexchange.com/questions/12137/...
Amit Bera

Jawaban:

14

Cobalah untuk menetapkan nilai default sebagai string

'default' => '0'

atau kosong

'default' => ''

Memperbarui

Nilai default ditambahkan ketika Anda menambahkan produk baru untuk yang lama itu tidak mempengaruhi.

Cobalah untuk memperbaikinya dalam manajemen Produk dengan aksi massal

Di dalam mengelola produk, ada tindakan yang disebut "Perbarui Atribut". Pilih semua produk yang ingin Anda perbarui lalu pilih Perbarui Atribut dan tambahkan semua informasi baru di.

oleksii.svarychevskyi
sumber
1
Saya sudah mencobanya dan tidak berhasil. :(
Syspect
3

Anda harus menetapkan nilai untuk semua entitas yang ada secara manual:

$productIds = Mage::getResourceModel('catalog/product_collection')
    ->getAllIds();

// Now create an array of attribute_code => values
$attributeData = array("my_attribute_code" =>"my_attribute_value");

// Set the store to affect. I used admin to change all default values
$storeId = 0; 

// Now update the attribute for the given products.
Mage::getSingleton('catalog/product_action')
    ->updateAttributes($productIds, $attributeData, $storeId);

sumber: /programming/4906497/default-attribute-value-for-all-product-in-magento . Lihat jawaban Asrar Malik.

Chuongnh
sumber
3

Saya memiliki masalah bahwa dengan cuplikan kode di atas atribut-pilih dibuat alih-alih atribut ya / tidak. Untuk memperbaiki ini saya harus menggunakan

'input'             => 'boolean'

dari pada:

'input'             => 'select'
ahe_borriglione
sumber
0

Saya tidak dapat menambahkan nilai default 0 ke atribut ya / tidak juga.

Oleh karena itu saya menggunakan acara untuk menambahkan nilai default 0

<frontend>
    <events>
        <customer_save_before>
            <observers>
                <xx_save_observer>
                    <type>singleton</type>
                    <class>xx/observer</class>
                    <method>customerSaveBefore</method>
                </xx_save_observer>
            </observers>
        </customer_save_before>
    </events>
</frontend>

Metode:

public function customerSaveBefore(Varien_Event_Observer $observer)
{
    try {
        $customer = $observer->getCustomer();
        if (!$customer->getYourCustomAttribute()) {
            $customer->setYourCustomAttribute(0);
        }
    } catch ( Exception $e ) {
        Mage::log( "customer_save_before observer failed: ".$e->getMessage());
    }
}
ahe_borriglione
sumber
0

Untuk menambahkan atribut kustom ya / tidak ke magento membuat modul seperti yang ditunjukkan di bawah ini.

http://www.pearlbells.co.uk/how-to-add-custom-attribute-dropdown-to-category-section-magento/

    <?php
$this->startSetup();
$this->addAttribute(Mage_Catalog_Model_Category::ENTITY, 'featured_product', array(
    'group'         => 'General Information',
    'input'         => 'select',
    'type'          => 'text',
    'label'         => 'Featured Product',
    'backend'       => '',
    'visible'       => true,
    'required'      => false,
    'visible_on_front' => true,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'source' => 'eav/entity_attribute_source_boolean',
));

$this->endSetup();
pengguna46226
sumber