製品にカスタム画像アップロード属性を追加する


7

SQLアップグレードスクリプトを使用してMagento製品に新しい画像アップロード属性を追加しようとしましたが、次のようなエラーメッセージが表示されました。

無効なバックエンドモデルが指定されました:catalog / product_attribute_backend_image

テーブルにupgrade-0.0.1-0.0.2.php新しいバージョンが表示されているため、ファイルの名前は正しいcore_resourceです。

私のコードがあります:

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

私は何を間違っていますか?

回答:


2

このコードを試してください(基本画像属性)

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

バックエンド自体から属性を作成できます。

  1. カタログ>属性>属性の管理>新しい属性の作成
  2. 店主のカタログ入力タイプをメディア画像として選択
  3. この属性を属性セットの画像グループに入れます。
  4. インデックス管理を行う
  5. キャッシュをクリアする

1
感謝しますが、この方法は正しくありません。説明します たとえば、私のサイトのライブ/ステージ/開発/ローカルバージョンがあります。この場合、ソリューションを4サイト* 5ステップ= 20回繰り返す必要があります。しかし、私はupgrade-xxx-xxyでそれを行うことができ、より正確になります
Oleg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.