質問
私は1つのストアビューしかないマゼントを持っています。ただし、このストアはデフォルトではありません。ニュースストアビューが作成され(ID:2)、デフォルトのビューが削除されました。
次に、いくつかのツールでインポートされた製品と画像があります。管理者では、すべてが火花です。正しいサムネイル、小さな画像、ベース画像が選択され、画像は除外されません。フロントエンドでは、製品情報ページに正しく表示されますが、製品リストに表示されていません。
カテゴリリストで製品オブジェクトを印刷すると、画像がロードされていないことがわかります。プロパティはまったくありません。ただし、画像ラベルは適切にロードされています。
これが私の行の行です catalog_product_entity_varchar
:
value_id entity_type_id attribute_id store_id entity_id value
--------------------------------------------------------------------------------------------
1004 4 86 2 101 /2/7/271074_2.jpg
どこ 86
対応 small_image
属性。
そして今、最後のこと。ストアIDを変更した場合 0
画像は正しく表示されます。簡単に設定できます 0
ストアビューが1つしかない限り、すべての製品については、 2
?なぜ 2
製品の詳細ページに表示され、リストには表示されませんか?
PS:デフォルトのストアビュー、拡張機能なし。
解決
その要素のデフォルト値はありますか、それともStoreView固有の値だけがありますか?
SELECT
`t_d`.`entity_id`,
`t_d`.`attribute_id`,
`t_d`.`value` AS `default_value`,
`t_s`.`value` AS `store_value`,
IF(t_s.value_id IS NULL, t_d.value, t_s.value) AS `value`
FROM `catalog_product_entity_varchar` AS `t_d`
LEFT JOIN `catalog_product_entity_varchar` AS `t_s`
ON t_s.attribute_id = t_d.attribute_id AND t_s.entity_id = t_d.entity_id AND t_s.store_id = 2
...
これは、製品リストに属性をロードするクエリからのスニペットです。ご覧のとおり、その属性のデフォルト値がない場合、最初の部分は結果を返さず、左結合は正しく機能しません。これは、常にデフォルト値とStoreView値が必要であることを意味します。 Magentoは計算されたフィールドで正しい値を決定します IF(...) as value
.
所属していません magento.stackexchange