You are here

function uc_product_kit_insert in Ubercart 7.3

Same name and namespace in other branches
  1. 5 uc_product_kit/uc_product_kit.module \uc_product_kit_insert()
  2. 6.2 uc_product_kit/uc_product_kit.module \uc_product_kit_insert()

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

uc_product_kit/uc_product_kit.module, line 123
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 = $node->default_qty;
  $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, ' / ');
  drupal_write_record('uc_products', $obj);
}