0

そこで、Alan Storm の Magento チュートリアルを読み、EAV 属性に関するこのページを完了しました。http://alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1

問題なく動作しましたが、いくつか質問があります。製品を読み取ってDBに保存しようとしているXMLフィードがあります。これは機能し、作成された新しいテーブルに追加されますが、[管理] --> [製品] の下の管理者を見ると、製品がリストされていません。

また、管理画面でカタログ -> 属性の管理に移動すると、新しい EAV 属性がすべて表示されないことに気付きました。彼の説明から、新しい DB テーブルを見ると、実際の製品データと属性メタデータがどこに保存されているかがわかります。新しく作成したテーブルで。

しかし、私はしたい:

  1. 管理画面の製品の管理で、DB に保存しているすべての新製品を表示します
  2. (XML フィールド名に基づいて) 追加した新しい EAV が、メインの管理製品ビューに配置されたときに、これらの項目に関連付けられていることを確認してください。

私は彼のコードに正確に従って、私の実験に基づいて名前を変更しました:

foreach ($xml as $c) {
        $car = Mage::getModel('vehicleimport/eavvehicle');
        ...
        ...
        ...
        $car->save();
}
4

1 に答える 1

1

Magento 製品マネージャーを使用する場合は、Magento のコア機能に固執する必要があります。Catalog > Manage ProductsMage_Catalog モジュールとそのエンティティを使用して製品を保存していないため、製品はありません。

代わりに、カスタム モジュールを使用しています。これはカタログを保存する正しい方法ではありません。

商品にいくつかのカスタム属性を使用したいようです。それは結構です。catalog_productただし、 custom ではなく、それらをエンティティに追加する必要がありますeavvehicle

新しい製品属性を追加するには、管理パネルに移動して新しい属性Catalog > Manage Attributesを作成します。それらを動的に作成する方法があります。Mage_Catalog_Model_Resource_Setupオブジェクトを使用するだけです。


$catalogSetup = Mage::getResourceModel('catalog/setup','default_setup');
$catalogSetup->addAttribute('catalog_product', 'attribute_name', array $attributeDefinition);

または、モジュールを使用してセットアップを定義し、必要に応じてアップグレード スクリプトを使用して新しい属性を追加することもできます。

グループ属性に属性セットを定義することもできます。これにより、商品に必要な属性のみを付けることができます。

Mage::getModel('catalog/product')あなたの製品を追加するために使用したいと考えています。したがって、ループは次のようになります。


foreach ($xml as $c) {
        $car = Mage::getModel('catalog/product');
        ...
        ...
        ...
        $car->save();
}

複数のストア ビュー (言語バージョンなど) を使用している場合は、同じ商品に異なる言語の値を設定できます。それらを適切なストア用に保存するには、正しいストア ビューを設定する必要があります。


$car = Mage::getModel('catalog/product');
$car->setStoreId(Mage::app()->getStore('french')->getId());
$car->setName('French Name of the car');
$car->save();

複数のストア ビューを使用しない場合は、admin保存する前に製品にストア ID を設定すると安全です。

Magento で新製品を作成するための必須フィールド/属性:

  • attribute_set_id
  • type_id (つまり、単純、構成可能、グループ化など)
  • website_ids (配列として)
  • アクティブです
  • ステータス(必須かどうかは不明)
  • 視認性
  • 必要に応じて設定された属性セットにグループ化されたすべての属性 (つまり、sku、name、price、tax_class_id など)
于 2013-04-05T08:29:00.060 に答える