2012-12-13 72 views
1

根據幾條在線帖子(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); 

我假設代碼是完全錯誤的,雖然沒有絆倒系統。 有人可以告訴我如何實現我所需要的嗎?

回答

1

這就是我最後的結果,它非常棒!

 $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);