uc_product_kit_insert

  1. drupal
    1. 6 uc_product_kit.module function
    2. 7 uc_product_kit.module function
Drupal 7 uc_product_kit_insert(&$node)

Implements hook_insert().

Adds a row to {uc_products} to make a product. Extra information about the component products are stored in {uc_product_kits}.

Parameters

&$node: The node object being saved.

See also

uc_product_insert()

File

sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module, line 135
The product kit module for Ubercart.

Code

function uc_product_kit_insert(&$node) {
  $obj = new stdClass();
  $obj->vid = $node->vid;
  $obj->nid = $node->nid;
  $obj->model = '';
  $obj->list_price = 0;
  $obj->cost = 0;
  $obj->sell_price = 0;
  $obj->weight = 0;
  $obj->weight_units = variable_get('uc_weight_unit', 'lb');
  $obj->default_qty = 0;
  $obj->ordering = $node->ordering;
  $obj->shippable = FALSE;

  $values = array();
  $placeholders = array();
  foreach ($node->products as $product) {
    if (is_numeric($product)) {
      $product = node_load($product);
    }

    $kit = array(
      'vid' => $node->vid, 
      'nid' => $node->nid, 
      'product_id' => $product->nid, 
      'mutable' => $node->mutable, 
      'qty' => 1, 
      'synchronized' => 1,
    );

    drupal_write_record('uc_product_kits', $kit);

    $obj->model .= $product->model . ' / ';
    $obj->list_price += $product->list_price;
    $obj->cost += $product->cost;
    $obj->sell_price += $product->sell_price;
    $obj->weight += $product->weight * uc_weight_conversion($product->weight_units, $obj->weight_units);
    if ($product->shippable) {
      $obj->shippable = TRUE;
    }
  }

  $obj->model = rtrim($obj->model, ' / ');
  $obj->unique_hash = md5($obj->vid . $obj->nid . $obj->model . $obj->list_price . $obj->cost . $obj->sell_price . $obj->weight . $obj->weight_units . $obj->default_qty . $obj->ordering . $obj->shippable . REQUEST_TIME);

  drupal_write_record('uc_products', $obj);
}