'हाँ / नहीं' ड्रॉपडाउन कस्टम उत्पाद विशेषता का डिफ़ॉल्ट मान


10

मैं निम्नलिखित स्क्रिप्ट के साथ विशेषता स्थापित करता हूं:

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

के साथ भी कोशिश की $installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');

और फिर मैं किसी अन्य कोड में विशेषता के मूल्य का उपयोग कर रहा हूं। लेकिन मुझे हमेशा मिलता है null। मुझे पता चला कि, विशेषता को एक डिफ़ॉल्ट मान सेट नहीं मिलता है। जब मैं एक उत्पाद खोलता हूं - ड्रॉपडाउन दिखाता है No, लेकिन जब मुझे कोड में इसका मूल्य मिलता है null। अगर मैं बस ड्रॉपडाउन पर क्लिक करता हूं, तो बस सेट करें Noऔर उत्पाद को बचाएं - सब कुछ काम करता है।

इससे कैसे उबरें?


के लिए बनाने के ड्रॉप / विशेषता उपयोग magento.stackexchange.com/questions/12137/...
अमित बेरा

जवाबों:


14

डिफ़ॉल्ट मान को स्ट्रिंग के रूप में सेट करने का प्रयास करें

'default' => '0'

या खाली

'default' => ''

अपडेट करें

डिफ़ॉल्ट मान तब जोड़े जाते हैं जब आप पुराने के लिए नए उत्पाद जोड़ते हैं जो इसे प्रभावित नहीं करता है।

बड़े पैमाने पर कार्रवाई के साथ उत्पाद प्रबंधन में इसे ठीक करने की कोशिश करें

अंदर उत्पादों का प्रबंधन, "अद्यतन गुण" नामक एक कार्रवाई है। उन सभी उत्पादों का चयन करें जिन्हें आप अद्यतन करना चाहते हैं और फिर अद्यतन विशेषताएँ चुनें और सभी नई जानकारी जोड़ें।


1
मैंने कोशिश की कि पहले से ही और काम नहीं करता है। :(
सस्पेक्ट

3

आपको सभी मौजूदा इकाई के लिए मैन्युअल रूप से मूल्य निर्धारित करना चाहिए:

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

स्रोत: /programming/4906497/default-attribute-value-for-all-product-in-magento । देखिए असरार मलिक का जवाब


3

मुझे समस्या थी कि हां-ना विशेषता के बजाय एक चयन-विशेषता के ऊपर कोड स्निपेट के साथ बनाया गया था। इसे ठीक करने के लिए मुझे इस्तेमाल करना पड़ा

'input'             => 'boolean'

के बजाय:

'input'             => 'select'

0

मैं डिफ़ॉल्ट मान 0 को हां / नहीं विशेषता में भी जोड़ने में सक्षम नहीं था।

इसलिए मैंने डिफ़ॉल्ट मान 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>

तरीका:

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

0

Magento में हाँ / नहीं कस्टम विशेषता जोड़ने के लिए नीचे दिखाए अनुसार मॉड्यूल बनाएं।

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();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.