If you manually create an order in the admin and add a product kit to the order that contains shippable products, none of the order products get the shippable flag set. Thus you cannot package or ship orders that contain a product kit. If the order consists of only the product kit, you won't even see the tabs for packaging or shipping.

Issue mentioned over here: http://www.ubercart.org/forum/support/18736/product_kits_not_shippable. CJ's fix worked for me, patch attached.

CommentFileSizeAuthor
uc_product_kit_package.patch611 bytesstockliasteroid
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

longwave’s picture

Version: 6.x-2.4 » 7.x-3.x-dev
Status: Needs review » Patch (to be ported)

Committed.

wjaspers’s picture

For 7.x-3.x-dev, the correct line number is 1021 where this needs to be added.

Wanted to add: in my testing that the shippable value isn't handled correctly. 0 is treated as FALSE when its pulled from the database, and PDO freaks out when you try to save a kit. But, 1 is treated like an integer, and saves just fine.

The patch above could be corrected by changing:
$kit_product->data['shippable'] = $product->shippable;
to
$kit_product->data['shippable'] = (int)$product->shippable;

NOTE: This would only work correctly in a PHP5 enabled Drupal instance, as it utilizes type-juggling (see: http://www.php.net/manual/en/language.types.integer.php#language.types.i...).

longwave’s picture

Thanks, will look into this when I get a chance. D7 requires PHP5 anyway, so that's not a problem (and even Ubercart 2.x for D6 requires PHP5)

wjaspers’s picture

Thought it was worth mentioning for folks that have a hybrid Apache2 instance: PHP4/Apache2 core with mod_php5 running on fastcgi. (Older CentOS instances with mass virtual hosting can be configured this way).

As for type-casting, this probably isn't the best place to cast the value--but in our situation provides a fast solution. The source of the problem is more likely to reside in uc_product. When I have time I'll look a little further into it.

longwave’s picture

Status: Patch (to be ported) » Fixed

Committed.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

simonswiss’s picture

Status: Closed (fixed) » Active

I am sorry to re-open this but i still get the error after applying the patch, and adding the (int) as mentionned in #2.

By the way i am not shipping ANY of my products and i have disabled the shipping modules, but i still get these errors.. Any idea why?

Simon

longwave’s picture

What error messages are you seeing, and on what pages?

wjaspers’s picture

What version of PHP are you running?

simonswiss’s picture

Here's the error message:

PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'shippable' at row 1: UPDATE {uc_products} SET model=:db_update_placeholder_0, list_price=:db_update_placeholder_1, cost=:db_update_placeholder_2, sell_price=:db_update_placeholder_3, weight=:db_update_placeholder_4, weight_units=:db_update_placeholder_5, default_qty=:db_update_placeholder_6, ordering=:db_update_placeholder_7, shippable=:db_update_placeholder_8 WHERE ( (vid = :db_condition_placeholder_0) ); Array ( [:db_update_placeholder_0] => Swiss Alps Retreat / Swiss Raft Activity - Sion / Tandem Flight - Star Paragliding [:db_update_placeholder_1] => 160 [:db_update_placeholder_2] => 0 [:db_update_placeholder_3] => 263 [:db_update_placeholder_4] => 0 [:db_update_placeholder_5] => kg [:db_update_placeholder_6] => 0 [:db_update_placeholder_7] => 0 [:db_update_placeholder_8] => [:db_condition_placeholder_0] => 57 ) in uc_product_kit_update() (line 311 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).

The website encountered an unexpected error. Please try again later.

Regarding PHP version, I am using 5.2.13

Thanks for your help,

Simon

simonswiss’s picture

PS: this error is more related to http://drupal.org/node/1166870 but i have been redirected to this thread in my searches for an answer..

Sorry if i re-opened the wrong issue.

simonswiss’s picture

still the error - http://drupal.org/node/1106478 leads to this thread. Seems like it fixed other user's problem, but i'm still stuck with the error.

PS: i'm using the latest version of ubercart - Ubercart 7.x-3.x-dev (2011-Jun-25)

simonswiss’s picture

i noticed something. I have the shipping and shipping quotes modules disabled, however in content types --> manage display there is still the "weight" field. Not size, just weight. This field doesn't exist in the "manage fields" tab.

Could that be that a field did not get removed when uninstalling the shipping module?

I cannot find anything on the database in phpmyadmin...

Simon

wjaspers’s picture

The shipping information stays on the Node edit form regardless if you have a shipping module enabled.

simonswiss’s picture

ok so that's not the issue then. Hmmm, this is pretty much the only hurdle that prevents me from going live with the store, pretty annoying!

wjaspers’s picture

Try changing the (int) line to
$kit_product->data['shippable'] = isset($product->shippable) ? $product->shippable : 0;

This way, if it's anticipating a value, and one isn't provided, it can fall back on the product not being shippable.

simonswiss’s picture

I tried to change the line line

<?php $kit_product->data['shippable'] = $product->shippable; ?>

with

<?php $kit_product->data['shippable'] = isset($product->shippable) ? $product->shippable : 0; ?>

but the error is still here.

Just to clarify, did i edit the right line? this is line 974 in uc_product_kit.module

However the error message mentions the line 313 for the error, where i get this:

<?php 
if ($node->revision) {
    $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 . REQUEST_TIME);
    drupal_write_record('uc_products', $obj);
  }
  else {
    db_merge('uc_products')
      ->key(array('vid' => $obj->vid))
      ->fields(array(
        'model' => $obj->model,
        'list_price' => $obj->list_price,
        'cost' => $obj->cost,
        'sell_price' => $obj->sell_price,
        'weight' => $obj->weight,
        'weight_units' => $obj->weight_units,
        'default_qty' => $obj->default_qty,
        'ordering' => $obj->ordering,
        'shippable' => $obj->shippable,
      ))
      ->insertFields(array(
        '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),
      ))
      ->execute();
  }
}
?>

