Adicionar atributo de upload de imagem personalizado ao produto

7

Tentei adicionar um novo atributo de upload de imagem ao produto Magento usando o script de atualização sql, mas recebi a mensagem de erro como:

Modelo de back-end inválido especificado: catalog / product_attribute_backend_image

O arquivo tem o nome upgrade-0.0.1-0.0.2.phpcorreto, porque vejo a nova versão na core_resourcetabela.

Aqui está o meu código:

$installer = $this;
$installer->startSetup();
$this->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'image_cert', array(
    'type' => 'varchar',
    'group' => 'Design',
    'label' => 'Certificate Image',
    'input' => 'image',
    'backend' => 'catalog/product_attribute_backend_image',
    'required' => false,
    'sort_order' => 55,
    'global' => 1
));
$installer->endSetup();

O que estou fazendo de errado?

Oleg
fonte

Respostas:

2

Experimente este código (atributo de imagem base)

<?php
$setup = new Mage_Catalog_Model_Resource_Setup('core_setup');

$attr = array (
  'attribute_model' => NULL,
  'backend' => NULL,
  'type' => 'varchar',
  'table' => NULL,
  'frontend' => 'catalog/product_attribute_frontend_image',
  'input' => 'media_image',
  'label' => 'Base Image',
  'frontend_class' => NULL,
  'source' => NULL,
  'required' => '0',
  'user_defined' => '0',
  'default' => NULL,
  'unique' => '0',
  'note' => NULL,
  'input_renderer' => NULL,
  'global' => '0',
  'visible' => '1',
  'searchable' => '0',
  'filterable' => '0',
  'comparable' => '0',
  'visible_on_front' => '0',
  'is_html_allowed_on_front' => '0',
  'is_used_for_price_rules' => '0',
  'filterable_in_search' => '0',
  'used_in_product_listing' => '0',
  'used_for_sort_by' => '0',
  'is_configurable' => '1',
  'apply_to' => NULL,
  'visible_in_advanced_search' => '0',
  'position' => '0',
  'wysiwyg_enabled' => '0',
  'used_for_promo_rules' => '0',
  'tooltip' => NULL,
  'max_len' => '0',
  'option' => 
  array (
    'values' => 
    array (
    ),
  ),
);
$setup->addAttribute('catalog_product', 'image', $attr);

$attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'image');
$attribute->setStoreLabels(array (
));
$attribute->save();
Eugene Zubkov
fonte
0

Você pode criar um atributo a partir do próprio backend:

  1. Catálogo> Atributos> Gerenciar atributos> Criar novo atributo
  2. Selecione o tipo de entrada do catálogo para o proprietário da loja como imagem de mídia
  3. Coloque esse atributo no Grupo de imagens do seu conjunto de atributos.
  4. Gerenciamento de Índice
  5. Limpar caches
Akhil Gupta
fonte
1
obrigado, mas desta forma não está certo. Eu te explico. Por exemplo, tenho versões ao vivo / palco / dev / local do meu site. Nesse caso, tenho que repetir sua solução 4 site * 5 etapas = 20 iterações. Mas eu posso fazer isso por atualizar-xxx-XXY e será mais correto
Oleg