商品アトリビュートの組み合わせを使用しているときに、ショッピングカートのプロモーションの条件がアトリビュートをどのように確認しようとしているのかデバッグしていました。そのカスタム属性がconfig.xmlの見積もり商品に追加されていない場合、Magentoがカスタム属性値を製品から取得していた方法を理解できませんでした。ショッピングカートプロモーションと商品属性の組み合わせのバグ
私は検証ロジックにダウンデバッグたように、私は私がpackage_priceという属性を作成したテストを行なったし、製品にそれを割り当てられ、それを20の値を与えたが、私はその後、設定条件:
項目が真のこれらの条件のすべてにカートに発見された場合:それはあなたが最終的にここに/app/code/core/Mage/Rule/Model/Condition/Abstract.php
及び方法validateAttribute
で取得ロジックに降りたよう1
より パッケージ価格より高いです。これは、見積アイテム製品から属性値を取得しようとした後にここに到着します。私の場合、パラメータ$validatedValue
は、データ配列からそれを取り出すことができなかったので、nullでした。
コードはここに
case '<=': case '>':
if (is_array($validatedValue) || is_null($validatedValue)) {
$result = false;
} else {
$result = $validatedValue<=$value;
}
break;
を降りる動作し、それは明らかにfalseに設定されます。私の場合には、それはそれは本当作られ、その後、私の条件のパスを作ったので、私は、あなたが対向するように、特定の事業者の$結果変数を設定するコード
if ('!='==$op || '>'==$op || '<'==$op || '!{}'==$op || '!()'==$op) {
$result = !$result;
}
のこの小さなPIECを持つswitch文の後に理解していない何たとえそれがあってはならないのですが。私は、誰かが、商品を新しい属性を追加してそれらを使ってプロモーションを作成しようとするインターフェイスを管理する管理者ユーザーを持つだけの場合、クォート項目に追加されないカスタム属性を使用してショッピングカートのプロモーションを行うときはいつでも考えています。これらの演算子の1つを使用すると、プロモーションは常に成功します。私は私の人生のために、これが何を必要とするのか、なぜ>>と違うのかを理解することはできません。
プロモーション条件に使用されているとマークされている属性は、お見積もり商品に追加する必要がありますか?
なぜこのように動作する必要があるのかを誰かが理解できるようになりますか? Magentoに連絡する前に、ここに投稿したかったのです。
私はあなたに答えがありませんが、これを掘り下げて論理をすべて追いかけるための名誉です。 –