You are here

function uc_feeds_nodeapi in Ubercart Feed Mappers 6

Implementation of hook_nodeapi().

Parameters

object $node:

string $op:

Return value

void

File

./uc_feeds.module, line 211
Integrates Ubercart properties with Feeds

Code

function uc_feeds_nodeapi(&$node, $op) {
  if (!$node->uc_feeds_flag == 'Attributes') {
    return;
  }
  switch ($op) {
    case 'insert':
      if (module_exists('uc_attribute')) {
        foreach ($node->attributes as $aid => $feedattrib) {

          // Enable all options for added attributes.
          $attribute = uc_attribute_load($aid);
          foreach ($attribute->options as $option) {
            if ($node->attributes[$aid]->options[$option->oid]) {
              $option->price = $node->attributes[$aid]->options[$option->oid]->price;
              $option->weight = $node->attributes[$aid]->options[$option->oid]->weight;
            }
            db_query("INSERT INTO {uc_product_options} (nid, oid, cost, price, weight, ordering) VALUES (%d, %d, %f, %f, %f, %d)", $node->nid, $option->oid, $option->cost, $option->price, $option->weight, $option->ordering);
          }

          // Make the first option (if any) the default.
          $option = reset($attribute->options);
          if ($option) {
            $oid = $option->oid;
          }
          else {
            $oid = 0;
          }
          db_query("INSERT INTO {uc_product_attributes} (nid, aid, label, ordering, default_option, required, display) SELECT %d, aid, label, ordering, %d, required, display FROM {uc_attributes} WHERE aid = %d", $node->nid, $oid, $aid);
        }
      }
      break;
    case 'update':
      uc_stock_adjust($node->model, $node->stock);
      break;
  }
}