<?php
  if ($cart_object->type == 'cart' && $action == 'add_product') { 

    // include needed functions
    require_once (DIR_FS_INC.'xtc_check_stock.inc.php');
    require_once (DIR_FS_INC.'xtc_get_products_stock.inc.php');
    require_once (DIR_FS_INC.'check_stock_specials.inc.php');
    require_once (DIR_FS_INC.'xtc_remove_non_numeric.inc.php');
    
    $_POST['products_id'] = (int)$_POST['products_id'];
    $attributes_array = ((isset($_POST['id'])) ? $_POST['id'] : '');
    $cart_quantity = $cart_object->get_quantity(xtc_get_uprid($_POST['products_id'], $attributes_array));
   
    if (STOCK_CHECK == 'true') {
      $check_stock = xtc_check_stock($_POST['products_id'], $cart_quantity);
      if ($check_stock) {
        $products_stock = xtc_get_products_stock($_POST['products_id']);
        if ($products_stock <= 0 && STOCK_ALLOW_CHECKOUT == 'false') {
          $cart_object->remove(xtc_get_uprid($_POST['products_id'], $attributes_array));
        } else {  
          $cart_object->add_cart($_POST['products_id'], $products_stock, $attributes_array, false);
          $_SESSION['cart_qty_adjust'] = true;
        }
      }
    }

    if (STOCK_CHECK_SPECIALS == 'true' && $xtPrice->xtcCheckSpecial($_POST['products_id'])) {
      $check_stock = check_stock_specials($_POST['products_id'], $cart_quantity);
      if ($check_stock) {
        $stock_check_query = xtc_db_query("SELECT specials_quantity
                                             FROM ".TABLE_SPECIALS."
                                            WHERE products_id = '".$_POST['products_id']."'");
        $stock_check = xtc_db_fetch_array($stock_check_query);
        $cart_object->add_cart($_POST['products_id'], $stock_check['specials_quantity'], $attributes_array, false);
      
        $_SESSION['cart_qty_adjust'] = true;
      }  
    }

    if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true' && is_array($attributes_array)) {
      $products_stock = xtc_get_products_stock($_POST['products_id']);        
      while (list ($option, $value) = each($_POST['id'])) {
        $attributes = $main->getAttributes($_POST['products_id'], $option, $value);
        if ($attributes['attributes_stock'] - $cart_quantity < 0) {
          if ($attributes['attributes_stock'] <= 0 && STOCK_ALLOW_CHECKOUT == 'false') {
            $cart_object->remove(xtc_get_uprid($_POST['products_id'], $attributes_array));
          } else {
            $cart_object->add_cart($_POST['products_id'], $attributes['attributes_stock'], $attributes_array, false);
            $_SESSION['cart_qty_adjust'] = true;
          }
        }
      }
    }

  }  
?>