To pull in a product array, I typically use the function func_search_products
Here is an example from a module I am building for a client, it refernces some non-standard x-cart tables so won;t work for you, but it should get the juices flowing and point you in th right direction:
PHP Code:
$product_kit_items = func_search_products(
array(
'fields' => array("$sql_tbl[products].*", "$sql_tbl[product_kit_items].*"),
'from_tbls' => array('product_kit_items'=>''),
//'skip_tables' => XCSearchProducts::getSkipTablesByTemplate(XCSearchProducts::SKIP_ALL_POSSIBLE),
'query' => " AND $sql_tbl[products].productid = $sql_tbl[product_kit_items].productid AND $sql_tbl[product_kit_items].parentid = '$productid'",
),
$user_account['membershipid'],
"$sql_tbl[product_kit_items].orderby, product",
"",
false,
false,
true
);