Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 19th, 2012  |  syntax: None  |  size: 2.71 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // Create fixed amount rule
  2.   $rule = rules_reaction_rule(array(), array(
  3.     'commerce_coupon_line_item' => array(
  4.       'type' => 'commerce_coupon_line_item',
  5.       'label' => 'commerce coupon line item')
  6.     )
  7.   );
  8.  
  9.   $rule->label = t('Calculate coupon with fixed amount');
  10.   $rule->active = TRUE;
  11.  
  12.   $rule
  13.   ->event('commerce_coupon_redeem')
  14.   ->condition('entity_has_field', array('entity:select' => 'coupon', 'field' => 'commerce_coupon_fixed_amount'))
  15.   ->condition(rules_and()->condition('data_is_empty', array('data:select' => 'coupon:commerce-coupon-fixed-amount'))->negate() )
  16.   ->condition('data_is', array('data:select' => 'coupon:commerce-coupon-fixed-amount:amount', 'op' => '>', 'value' => 0))
  17.   ->action('commerce_coupon_action_create_coupon_line_item', array(
  18.     'commerce_coupon:select' => 'coupon',
  19.     'commerce_order:select' => 'commerce-order',
  20.     'amount:select' => 'coupon:commerce-coupon-fixed-amount:amount',
  21.     'currency_code:select' => 'coupon:commerce-coupon-fixed-amount:currency-code'
  22.   ))
  23.   ->action('commerce_coupon_action_set_granted_amount', array(
  24.     'commerce_coupon_log:select' => 'coupon-log',
  25.     'amount:select' => 'coupon:commerce-coupon-fixed-amount:amount',
  26.     'currency_code:select' => 'coupon:commerce-coupon-fixed-amount:currency-code'
  27.   ));
  28.  
  29.   $rules['commerce_coupon_basic_fixed_amount'] = $rule;
  30.  
  31.  
  32.   // Create percent amount rule
  33.   $rule = rules_reaction_rule(array(), array(
  34.     'commerce_coupon_line_item' => array(
  35.       'type' => 'commerce_coupon_line_item',
  36.       'label' => 'commerce coupon line item')
  37.     )
  38.   );
  39.  
  40.   $rule->label = t('Calculate coupon with percent amount');
  41.   $rule->active = TRUE;
  42.  
  43.   $rule
  44.   ->event('commerce_coupon_redeem')
  45.   ->condition('entity_has_field', array('entity:select' => 'coupon', 'field' => 'commerce_coupon_percent_amount'))
  46.   ->condition(rules_and()->condition('data_is_empty', array('data:select' => 'coupon:commerce-coupon-percent-amount'))->negate() )
  47.   ->condition('data_is', array('data:select' => 'coupon:commerce-coupon-percent-amount', 'op' => '>', 'value' => 0))
  48.   ->action('commerce_coupon_action_create_coupon_line_item', array(
  49.     'commerce_coupon:select' => 'coupon',
  50.     'commerce_order:select' => 'commerce-order',
  51.     'amount:select' => 'coupon:commerce-coupon-percent-amount',
  52.     'currency_code:select' => 'commerce-order:commerce-order-total:currency-code'
  53.   ))
  54.   ->action('commerce_coupon_action_set_granted_percent_amount', array(
  55.     'commerce_coupon_log:select' => 'coupon-log',
  56.     'percent:select' => 'coupon:commerce-coupon-percent-amount',
  57.     'amount:select' => 'commerce-order:commerce-order-total:amount',
  58.     'currency_code:select' => 'commerce-order:commerce-order-total:currency-code'
  59.   ));
  60.  
  61.   $rules['commerce_coupon_basic_percent_amount'] = $rule;