public static function increaseInventory($id, $variation = '', $qty = 1) { Cart66Common::log("Increasing Inventory: line " . __LINE__); // Build varation ikey string component if (!empty($variation)) { $variation = self::scrubVaritationsForIkey(str_replace(', ', '~', $variation)); } $p = new Cart66Product($id); $is_gravity_form = false; $valid_options = array(); if ($p->isGravityProduct()) { $valid_options = Cart66GravityReader::getFormValuesArray($p->gravity_form_id); $is_gravity_form = true; } else { if (strlen($p->options_1) > 1) { $valid_options[] = explode(',', str_replace(' ', '', $p->options_1)); } if (strlen($p->options_2) > 1) { $valid_options[] = explode(',', str_replace(' ', '', $p->options_2)); } } $newVariation = ''; $options = explode(',', $variation); foreach ($options as $option) { if ($p->validate_option($valid_options, $option, $is_gravity_form)) { $newVariation .= $option; } } $ikey = $p->getInventoryKey($newVariation); $count = $p->getInventoryCount($ikey); $newCount = $count + $qty; $p->setInventoryLevel($ikey, $newCount); }