タグ付けされた質問 「eav」

Magentoのエンティティ属性値(EAV)の実装に関する質問

1
EAVとタグの部分的な再インデックス付けがないのはなぜですか?
この質問はかなり長い間私を困惑させていました。 Magento 1.13.xxで導入された改善バグ修正が、部分的な再インデックス付けと呼ばれ、「製品属性」および「タグ集約データ」インデクサーをカバーしないのはなぜですか?なぜこれら2つは手動で再インデックス付けする必要があるのですか? 私の意見では、EAVインデックスは最も重要なものの1つです。部分的なインデックス再作成がないことは、各販売(および一部の人々がそれらを持っている)後にインデックスが無効になることを意味します。 明らかな何かが欠けていますか? 更新: だからここにこのバグの説明があります。販売が行われ、製品の在庫がなくなると、階層化されたナビゲーションは、構成可能な製品ではなく、単純な製品の製品属性の変更を反映します(バンドルおよびグループ化はテストしていません)。 したがって、カタログに、さまざまなサイズで利用可能なTシャツのような構成可能な製品があり、「サイズ」属性が「フィルター可能(結果付き)」であると仮定しましょう。次に、適切なカテゴリまたは検索結果の階層化されたナビゲーションに、使用可能なすべてのサイズがリストされているサイズセクションがあります。いずれかの販売後に特定のサイズが在庫切れになると、階層ナビゲーションから消えることが予想されます。これは、属性インデックスを更新し、ブロックキャッシュをフラッシュしない限り発生しません。 このバグは本当に重大です。これは双方向の脅威です。まず、階層化されたナビゲーションで自分のサイズを確認し、実際には利用できないことに気づいたエンドカスタマーは、フラストレーションであなたの店を離れます。さらに悪いことは、製品が在庫に戻ったら、階層化されたナビゲーションでは表示されないため、最終顧客が購入できないことです。したがって、収益の損失額を過小評価することは困難です。

6
EAVエンティティを作成する方法は?
EAVエンティティを作成する方法は? これはウェブ上でよく出てくる質問です。その方法を説明するいくつかの優れたブログ記事がありますが、どれも私にとって満足できるものではありません。 それで、私は自己回答の質問に決めて、それをどうやってするかを説明しました...そしてそれはうまくいくようです。 ここには多くのコードがあります。正しく読むために、回答を「最も古い」順に並べ替えます。
35 admin  module  eav 


2
Magentoの新しい請求書の増分ID 5ずつ増分しますか?
新しい請求書IDをそれぞれ5ずつ増やす必要があります。以下のコードを試しました。 しかし、すべての請求書、出荷、注文、クレジットメモを変更しました。 新しい請求書IDを5ずつ増やし、出荷を5ずつ増やし、クレジットメモを3ずつ増やす必要があります。 また、受注は1(通常)ずつ増加します。 これどうやってするの 。? 誰でも助けてくれます。 class Mage_Eav_Model_Entity_Increment_Numeric extends Mage_Eav_Model_Entity_Increment_Abstract { public function getNextId() { $last = $this->getLastId(); if (strpos($last, $this->getPrefix()) === 0) { $last = (int)substr($last, strlen($this->getPrefix())); } else { $last = (int)$last; } $next = $last + 5; return $this->format($next); } }

3
「eav_」テーブルの目的
テーブルの意味は何だろうといつも思っていました。 eav_entity eav_entity_datetime eav_entity_decimal eav_entity_int eav_entity_store eav_entity_text それらは常に空です。1.6より前のバージョンで作成されapp/code/core/Mage/Eav/sql/eav_setup/mysql4-install-0.7.0.php、後でバージョン1.6+のインストールスクリプトに引き継がれまし/app/code/core/Mage/Eav/sql/eav_setup/install-1.6.0.0.php た。テーブルの1つにリンクされたリソースモデルMage_Eav_Model_Resource_Entity_Store(他のテーブルがある場合もあります)がありましたが、何も起こりませんでした。 これらのテーブルの使用はありますか?これは、たとえばレイアウトバージョンや管理ブレッドクラムのように開始され、実装されていない他の「機能」ですか?
19 database  eav 

3
プロパティには、チェックアウト手順の変更中にクラスMagento \ Quote \ Api \ Data \ AddressInterfaceに対応するセッターがありません
1-customer_addressにeav属性を追加します $attributesInfo = [ 'reference' => [ 'label' => 'Reference', 'type' => 'varchar', 'input' => 'text', 'position' => 100, 'visible' => true, 'required' => false, ], ]; foreach ($attributesInfo as $attributeCode => $attributeParams) { $customerSetup->addAttribute('customer_address', $attributeCode, $attributeParams); } 2-モジュールに拡張属性を追加しました <extension_attributes for="Magento\Quote\Api\Data\AddressInterface"> <attribute code="reference" type="string"/> </extension_attributes> requirejs-config.jsで、JavaScriptファイルをオーバーライドして参照フィールドを追加します var config = { …

2
「属性値」(option_id)を持つ属性「オプションラベル/属性テキスト」を取得する方法
オプション(ドロップダウン/複数選択)のコレクションである属性があるとします。 特定の製品の属性値を取得できます。 $store_id = [something]; $productId = [something]; // this is a select/multiselect $attribute_code = [something]; $option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id ); $option_label = ??? 今、私は数値である属性option_idを得ました... ...自分の属性値のフロントエンド属性ラベルを読み込む最良の方法は何ですか?(製品全体をロードせずに) ソリューションのおかげでマリウス: // Not loading the product - just creating a simple instance $product = Mage::getModel('catalog/product') ->setStoreId($store_id) ->setData($attribute_code,$option_id); $option_label = $product->getAttributeText($attribute_code);

6
Magento 2-eavエンティティの属性オプション値を取得する方法
eavエンティティの属性オプション値を取得するにはどうすればよいですか? magento 1.xのみの解決策を見つけましたが、M2はわかりません。 M1: $attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0]; $attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']); $src = $attributeModel->getSource()->getAllOptions(); 誰もが知っています、ステップバイステップで教えてください、ありがとう!
18 magento2  database  eav 

