ค่าเริ่มต้นของแอตทริบิวต์ผลิตภัณฑ์ที่กำหนดเองแบบเลื่อนลง 'ใช่ / ไม่ใช่'


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และบันทึกผลิตภัณฑ์ - ทุกอย่างใช้งานได้

จะเอาชนะสิ่งนี้ได้อย่างไร?


สำหรับการสร้าง drop / attribute ใช้magento.stackexchange.com/questions/12137/…
Amit Bera

คำตอบ:


14

ลองตั้งค่าเริ่มต้นเป็นสตริง

'default' => '0'

หรือว่างเปล่า

'default' => ''

ปรับปรุง

ค่าเริ่มต้นจะถูกเพิ่มเมื่อคุณเพิ่มผลิตภัณฑ์ใหม่สำหรับผลิตภัณฑ์เก่าที่ไม่มีผลกระทบ

ลองแก้ไขในการจัดการผลิตภัณฑ์ด้วยการกระทำจำนวนมาก

ภายในจัดการผลิตภัณฑ์มีการกระทำที่เรียกว่า "อัปเดตแอตทริบิวต์" เลือกผลิตภัณฑ์ทั้งหมดที่คุณต้องการอัปเดตแล้วเลือกอัปเดตแอตทริบิวต์และเพิ่มข้อมูลใหม่ทั้งหมดใน


1
ฉันลองแล้วและใช้งานไม่ได้ :(
Syspect

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 ดูคำตอบของ Asrar Malik


3

ฉันมีปัญหากับโค้ดขนาดเล็กด้านบน select-attribute ถูกสร้างขึ้นแทนที่จะมีคุณสมบัติใช่ / ไม่ใช่ เพื่อแก้ไขปัญหานี้ฉันต้องใช้

'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

สำหรับการเพิ่มคุณสมบัติใช่ / ไม่ใช่กำหนดเองในวีโอไอพีสร้างโมดูลดังแสดงด้านล่าง

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();
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.