Agregue un atributo de categoría adicional en la pestaña de información general

10

Estoy intentando agregar una categoría adicional atribuida a la pestaña de información general. He intentado agregar eso usando el siguiente código,

require_once("app/Mage.php");
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$entityTypeId     = $installer->getEntityTypeId('catalog_category');
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);


$installer->addAttribute('catalog_category', 'nav_left',  array(
    'type'     => 'tinyint',
    'label'    => 'Show in left navgigation',
    'input'    => 'boolean',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0
));

$installer->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'nav_left',
    '11'

//last Magento's attribute position in General tab is 10
);

$attributeId = $installer->getAttributeId($entityTypeId, 'nav_left');

$installer->run("
INSERT INTO `{$installer->getTable('catalog_category_entity_int')}`
(`entity_type_id`, `attribute_id`, `entity_id`, `value`)
    SELECT '{$entityTypeId}', '{$attributeId}', `entity_id`, '1'
        FROM `{$installer->getTable('catalog_category_entity')}`;
");

Esto está funcionando bien, pero esto está agregando una pestaña de información adicional llamada Generaljusto a la derecha de general infomation tabHe intentado agregarlo a la primera pestaña usando attributeGroupIdset to 4, pero después de probarlo, simplemente está bloqueando el sitio.

Alguna idea de cómo puedo agregar ese atributo a la primera pestaña.

ravisoni
fuente

Respuestas:

7

Pruébalo así:

$installer->addAttribute('catalog_category', 'nav_left', array(
    'group'         => 'General Information',
    'type'     => 'int',
    'label'    => 'Show in left navgigation',
    'input'    => 'boolean',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0
)); 

EDITAR
$installer debe ser instancia de Mage_Catalog_Model_Resource_Setup.

Un poco fuera de tema: recomiendo agregar este script en un archivo de actualización de uno de sus módulos en lugar de hacer una instancia Mage::app()y ejecutarlo 'sobre la marcha'. Si lo coloca en un script de actualización, es portátil a otras instancias.

Marius
fuente
Gracias por su respuesta, pero después de ejecutar esto, recibo un error del servidor en el sitio.
ravisoni
¿Qué error estás recibiendo? Edité la respuesta. Quizás ese sea el problema.
Marius
los archivos de registro no contienen nada de lo que dice el archivo del informe. "No se encontró la tabla o vista base: la tabla 1146 'wwwinsta_Joyevincent.catalog_category_entity_tinyint' no existe"
ravisoni
Okzz, esto funcionó agregando el atributo de fecha en la pestaña de información general, pero estoy tratando de agregar un atributo de tipo sí / no ¿alguna idea para eso?
ravisoni
2
Creo que es mejor que hagas una publicación con todas las preguntas que tienes sobre esto. No tiene sentido discutirlo sobre la pregunta de otra persona porque está un poco fuera de tema.
Marius
5

He logrado que funcione de la manera esperada de esta manera.

$installer->addAttribute('catalog_category', 'left_nav',  array(
    'group'    => 'General Information',
    'type'     => 'int',
    'label'    => 'Show in left navigation',
    'input'    => 'select',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0,
    'source' => 'eav/entity_attribute_source_boolean'
));

Gracias

ravisoni
fuente
0

Puede personalizar el atributo sí / no a la sección de categoría utilizando el siguiente código.

$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',

));

Consulte mi tutorial para obtener una explicación paso a paso y la estructura del archivo. http://www.pearlbells.co.uk/add-custom-attribute-dropdown-category-section-magento/

Liz Eipe C
fuente