3
Magento 2:フラットテーブルはまだものですか?
Magento 2では、フラットテーブルはまだ心配する必要がありますか?フラットテーブルをオンにできるUIがあることは知っていますが、フラットテーブルがどれだけうまくテストされているか、さらに必要であるかどうかはわかりません。 フラットテーブルが依然として存在する場合-フラットテーブルの属性は、いつどこで生成および/または再生成されますか。これはインデックスの再作成時にのみ発生しますか?または、他のUIアクションでフラットテーブル生成をトリガーできますか?で起こりphp bin/magento setup:di:compileますか?他の場所? また、Magentoは、属性をフラット属性にする必要があるかどうかをどのように決定しますか?されているすべての EAV属性が平坦化?または、そうでないかもしれない他のものがありますか?

3
Magento 2:%_entityテーブルのrow_idとentity_idの違いは何ですか?
Magento 1ではrow_id、エンティティテーブルに呼び出される列はありませんでしたentity_id。 CREATE TABLE `catalog_category_entity` ( `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID', `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Entity Type ID', `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attriute Set ID', `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Category ID', `created_at` timestamp …
17 magento2  database  eav 

3
getExtensionAttributes()を実装する正しい方法
拡張可能なEAVモデルを実装するための正しい方法は何かと思っていました。 私はその中を見るMagento\Catalog\Model\Product方法は、getExtensionAttributes()次のように実装されています。 public function getExtensionAttributes() { $extensionAttributes = $this->_getExtensionAttributes(); if (!$extensionAttributes) { return $this->extensionAttributesFactory->create('Magento\Catalog\Api\Data\ProductInterface'); } return $extensionAttributes; } しかし、顧客モデルやカテゴリモデルなど、他のモデルでは public function getExtensionAttributes() { return $this->_getExtensionAttributes(); } これは、extension_attributesキーが以前に設定されていない場合、NULLの結果になる可能性があります。 実用的には、最初の方を好みます。これによりMagento\Framework\Api\ExtensionAttributesInterface、モデルがインスタンス化されたばかりの場合でも、常にのインスタンスを確実に取得できます。 しかし、なぜそれが他のモジュールで使用されないのですか?カスタマーモジュールに表示されるデータモデルの新しい分離に反対ですか?もしそうなら、拡張属性をどのように初期化するべきですか?

1
eavSetupを見ると、タイプと入力に使用できる値は何ですか?
Magento 2のインストールスクリプトを作成するときに、タイプと入力部分に使用できる値は何eavSetup->addAttribute()ですか?または、どこで調べればよいでしょうか? $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'some_attr', [ 'type' => '', 'backend' => '', 'frontend' => '', 'label' => 'Test Attribute', 'input' => '', 'class' => '', 'source' => '', 'global' => \Magento\Catalog\Model\Resource\Eav\Attribute::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => false, 'default' => 0, 'searchable' => false, 'filterable' => false, 'comparable' …


1
EAVモデルの_data
単純なモデル(たとえば、cataloginventory/stock_item)の_dataは、データベーステーブルのフィールドに対応するフィールドと値のペアの配列であることを理解しています。EAVモデルの_dataの内容を知りたいと思ったのでcatalog/product、debug()関数を使用して_dataを確認しました。 その結果、のフィールド値ペアとcatalog_product_entity、このエンティティのいくつかの属性が含まれていることがわかりました。彼らは私には理にかなっています。私が理解できない点は、ペアも含まれているということです: ... [stock_item (Mage_CatalogInventory_Model_Stock_Item)] => Array ( [item_id] => 1 [product_id] => 1 [stock_id] ...... ) ... 、のインスタンスですcataloginventory/stock_item。これはカタログ/製品エンティティの属性でも、のフィールドでもありませんcatalog_product_entity。なぜ含まれているのですか? EAVモデルの_dataの規則はありますか?
9 product  catalog  eav 

4
属性コードに最大長があるのはなぜですか?
属性を作成しようとしたところ、属性コードの最大長が30文字であることがわかりました。ただし、これは実際には何らかの実際の制限ではないことがわかります。これは完全に任意の値であり、 Mage_Eav_Model_Entity_Attribute::ATTRIBUTE_CODE_MAX_LENGTH. では、なぜ制限があるのでしょうか。そして、なぜデータベース列の実際の制限であるインスタンス255ではなくデフォルト30なのでしょうか。 PS。誰かがこの質問のためのより良いタグを考えることができるならば、それらを更新してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.