(line 313 is ->execute(); ), it is the function uc_product_kit_update(&$node) here's the whole code for this function:

function uc_product_kit_update(&$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;

  $override_discounts = isset($node->kit_total) && is_numeric($node->kit_total);
  $product_count = count($node->products);

  // Get the price of all the products without any discounts. This number is
  // used if a total kit price was specified to calculate the individual
  // product discounts.
  if ($override_discounts) {
    $base_price = 0;
    foreach ($node->products as $nid) {
      // Usually, $node is $form_state['values'] cast as an object.
      // However, there could be times where node_save() is called with an
      // actual product kit node. $node->products is an array of objects and
      // $node->items doesn't exist then.
      if (is_numeric($nid)) {
        $product = node_load($nid, NULL, TRUE);
        if (!isset($node->items[$nid]['qty']) || $node->items[$nid]['qty'] === '') {
          $node->items[$nid]['qty'] = 1;
        }
      }
      else {
        $product = $nid;
        $nid = $product->nid;
        $node->items[$nid] = (array)$product;
      }
      $base_price += $product->sell_price * $node->items[$nid]['qty'];
    }
  }

  if (empty($node->revision)) {
    db_delete('uc_product_kits')
      ->condition('vid', $node->vid)
      ->execute();
  }
  foreach ($node->products as $nid) {
    if (is_numeric($nid)) {
      $product = node_load($nid);
    }
    else {
      $product = $nid;
      $nid = $product->nid;
    }

    // When a total kit price is specified, calculate the individual product
    // discounts needed to reach it, taking into account the product quantities
    // and their relative prices. More expensive products should be given a
    // proportionally higher discount.
    if ($override_discounts) {
      // After all the algebra that went into finding this formula, it's
      // surprising how simple it is.
      $discount = ($node->kit_total - $base_price) * $product->sell_price / $base_price;
    }
    elseif (isset($node->items[$nid]['discount'])) {
      $discount = (float) $node->items[$nid]['discount'];
    }
    else {
      $discount = 0;
    }

    if (!isset($node->items[$nid]['qty']) || $node->items[$nid]['qty'] === '') {
      $node->items[$nid]['qty'] = 1;
    }

    $product->qty = $node->items[$nid]['qty'];
    // Discounts are always saved, but they are only applied if the kit can't
    // be changed by the customer.
    if ($node->mutable != UC_PRODUCT_KIT_MUTABLE) {
      $product->sell_price += $discount;
    }

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

    db_insert('uc_product_kits')
      ->fields(array(
        'vid' => $node->vid,
        'nid' => $node->nid,
        'product_id' => $nid,
        'mutable' => $node->mutable,
        'qty' => $product->qty,
        'discount' => $discount,
        'ordering' => isset($node->items[$nid]['ordering']) ? $node->items[$nid]['ordering'] : 0,
        'synchronized' => $override_discounts ? 0 : 1,
      ))
      ->execute();
  }

  $obj->model = rtrim($obj->model, ' / ');

  if ($node->mutable == UC_PRODUCT_KIT_MUTABLE && !empty($discount)) {
    drupal_set_message(t('Product kit discounts are not applied because the customer can remove components from their cart.'));
  }

  if ($node->revision) {
    $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 . REQUEST_TIME);
    drupal_write_record('uc_products', $obj);
  }
  else {
    db_merge('uc_products')
      ->key(array('vid' => $obj->vid))
      ->fields(array(
        'model' => $obj->model,
        'list_price' => $obj->list_price,
        'cost' => $obj->cost,
        'sell_price' => $obj->sell_price,
        'weight' => $obj->weight,
        'weight_units' => $obj->weight_units,
        'default_qty' => $obj->default_qty,
        'ordering' => $obj->ordering,
        'shippable' => $obj->shippable,
      ))
      ->insertFields(array(
        '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),
      ))
      ->execute();
  }
}

If instead of saving a product kit i click preview, i get the following errors:

Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 661 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 667 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_view() (line 668 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 719 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 720 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_add_to_cart_form() (line 721 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 516 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 521 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 533 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 534 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 516 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 521 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 533 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 534 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 516 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 521 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 533 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 534 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 516 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 521 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 533 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 534 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 538 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
Notice: Trying to get property of non-object in uc_product_kit_form() (line 539 of /home/clients/websites/w_shpic/public_html/shpic/sites/all/modules/ubercart/uc_product_kit/uc_product_kit.module).
caseyc’s picture

@simonswiss, found this post while debugging my own issue in d6. If the shippable flag isn't getting set, I discovered that you have to add it a certain way.

Here's the code that works for me:

<?php
$attribute_array = array();
for($i=0;$i<count($aids_array);$i++){
								
    if(is_numeric($aids_array[$i]) && is_numeric($aid_values_array[$i])){
         $attribute_array[$aids_array[$i]] = $aid_values_array[$i];
    }
}

$data = array('nid' => $nid, 'attributes'=>$attribute_array);
uc_cart_add_item($nid,  $qty, module_invoke_all('add_to_cart_data', $data));
?>

Notice that after I set the attributes in the attribute array, the uc_art_add_item() has $nid as the first argument.

If you leave that out, shippable isn't set correctly.

Good luck!

TR’s picture

Component: Products » Product kits

Moving to "Product kit" component.

dgtlmoon’s picture

[deleted] - sorry, it was an AJAX implementation that was causing my issue

longwave’s picture

Status: Active » Closed (fixed)

As far as I can tell this was actually fixed in #5. There is a separate issue when previewing product kits, which is open at #1348052: Errors when trying to preview new or updated product kit