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?

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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.