Use this guide to add a new field to the xcart_products_lng_en table.

Firstly add your new field to all variations of the table xcart_products_ln_* where * represents all the language table variants.

Then edit /skin/sommon_files/main/product_details.tpl and add you new feld like this. replacing new_column with your column name.

<tr>
  {if $geid ne ''}<td width="15" class="TableSubHead"><input type="checkbox" value="Y" name="fields[new_column]" /></td>{/if}
  <td class="FormButton" nowrap="nowrap">{$lng.lbl_product_new_column} :</td>
  <td class="ProductDetails">
  <input type="text" name="new_column" id="new_column" size="45" class="InputWidth" value="{$product.new_column|escape}" />
  {if $top_message.fillerror ne "" and $product.new_column eq ""}<font class="Star">&lt;&lt;</font>{/if}
  </td>
</tr>

edit /include/product_modify.php

//BEFORE
func_repair_lng_integrity('products_lng_', $sql_tbl['products'], 'productid', "'restored_product' AS product, 'restored_product' AS descr, 'restored_product' AS fulldescr, '' AS keywords");

//AFTER
func_repair_lng_integrity('products_lng_', $sql_tbl['products'], 'productid', "'restored_product' AS product, 'restored_product' AS descr, 'restored_product' AS fulldescr, '' AS keywords, 'restored_product' AS new_column");


//BEFORE
// Fill all languages by default
            $int_descr_data = array(
                'productid' => $productid,
                'product'   => trim($product),
                'descr'     => trim($descr),
                'fulldescr' => trim($fulldescr),
                'keywords'  => trim($keywords)
            );

//AFTER
// Fill all languages by default
            $int_descr_data = array(
                'productid' => $productid,
                'product'   => trim($product),
                'descr'     => trim($descr),
                'fulldescr' => trim($fulldescr),
                'keywords'  => trim($keywords),
                'new_column'  => trim($new_column)
            );


//BEFORE
// Update product/descr/fulldescr/keywords
        $int_descr_data = array(
            'product'   => trim($product),
            'descr'     => trim($descr),
            'fulldescr' => trim($fulldescr),
            'keywords'  => trim($keywords)
        );
//AFTER
// Update product/descr/fulldescr/keywords
        $int_descr_data = array(
            'product'   => trim($product),
            'descr'     => trim($descr),
            'fulldescr' => trim($fulldescr),
            'keywords'  => trim($keywords),
            'new_column'  => trim($new_column)
        );

edit /include/product_clone.php,

//BEFORE
// Update just created product by values from existing product

        $query = array();
        foreach ($product_info as $k=>$v) {
            if (
                !is_numeric($k) 
                && !in_array($k, array('productid', 'productcode', 'provider', 'add_date', 'sales_stats', 'product', 'descr', 'fulldescr', 'keywords'))
            ) {
                $query[$k] = addslashes($v);
            }
        }

//AFTER
// Update just created product by values from existing product

        $query = array();
        foreach ($product_info as $k=>$v) {
            if (
                !is_numeric($k) 
                && !in_array($k, array('productid', 'productcode', 'provider', 'add_date', 'sales_stats', 'product', 'descr', 'fulldescr', 'keywords', 'new_colum'))
            ) {
                $query[$k] = addslashes($v);
            }
        }

edit /include/import_products.php, /include/import_products_lng.php, /include/func/fuinc.product.php

//BEFORE
func_repair_lng_integrity('products_lng_', $sql_tbl['products'], 'productid', "'restored_product' AS product, 'restored_product' AS descr, 'restored_product' AS fulldescr, '' AS keywords");

//AFTER
func_repair_lng_integrity('products_lng_', $sql_tbl['products'], 'productid', "'restored_product' AS product, 'restored_product' AS descr, 'restored_product' AS fulldescr, '' AS keywords, 'restored_product' AS new_column");