2

オンラインのいくつかの投稿 ( http://www.magentocommerce.com/boards/viewthread/178767/およびhttp://marius-strajeru.blogspot.co.uk/2010/04/create-bulk- discount-rules.html )、いくつかのコードを組み合わせて、いくつかのクーポン コードを生成しています。

私が行き詰まっているのは、クーポンを使用するための「アクション」固有の条件を指定するコードの書き方です。これは、Magento 管理システムの [アクション] タブの [次の条件に一致するカート項目にのみルールを適用する] セクションで指定されます。

Magento 管理システムでは、次の行を作成します。

カテゴリが 10、20、30 のいずれでもない

私が知る必要があるのは、これをコードで複製する方法です。私は現在、次のものを持っていますが、これは機能していないようです。少なくとも、生成されたクーポン コードを確認すると、必要なアクションの値がありません。

    $actions = array();
    $actions[1] = array(
    'type' => 'salesrule/rule_condition_category',
    'aggregator' => 'all',
    'value' => 1,
    'new_child' => ''
    );
    $actions['1--1'] = array(
        'type' => 'salesrule/rule_condition_category',
        'attribute' => 'category_ids',
        'operator' => '!()',
        'value' => '932,341,800',
        'is_value_processed' => 0,
    );
    $model->setData('actions',$actions);

システムをつまずかせることはありませんが、コードが単に間違っていると思います。必要なものをどのように達成できますか?

4

1 に答える 1

3

これが私が最終的に得たものです。これはうまくいきます!

        $conditions = array(
            "1" => array(
                'type' => 'salesrule/rule_condition_combine',
                'aggregator' => 'all',
                'value' => 1,
                'new_child' => false
                ),
            "1--1" => array(
                'type' => 'salesrule/rule_condition_product_found',
                'value' => 1,
                'aggregator' => 'all',
                'new_child' => false
            ),
            "1--1--1" => array(
                'type' => 'salesrule/rule_condition_product',
                'attribute' => 'category_ids',
                'operator' => '!()',
                'value' => '10,20,30'
            )
        );
        $actions = array(
            "1" => array(
                    "type"          => "salesrule/rule_condition_product",
                    "aggregator"    => "all",
                    "value"         => "1",
                    "new_child"     => false
            ),
            "1--1" => array(
                    "type"          => "salesrule/rule_condition_product",
                    "attribute"     => "category_ids",
                    'operator' => '!()',
                    'value' => '10,20,30'
            )
        );

        $rule->setData('conditions',$conditions);
        $rule->setData("actions",$actions);
于 2012-12-17T14:45:58.810 に答える