'yes / no'드롭 다운 사용자 정의 제품 속성의 기본값


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하면 제품을 설정 하고 저장하기 만하면 모든 것이 작동합니다.

이것을 극복하는 방법?


답변:


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

선택 속성 위의 코드 스 니펫이 yes / no 속성 대신 생성되는 문제가있었습니다. 이 문제를 해결하려면 사용해야했습니다

'input'             => 'boolean'

대신에:

'input'             => 'select'

0

yes / no 속성에도 기본값 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에 yes / no 사용자 정의 속성을 추가하려면 아래와 같이 모듈을 작성하십시오.

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.