質問

IFステートメント条件でドロップダウン(yes/no)属性の値を使用するMagento Webサイトがあります。私が抱えている問題は、「1」を取得している1つのストアビューに基づいており、もう1つのストアビューは「0」です(この場合、「1」が正しい値です)。

たとえば、このコードがあります。

if($_product->getData("lookinsideactive") == 1):
      if(Mage::app()->getStore()->getId() == 1):
                    echo "Store message 1";
                elseif(Mage::app()->getStore()->getId() == 12):
                    echo "Store message 2";
      endif;
endif;

ID 1をストアIDに移動すると、メッセージは表示されませんが、ストアID 12にメッセージ「ストアメッセージ2」が表示されるため、最初のIFステートメント条件が真実です。

私がこれらを印刷する場合:

echo $_product->getData("lookinsideactive");

ストアID 1および「1」で「0」をストアID 12で取得します。

私はもう試した:

echo $_product->getAttributeText('lookinsideactive');

ストアID 1に「いいえ」が表示され、Store ID 12に「はい」が表示されます。

もう1つは、これらの条件が、この結果が示しているこの1つの製品の両方のストアビューで他の製品で完全に正常に機能することです。

したがって、全体として、結果はその製品の両方のストアビューで「1」、または両方のストアビューで「0」になるはずです。

この問題製品と別の作業製品で属性セットをチェックしましたが、どちらも同じ属性セットを使用しており、同じ属性値「lookinsideactive」を使用しています。

簡単なことを見逃したかどうかはわかりませんが、これをデバッグするための可能性のある原因やアドバイスについてアドバイスが必要です。

どんな助けも感謝しています、ありがとう。

役に立ちましたか?

解決

さまざまな属性に対して異なるスコープを使用できます。あなたの属性には、スコープ「ストアビュー」が明らかになりました。 Alterantivesは、「ストア」、「ウェブサイト」、「グローバル」です。

スクリプトでスコープを変更できますが、その変更後、Magentoはデータを取得しながらスコープを無視するため、データベースをクリーンアップする必要があると思います。それらを書くときのみ重要です。

これをバックエンドで確認できます。製品を表示すると、左上のスコープを変更し、Selectboxの横にある属性の範囲が何であるかを確認できます。

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