質問

私は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.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top