Con Opencart es muy sencillo hacerse algun desarrollo a medida... Yo tenía que importar mas de 20000 articulos e hice un desarrollo en php que lo hacía.... es muy sencillo. Tienes que mirar en las tablas que datos tienes que importar.
MIRA COMO LO HICE:
<?php
require 'php_que_descarga_los_archivos_de_un_ftp.php';
require 'php_que_conecta_a_la_bbdd_mysql.php';
$xml_file = 'Articulos.xml';
if (file_exists($xml_file))
{ $xml = simplexml_load_file($xml_file);}
else { exit('Error al intentar abrir el fichero '.$xml_file);}
$count = 0;
//Vaciamos las tablas de los articulos
$trunc = ("TRUNCATE TABLE product");
$result = mysql_query($trunc) or die(mysql_error());
$trunc2 = ("TRUNCATE TABLE product_description");
$result = mysql_query($trunc2) or die(mysql_error());
$trunc3 = ("TRUNCATE TABLE product_to_category");
$result = mysql_query($trunc3) or die(mysql_error());
$trunc4 = ("TRUNCATE TABLE product_to_store");
$result = mysql_query($trunc4) or die(mysql_error());
//Empezamos a meter articulos en la base de datos
foreach ($xml->Registro as $Registro) {
// Inserta el articulo en la tabla product
$qry = ("INSERT INTO product (model, sku, image, length, width, height, weight, diametro, minimum, status, subtract, price) VALUES ('$Registro->Codigo','$Registro->Codigo', 'images/$Registro->Codigo.jpg', '$Registro->Largo', '$Registro->Ancho', '$Registro->Alto', '$Registro->Peso', '$Registro->Diametro', '$Registro->Minimo', '1', '0', '$Registro->PVP')");
// Ahora ejecutamos el INSERT en la BD
$result = mysql_query($qry) or die(mysql_error());
//busco el campo product_id
$consulta = ("SELECT product_id FROM product WHERE sku = '$Registro->Codigo'");
$result2 = mysql_query($consulta) or die(mysql_error());
if ($row = mysql_fetch_array($result2)){
$num = $row["product_id"];
}
//Inserta la descripcion en ingles
$nameeng = $Registro->Descripcion_Eng." - ".$Registro->Codigo;
$qry_Eng = ("INSERT INTO product_description (product_id, language_id, name) VALUES ( '$num', '1', '$nameeng')");
$result = mysql_query($qry_Eng) or die(mysql_error());
//Inserta la descripcion en español
$nameesp = $Registro->Descripcion_Esp." - ".$Registro->Codigo;
$qry_Esp = ("INSERT INTO product_description (product_id, language_id, name) VALUES ( '$num', '2', '$nameesp')");
$result = mysql_query($qry_Esp) or die(mysql_error());
$consultaX = ("SELECT Catalog_ID FROM category_axapta WHERE Axapta_ID = '$Registro->Familia'");
$result3 = mysql_query($consultaX) or die(mysql_error());
if ($row = mysql_fetch_array($result3)){
$family = $row["Catalog_ID"];
}
//Inserta la categoria del articulo
$qry2 = ("INSERT INTO product_to_category (product_id, category_id) VALUES ( '$num', '$family')");
$result = mysql_query($qry2) or die(mysql_error());
//Inserta el articulo a la tienda 0
If (($family == '0') or ($family == '1') or ($family == '2')){
} else {
$qry3 = ("INSERT INTO product_to_store (product_id, store_id) VALUES ('$num', '0')");
$result = mysql_query($qry3) or die(mysql_error());
};
$count= $count + 1; }
echo "<br/>";
echo "-------------------------------------------<br/>";
echo "Total de articulos importados: $count articulos<br/>";
echo "-------------------------------------------<br/>";
?>
Esto es un ejemplo, tu luego lo tienes que amoldar a tus categorías, tipos de tiendas, idiomas, etc.
Yo llevo también años con opencart y cada vez me gusta más, siempre que sepas programar en php puedes hacer lo que te de la gana.....
Espero que te sirva de ayuda.
Saludos