質問

バックエンドから 2 つの簡単なショッピング カート ルールを作成しました。

1 つ目は、「SKU は次のうちの 1 つです」に基づくアクションです。

2 番目には、「ブランドの内容」に基づいたアクションがあります。

詳細ページに割引コードと金額を表示するカスタム関数を作成しました。

しかし、ルール 1 のリスト ページには、ルール 2 のプロモーション コードと割引額が表示されます。

あるいは、ブランドとSKUのショッピングカートルールのルールIDを取得する方法を教えてください。

役に立ちましたか?

解決

これは私が参加した StackOverflow の質問から抜粋したものですが、あなたの質問用に変更されました。

これにより、すべてのショッピング カート ルールが反復されます。 rule_collection, 、表示ページで製品 SKU を比較し、クーポン コードをエコーし​​ます。このコードに基づいて、ブランドのクーポン コードを取得するように変更することもできます。

$current_sku=$_product->getSku(); // Sku you are looking for

$rules = Mage::getResourceModel('salesrule/rule_collection')->load();

foreach ($rules as $rule) {
    if ($rule->getIsActive()) {
        $rule = Mage::getModel('salesrule/rule')->load($rule->getId()); 

        $conditions = $rule->getConditions()->asArray();

        foreach( $conditions['conditions'] as $_conditions ):
            foreach( $_conditions['conditions'] as $_condition ):
                $string = explode(',', $_condition['value']);
                for ($i=0; $i<count($string); $i++) {
                    $sku = trim($string[$i]);
                    if ($sku==$current_sku) {
                            echo $rule->getCouponCode(); // Return coupon code that matches the sku condition
                    }
                }
            endforeach;
        endforeach;
    }
}
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top