Fügen Sie dem Produkt ein benutzerdefiniertes Bild-Upload-Attribut hinzu

7

Ich habe versucht, Magento Product mithilfe eines SQL-Upgrade-Skripts ein neues Attribut zum Hochladen von Bildern hinzuzufügen, aber die folgende Fehlermeldung wurde angezeigt:

Ungültiges Backend-Modell angegeben: catalog / product_attribute_backend_image

Die Datei hat einen upgrade-0.0.1-0.0.2.phpkorrekten Namen , da in der core_resourceTabelle eine neue Version angezeigt wird.

Da ist mein Code:

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

Was mache ich falsch?

Oleg
quelle

Antworten:

2

Versuchen Sie diesen Code (Basisbildattribut)

<?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
quelle
0

Sie können Attribute aus dem Backend selbst erstellen:

  1. Katalog> Attribute> Attribute verwalten> Neues Attribut erstellen
  2. Wählen Sie den Katalogeingabetyp für den Ladenbesitzer als Medienbild aus
  3. Fügen Sie dieses Attribut in die Bildgruppe Ihres Attributsatzes ein.
  4. Führen Sie die Indexverwaltung durch
  5. Caches löschen
Akhil Gupta
quelle
1
Danke, aber dieser Weg ist nicht richtig. Ich erkläre es dir. Zum Beispiel habe ich Live / Stage / Dev / Local-Versionen meiner Site. In diesem Fall muss ich Ihre Lösung wiederholen 4 Site * 5 Schritte = 20 Iterationen. Aber ich kann es durch Upgrade-xxx-xxy tun und es wird korrekter sein
Oleg