You are here

function commerce_cart_default_rules_configuration in Commerce Core 7

Implements hook_default_rules_configuration().

File

modules/cart/commerce_cart.rules_defaults.inc, line 11
Default rule configurations for Cart.

Code

function commerce_cart_default_rules_configuration() {
  $rules = array();

  // Add a reaction rule to display the default Add to Cart message.
  $rule = rules_reaction_rule();
  $rule->label = t('Display an Add to Cart message');
  $rule->tags = array(
    'Commerce Cart',
  );
  $rule->active = TRUE;
  $rule
    ->event('commerce_cart_product_add')
    ->action('commerce_cart_add_to_cart_message', array(
    'commerce_product:select' => 'commerce-product',
  ));
  $rules['commerce_cart_add_to_cart_message'] = $rule;

  // Add a reaction rule to update a shopping cart order's status to "Shopping
  // cart" when a product is added to or removed from the order.
  $rule = rules_reaction_rule();
  $rule->label = t('Reset the cart order status on product add or remove');
  $rule->tags = array(
    'Commerce Cart',
  );
  $rule->active = TRUE;
  $rule
    ->event('commerce_cart_product_add')
    ->event('commerce_cart_product_remove')
    ->action('commerce_order_update_status', array(
    'commerce_order:select' => 'commerce-order',
    'order_status' => 'cart',
  ));
  $rules['commerce_cart_order_status_reset'] = $rule;

  // Add a reaction rule to unset the price of disabled products in the cart
  // during price calculation, effectively removing them from the order.
  $rule = rules_reaction_rule();
  $rule->label = t('Unset the price of disabled products in the cart');
  $rule->tags = array(
    'Commerce Cart',
  );
  $rule->active = TRUE;
  $rule->weight = 10;
  $rule
    ->event('commerce_product_calculate_sell_price')
    ->condition(rules_condition('data_is_empty', array(
    'data:select' => 'commerce-line-item:line-item-id',
  ))
    ->negate())
    ->condition('entity_has_field', array(
    'entity:select' => 'commerce-line-item',
    'field' => 'commerce_product',
  ))
    ->condition('data_is', array(
    'data:select' => 'commerce-line-item:commerce-product:status',
    'op' => '==',
    'value' => '0',
  ))
    ->action('data_set', array(
    'data:select' => 'commerce-line-item:commerce-unit-price:amount',
  ));
  $rules['commerce_cart_unset_disabled_products'] = $rule;
  return $rules;
}